docwriter mcp服务器📄✍️
  ](./CHANGELOG.md)   ](https://github.com/cyanheads/docwriter-mcp-server)
A. 模型上下文协议(MCP) 用于结构化LaTeX文档的程序化创建、修改和编译的服务器。
此服务器为AI代理或其他MCP客户端提供了一套工具,用于管理本地文件系统上文档的生命周期,从模板引导到应用结构化更新和编译最终PDF输出。它建立在坚固的基础上 cyanheads/mcp-ts-template.
这个项目处于测试阶段,有些东西可能会坏掉。请报告任何问题或功能请求 .
🚀 核心功能:文档工具🛠️
此服务器为您的AI配备了专门的工具来创建和管理LaTeX文档:
| 工具名称 | 描述 | 主要功能 |
|---|---|---|
docwriter_create_latex_document | 创建新 .tex 模板中的文件。 | -Bootstrap来自 simple_report, ieee_article,或 research_report 模板。 |
| -填充标题和作者元数据。 | ||
docwriter_update_document_block | 更新文档中的一个或多个命名内容块。 | -原子地更新多个部分(例如。, abstract, introduction). |
-保留文档结构。
- 安全地清理所有输入内容。 |
| docwriter_search_and_replace |对文本执行简单的全局搜索和替换。|-可用于快速、非结构化的文本更改。 -对替换文本进行消毒。 | | docwriter_compile_latex_to_pdf |编译a .tex 将文档转换为PDF。|-用途 lualatex 通过多次传递来解决交叉引用。
- 自动运行
biber用于书目处理。
-返回用于调试的编译日志。 | | docwriter_list_latex_documents |检索所有可用文档的列表。|-扫描数据目录中的所有内容 .tex 文件夹。 |
______________________________________________________________________
目录
概述
这 docwriter-mcp-server 充当专用后端,允许MCP兼容客户端(如AI代理、IDE扩展或自动化工作流)以编程方式生成和管理专业质量的LaTeX文档。
您的工具可以利用此服务器进行以下操作,而不是手动准备文档:
- 自动生成报告:创建一致的、模板化的报告、文章或论文。
- 动态插入内容:用AI生成的数据、分析或文本填充文档。
- 确保文件质量:作为CI/CD管道的一部分,编译和验证文件。
- 与AI工作流集成:使LLM能够创建和编辑复杂的文档,作为更大任务的一部分。
开发者说明:此存储库包括 .微规则 该文件作为LLM编码代理的开发人员备忘单,可快速参考代码库模式、文件位置和代码片段。
特性
核心公用设施
利用 mcp-ts-template:
- 日志记录:结构化、可配置的日志记录,带有敏感数据编辑功能。
- 错误处理:集中错误处理和标准化错误类型(
McpError). - 配置:使用Zod验证加载类型安全的环境变量。
- 输入消毒:高度重视安全性,提供用于清理LaTeX、HTML和文件路径的实用程序。
- HTTP传输:使用高性能HTTP服务器 你好,具有会话管理、CORS和速率限制功能。
- 认证:支持JWT和OAuth 2.1的强大身份验证层。
文档生成
- 基于模板的创建:从以下位置开始文档
simple_report,ieee_article,或research_report模板。 - 结构化更新:安全地修改内容
%% -- BLOCK: ... -- %%标记。 - 安全编译:执行
lualatex具有多次通过,自动运行biber用于书目和清理辅助文件。 - 文件系统后端:所有文档和输出都存储在本地文件系统的可配置数据目录中并进行管理。
安装
先决条件
- (附带Node.js)
- 完整的TeX Live发行版 (或类似MiKTeX的等效物)。这
lualatex和biber命令必须位于系统的PATH.
从源代码安装
- 克隆存储库:
git clone https://github.com/cyanheads/docwriter-mcp-server.git
cd docwriter-mcp-server- 安装依赖项:
npm install- 构建项目:
npm run build配置
使用环境变量配置服务器 .env 文件。
| 变量 | 描述 | 默认值 |
|---|---|---|
DOCWRITER_DATA_PATH | 必修的。 用于存储的根目录 .tex 文件和编译的PDF。 | ./data |
MCP_TRANSPORT_TYPE | 服务器传输: stdio 或 http. | stdio |
MCP_LOG_LEVEL | 日志记录级别(debug, info, warning, error). | debug |
MCP_HTTP_PORT | HTTP服务器的端口。 | 3010 |
MCP_AUTH_MODE | HTTP的身份验证模式: jwt 或 oauth. | jwt |
MCP_AUTH_SECRET_KEY | 要求…… jwt 模式。 用于签名令牌的密钥(至少32个字符)。 | (无) |
OAUTH_ISSUER_URL | 要求…… oauth 模式。 OAuth 2.1提供者的发行者URL。 | (无) |
OAUTH_AUDIENCE | 要求…… oauth 模式。 此服务器的受众标识符。 | (无) |
项目结构
代码库遵循模块化结构 src/ 目录:
src/
├── index.ts # Entry point: Initializes and starts the server
├── config/ # Configuration loading (env vars, package info)
│ └── index.ts
├── mcp-server/ # Core MCP server logic and capability registration
│ ├── server.ts # Server setup, tool registration
│ ├── transports/ # Transport handling (stdio, http)
│ └── tools/ # MCP Tool implementations (subdirs per tool)
├── types-global/ # Shared TypeScript type definitions
└── utils/ # Common utility functions (logger, error handler, etc.)要查看详细的文件树,请运行 npm run tree.
发展
构建和测试
# Build the project (compile TS to JS and make executable)
npm run build
# Test the server locally using the MCP inspector tool (stdio transport)
npm run inspector
# Clean build artifacts
npm run clean
# Clean build artifacts and then rebuild the project
npm run rebuild
# Format code with Prettier
npm run format
# Start the server using stdio (default)
npm start
# Start the server using HTTP transport
npm run start:http许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
Built with ❤️ and the Model Context Protocol
