LaTeX文件服务器

一个用于创建、编辑、验证和编译LaTeX文件的服务器,支持多种模板和操作,适用于文档处理和学术写作。

  • by RobertoDure
  • Python
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 RobertoDure/mcp-latex-server

使用说明

MCP LaTeX服务器

用于LaTeX文件创建、编辑、验证和编译的模型上下文协议(MCP)服务器。建于 FastMCP Pydantic用于类型安全的结构化输出。

特性

  • 创建 参数或捆绑模板中的LaTeX文档(文章、beamer、报告)
  • 编辑 具有替换、插入、追加和预置操作的文件
  • 阅读 和 列表 .tex 安全基本目录中的文件
  • 验证 语法——大括号、环境、引用、必需声明
  • 编译 PDF格式 pdflatex, xelatex,或 lualatex
  • 资源 --通过浏览和检索捆绑的模板 latex:// 尤里斯

先决条件

  • Python 3.11.9+
  • LaTeX分布 (供汇编):
    • 窗户: MiKTeX 或 TeX直播
    • macOS: Mactex (brew install --cask mactex)
    • Linux: sudo apt install texlive-full (Debian/Ubuntu)或 sudo dnf install texlive-scheme-full (Fedora)

安装

使用紫外线(推荐)

git clone https://github.com/RobertoDure/mcp-latex-server
cd mcp-latex-server
uv pip install -e .

使用pip

git clone <repository-url>
cd mcp-latex-server
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
pip install -e .

快速设置(Windows)

python quick_setup.py

这将检查Python版本,安装依赖项,验证服务器导入是否正确,并可选择配置Claude Desktop。

配置

服务器使用单个环境变量:

变量 描述 默认值
LATEX_SERVER_BASE_PATH 所有文件操作的根目录 . (当前目录)

传递给工具的所有文件路径都是相对于此基本目录解析的。它外部的访问被拒绝。

MCP客户端配置

克劳德桌面版

添加到您的 claude_desktop_config.json:

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "latex-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-latex-server",
        "run",
        "latex_server.py"
      ],
      "env": {
        "LATEX_SERVER_BASE_PATH": "/path/to/your/latex/files"
      }
    }
  }
}

VS代码(GitHub副本)

添加 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "latex-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-latex-server",
        "run",
        "latex_server.py"
      ],
      "env": {
        "LATEX_SERVER_BASE_PATH": "${workspaceFolder}"
      }
    }
  }
}

工具

create_latex_file

根据参数创建新的LaTeX文档。

参数 类型 默认值 说明
file_path str 必需的 新的道路 .tex 文件
document_type article|report|book|letter|beamer|minimal article 文档类
title str "" 文档标题
author str "" 文档作者
date str \today 文件日期
content str "" 正文内容
packages list[str] [] 额外的LaTeX包
geometry str "" 几何设置(例如。 margin=1in)

create_from_template

从捆绑的模板创建文档。

参数 类型 默认值 说明
file_path str 必需的 新的道路 .tex 文件
template article|beamer|report article 模板名称

edit_latex_file

编辑现有的LaTeX文件。

参数 类型 默认值 说明
file_path str 必需的 文件路径
operation replace|insert_before|insert_after|append|prepend 必需的 编辑操作
new_text str 必需的 要插入或替换的文本
search_text str|null null 要查找的文本(替换/插入时需要)
line_number int|null null 从1开始的行号(替代 search_text)

read_latex_file

读取并返回 .tex 文件。

参数 类型 默认值 说明
file_path str 必需的 文件路径

list_latex_files

列出所有 .tex 目录中的文件。

参数 类型 默认值 说明
directory_path str . 要搜索的目录
recursive bool false 搜索子目录

validate_latex

检查LaTeX语法:必需声明、平衡大括号、环境匹配、未定义引用。

参数 类型 默认值 说明
file_path str 必需的 文件路径

get_latex_structure

提取文档结构:类、标题、作者、包和节层次结构。

参数 类型 默认值 说明
file_path str 必需的 文件路径

compile_latex

编译a .tex 文件转换为PDF(运行引擎两次以获取参考/TOC)。

参数 类型 默认值 说明
file_path str 必需的 文件路径
engine pdflatex|xelatex|lualatex pdflatex LaTeX发动机

资源

URI 描述
latex://templates 列出可用的捆绑模板
latex://template/{name} 获取特定模板的内容

测试

使用MCP检查员进行测试:

uv run mcp dev latex_server.py

或者运行附带的测试套件:

python test_server.py

故障排除

服务器无法启动 --验证Python 3.10+(python --version)而且 mcp 已安装(pip list | grep mcp).

编译失败 --确保LaTeX发行版在您的PATH上(pdflatex --version).如果缺少,请安装MiKTeX或TeX Live。

“拒绝访问”错误 --请求的文件路径在外部解析 LATEX_SERVER_BASE_PATH。使用相对路径或调整env变量。

克劳德无法连接 --仔细检查MCP配置中的文件路径,重新启动Claude Desktop,并用验证 uv run mcp dev latex_server.py.

许可证

麻省理工学院