LaTeX转PDF服务

一个将LaTeX源代码编译为PDF文档的MCP服务器,提供简单的API接口,支持参考文献处理和语法检查。

  • by pranavgnn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 pranavgnn/latex-pdf-mcp

使用说明

LaTeX转PDF MCP服务器

将LaTeX源代码编译为PDF文档的模型上下文协议(MCP)服务器。该服务器提供了一个简单的API,用于将LaTeX字符串转换为PDF文件,并提供可选的参考书目支持。

特性

  • LaTeX编译:使用Tectonic将LaTeX源代码编译为PDF
  • 书目支持:自动处理BibTeX引用和引文
  • 错误检查:集成ChkTeX用于LaTeX语法验证
  • HTTP API:用于PDF生成和下载的RESTful端点
  • Docker支持:容器化部署,便于设置
  • MCP集成:与MCP客户端兼容,实现无缝集成

安装

使用Docker(推荐)

选项1:从Docker Hub拉取

docker run -p 8000:8000 pranavgnn/latex-mcp-server:latest

Docker Hub仓库

选项2:从源代码构建

  1. 克隆存储库:

    git clone https://github.com/pranavgnn/latex-pdf-mcp.git
    cd latex-pdf-mcp
    
  2. 构建Docker镜像:

    docker build -t latex-mcp-server .
    
  3. 运行容器:

    docker run -p 8000:8000 latex-mcp-server
    

服务器将在以下时间可用 http://localhost:8000.

MCP配置

要将此服务器与MCP兼容的客户端(如VS Code扩展或其他MCP客户端)一起使用,请创建一个配置文件:

VS代码配置

  1. 创建一个 .vscode/mcp.json 工作区中的文件:

    {
      "servers": {
        "latex-pdf": {
          "url": "http://localhost:8000/sse"
        }
      }
    }
    
  2. 确保服务器在端口8000上运行(如上所述)

  3. MCP客户端将自动发现并连接到LaTeX编译工具

配置选项

  • 服务器名称: latex-pdf (可定制)
  • 统一资源定位符: http://localhost:8000/sse (MCP通信的SSE端点)
  • 端口:默认值为8000,但可以在Docker run命令或app.py中更改

用法

本地安装

  1. 安装系统依赖项:

    • Tectonic:请遵循以下安装说明 构造类型设置.github.io
    • ChkTeX:通过您的软件包管理器进行安装(例如。, apt install chktex 在Ubuntu上)
  2. 安装Python依赖项:

    pip install -r requirements.txt
    
  3. 运行服务器:

    python app.py
    

用法

MCP工具

服务器暴露了一个 compile_latex 工具接受:

  • latex (必填):LaTeX源代码为字符串
  • bibliography (可选):引用BibTeX内容
  • filename (可选):输出PDF的自定义文件名

HTTP API

  • 发布 /messages:MCP协议端点
  • 获取 /download/{filename}:下载已编译的PDF

示例用法

# Example LaTeX compilation request
{
  "latex": "\\documentclass{article}\n\\begin{document}\nHello, World!\n\\end{document}",
  "filename": "hello.pdf"
}

对于有引用的文件:

{
  "latex": "\\documentclass{article}\n\\addbibresource{references.bib}\n\\begin{document}\nHello \\cite{example}.\n\\printbibliography\n\\end{document}",
  "bibliography": "@article{example,\n  title={Example Paper},\n  author={Author, A.},\n  year={2023}\n}"
}

发展

先决条件

  • Python 3.8+
  • 构造的
  • ChkTeX

运行测试

# Add test commands here when implemented

构建Docker镜像

docker build -t latex-mcp-server .

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢