Word Document Operations
БесплатноНе проверенComprehensive CRUD operations and document manipulation for Microsoft Word files with table management, formatting controls, and merge capabilities.
Описание
Comprehensive CRUD operations and document manipulation for Microsoft Word files with table management, formatting controls, and merge capabilities.
README
一个基于 MCP (Model Context Protocol) 的智能 Word 文档助手。通过自然语言指令创建、编辑和管理 Word 文档,具备多 Agent 协作和记忆能力。
✨ 核心特性
🤖 多 Agent 流水线
文档创建采用三阶段 Agent 协作,确保高质量输出:
用户请求
↓
┌─────────────────────────────────────┐
│ 🔍 结构化 Agent (Structurizer) │
│ • 解析用户意图 │
│ • 提取参数(文件名、标题、内容要求) │
│ • 识别缺失信息,向用户提问 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ ✍️ 创作 Agent (Writer) │
│ • 根据结构化数据生成内容 │
│ • 调整写作风格 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ ⭐ 评审 Agent (Reviewer) │
│ • 评估文档质量 (1-10分) │
│ • 评分 < 7 → 返回创作Agent重写 │
│ • 最多 3 轮迭代优化 │
└─────────────────────────────────────┘
↓
高质量文档输出
🧠 三层记忆系统
| 记忆层级 | 说明 | 持久化 |
|---|---|---|
| 短期记忆 | 当前会话的对话历史(最近20轮) | ❌ |
| 工作记忆 | 当前任务的上下文和临时变量 | ❌ |
| 长期记忆 | 用户偏好、重要事实(自动提取) | ✅ JSON |
特点:
- 自动提取用户偏好(写作风格、命名习惯等)
- 支持多会话隔离(通过
session_id) - 长期记忆按重要性自动清理
📝 文档操作
| 功能 | 说明 |
|---|---|
| 📝 创建文档 | 通过多Agent流水线生成高质量文档 |
| 📖 读取文档 | 提取文档文本和表格内容 |
| ✏️ 更新文档 | 追加内容、插入段落、替换文本 |
| 🗑️ 删除文档 | 删除指定文档 |
| 📋 列出文档 | 查看所有已创建的文档 |
| 📊 添加表格 | 向文档插入格式化表格 |
| 🔍 搜索替换 | 批量替换文档中的文本 |
🌐 外部能力
| 功能 | 说明 |
|---|---|
| 🔎 Google 搜索 | 查询信息并整理成文档 |
| 🖼️ 图片搜索 | 搜索相关图片 |
| ⬇️ 图片下载 | 从URL下载图片到本地 |
| 🖼️ 插入图片 | 将图片插入到文档中 |
📁 项目结构
word-MCP-agent/
├── backend/ # 后端服务
│ ├── server.py # FastAPI 主服务器 (SSE + LLM Agent + 记忆)
│ ├── main.py # MCP 工具定义
│ ├── agents.py # 多 Agent 模块 (结构化/创作/评审)
│ ├── memory.py # 三层记忆系统
│ ├── mcpconfig.json # 配置文件 (LLM、API Keys)
│ ├── pyproject.toml # Python 依赖
│ ├── start.sh # 启动脚本
│ ├── word/ # 生成的文档存放目录
│ └── memory_store/ # 长期记忆持久化目录
│
├── frontend/ # 前端应用
│ ├── index.tsx # React 主组件
│ ├── __entry.tsx # React 入口
│ ├── index.html # HTML 入口
│ ├── vite.config.ts # Vite 配置
│ ├── tsconfig.json # TypeScript 配置
│ └── package.json # Node 依赖
│
└── README.md
🚀 快速开始
1. 配置后端
cd backend
# 创建虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate
pip install -e .
# 或使用启动脚本 (自动处理环境)
./start.sh
2. 配置 mcpconfig.json
编辑 backend/mcpconfig.json,填入你的 API 密钥:
{
"defaultLLM": {
"baseURL": "https://api.siliconflow.cn/v1",
"apiToken": "your-api-token",
"model": "deepseek-ai/DeepSeek-V3"
},
"google": "your-serper-api-key"
}
- LLM: 支持 OpenAI 兼容的任何大模型
- Google: Serper.dev API Key(用于搜索功能)
3. 启动后端服务
cd backend
./start.sh
# 或
source venv/bin/activate && python server.py
服务器启动后运行在 http://localhost:8080
4. 启动前端
cd frontend
npm install
npm run dev
前端开发服务器运行在 http://localhost:3000
📡 API 端点
核心端点
| 端点 | 方法 | 说明 |
|---|---|---|
/ |
GET | 服务器状态 |
/tools |
GET | 获取可用工具列表 |
/documents |
GET | 获取文档列表 |
/call |
POST | 直接调用工具 |
/sse |
GET | SSE 连接 |
/sse/agent |
POST | LLM Agent (SSE 流式, 带记忆) |
/chat |
POST | LLM Agent (非流式) |
记忆管理端点
| 端点 | 方法 | 说明 |
|---|---|---|
/memory/sessions |
GET | 列出所有会话 |
/memory/session/{id} |
GET | 获取会话信息 |
/memory/session/{id} |
DELETE | 删除会话 |
/memory/session/{id}/clear |
POST | 清空短期记忆 |
/memory/session/{id}/history |
GET | 获取对话历史 |
/memory/session/{id}/remember |
POST | 添加长期记忆 |
/memory/session/{id}/recall |
GET | 搜索长期记忆 |
💡 使用示例
基础文档创建
创建一个关于 React 的介绍文档
列出所有文档
多 Agent 协作
当输入较模糊时,结构化 Agent 会询问更多信息:
用户: 帮我写一份文档
助手: 请问文档要叫什么名字?
用户: 年度报告
助手: [创作Agent生成内容] → [评审Agent评分8/10] → 文档创建成功!
结合搜索
帮我搜索一下人工智能的最新发展,然后写成一篇文档
插入图片
创建一份关于圣诞节的文档并插入一些精美的相关图片
使用记忆功能
// 前端发送请求时指定 session_id
fetch('/sse/agent', {
method: 'POST',
body: JSON.stringify({
query: "帮我创建一个文档",
session_id: "user_123" // 不同用户使用不同 session_id
})
})
🔧 可用工具
文档工具
| 工具名 | 说明 |
|---|---|
create_document_with_agents |
【推荐】多Agent流水线创建文档 |
structurize_input |
仅结构化解析用户输入 |
create_document |
直接创建文档(无质量检查) |
read_document |
读取文档内容 |
update_document |
更新文档 |
delete_document |
删除文档 |
list_documents |
列出所有文档 |
add_table |
添加表格 |
search_replace |
搜索替换 |
搜索工具
| 工具名 | 说明 |
|---|---|
google_search |
Google 搜索文字信息 |
google_image_search |
Google 图片搜索 |
download_image |
下载图片到本地 |
insert_image |
将图片插入文档 |
记忆工具
| 工具名 | 说明 |
|---|---|
save_to_memory |
保存到长期记忆 |
recall_memory |
从长期记忆检索 |
get_memory_stats |
获取记忆统计 |
🏗️ 技术栈
后端
- Python 3.10+
- FastAPI - Web 框架
- python-docx - Word 文档处理
- httpx - HTTP 客户端
- MCP (Model Context Protocol) - 工具协议
多 Agent 系统
- 自研 Agent Pipeline
- 支持 AgentScope 集成(可选)
记忆系统
- 三层记忆架构
- JSON 文件持久化
- 按重要性自动清理
前端
- React 18
- TypeScript
- Vite - 构建工具
- SSE (Server-Sent Events) - 实时通信
AI
- DeepSeek-V3 / 其他大模型
- Serper.dev (Google Search API)
🔌 扩展开发
添加新 Agent
在 backend/agents.py 中继承 BaseAgent:
class MyAgent(BaseAgent):
def __init__(self):
super().__init__("MyAgent", "系统提示词")
def process(self, input_data):
# 处理逻辑
return result
添加新工具
在 backend/server.py 的 TOOLS 和 TOOL_HANDLERS 中注册:
TOOLS["my_tool"] = {
"description": "工具说明",
"parameters": {...}
}
def my_tool_handler(**kwargs):
return {"success": True, "result": ...}
TOOL_HANDLERS["my_tool"] = my_tool_handler
自定义记忆提取
在 backend/memory.py 的 Session._extract_to_long_term 中添加规则:
def _extract_to_long_term(self, role: str, content: str):
if "我喜欢" in content:
self.long_term.add(
f"用户偏好: {content}",
category="preference",
importance=0.8
)
📊 系统架构
┌─────────────────────────────────────────────────────────────────┐
│ 前端 (React) │
│ http://localhost:3000 │
└────────────────────────────┬────────────────────────────────────┘
│ SSE / HTTP
▼
┌─────────────────────────────────────────────────────────────────┐
│ FastAPI Server │
│ http://localhost:8080 │
├─────────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ LLM 调用 │ │ 工具执行器 │ │ SSE 流 │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────────┘ │
│ │ │ │
│ ┌──────▼─────────────────▼──────┐ │
│ │ 多 Agent Pipeline │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ │结构化 │→│创作 │→│评审 │ │
│ │ │Agent │ │Agent │ │Agent │ │
│ │ └────────┘ └────────┘ └────────┘ │
│ └───────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 记忆系统 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │ │
│ │ │短期记忆 │ │工作记忆 │ │长期记忆 (JSON持久化)│ │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 工具集 │ │
│ │ 文档操作 │ 搜索功能 │ 图片处理 │ 记忆操作 │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────┐
│ 外部服务 │
│ • LLM API │
│ • Serper.dev (搜索) │
└──────────────────────────┘
📝 更新日志
v2.0.0
- ✨ 新增多 Agent 流水线(结构化/创作/评审)
- ✨ 新增三层记忆系统
- ✨ 新增记忆管理 API
- 🔧 优化文档创建质量
v1.0.0
- 🎉 初始版本
- 📝 基础文档操作
- 🌐 Google 搜索集成
- 🖼️ 图片搜索和插入
License
MIT
Установка Word Document Operations
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/ceilf6/word-mcp-agentFAQ
Word Document Operations MCP бесплатный?
Да, Word Document Operations MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Word Document Operations?
Нет, Word Document Operations работает без API-ключей и переменных окружения.
Word Document Operations — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Word Document Operations в Claude Desktop, Claude Code или Cursor?
Открой Word Document Operations на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Word Document Operations with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
