使用说明
MCP LaTeX服务器
用于LaTeX文件创建、编辑、验证和编译的模型上下文协议(MCP)服务器。建于 FastMCP Pydantic用于类型安全的结构化输出。
特性
- 创建 参数或捆绑模板中的LaTeX文档(文章、beamer、报告)
- 编辑 具有替换、插入、追加和预置操作的文件
- 阅读 和 列表
.tex安全基本目录中的文件 - 验证 语法——大括号、环境、引用、必需声明
- 编译 PDF格式
pdflatex,xelatex,或lualatex - 资源 --通过浏览和检索捆绑的模板
latex://尤里斯
先决条件
- Python 3.11.9+
- LaTeX分布 (供汇编):
安装
使用紫外线(推荐)
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.
许可证
麻省理工学院
