LaTeX MCP服务器
一 MCP(模型上下文协议)服务器 这可以增强您的VSCode+LaTex Workshop编写工作流程
目前包含MCP工具,可以在Python和TypeScript中轻松添加新工具。Python进程是MCP服务器;所选工具通过网桥委托给一个小型Node/TypeScript模块。
LaTex MCP服务器+复制/克劳德/光标,你能做什么?
- 阅读你引用的论文,核实/补充你的说法
- 访问您的python脚本,根据您的实验数据生成新的图形/乳胶表,以及 将它们自主放入乳胶中
- 可以验证每一步,并确保您的pdf能够编译
- 从功能上讲,它可以自主地获取你的大纲+实验结果,并将其转化为论文(尽管看起来可能有些草率)
Your browser does not support the video tag.
______________________________________________________________________
Python工具
- list_tex_files\
列出所有 .tex LaTeX工作区下的文件(相对路径)。有助于LLM或代理发现可用的章节。
- read_file\
读取工作区内给定相对路径的文件的文本或二进制安全切片。支持指定要返回的最大字节数。
- 萃取极谱法\
解析BibTeX文件并返回结构化条目元数据,包括下载URL(DOI、arXiv)。帮助代理或脚本以编程方式处理引文数据。
- 下载_画册\
下载PDF文件,以获取中列出的参考书目条目 resources/cited_papers/index.json。可以强制重新下载并限制新下载的数量。
- compile_latex\
运行LaTeX编译(pdflatex/xelatex 通过 latexmk)在主文档上,返回success和一个日志片段。支持指定条目 .tex 文件和通过次数。
- read_pdf\
使用以下命令从PDF文件路径中提取文本和元数据 pypdf,有页面和字符限制。存储JSON工件以供下游使用。
- read_pdf_from_citation\
通过以下方式解析引用密钥 resources/cited_papers/index.json 将其转换为PDF格式并提取文本(必要时自动下载)。返回提取的文本、元数据和引用关键字。
______________________________________________________________________
TypeScript桥接工具
- summarize_text\
生成所提供LaTeX或文本内容的简洁自然语言摘要。接受摘要的最大句子数。
- suggest_bib_key\
根据作者、年份和标题元数据建议使用稳定的BibTeX密钥。有助于生成一致的引用密钥。
______________________________________________________________________
安装(带 uv)
从存储库根目录:
cd latex-mcp-server
uv tool install -e .或
uv tool install -e ./latex-mcp-server这将使控制台脚本 latex-mcp-server 在您的PATH中可用。
如果您更喜欢一次性运行而不将其作为工具安装: ``bash uv run latex-mcp-server ``MCP配置代码段
添加到您的 mcp.json (VS代码/Claude桌面用户设置):
"latex-mcp-server": {
"command": "uv",
"args": ["tool", "run", "latex-mcp-server", "--workspace", "ABSOLUTE_PATH_TO_YOUR_PROJECT_ROOT"]
}如果你忽略了 --workspace,服务器将推断当前工作目录。
Windows示例
在Windows(PowerShell/Bash)上,如果您的paper_1根目录位于 C:\Users\User\projects\paper_1,使用:
"latex-mcp-server": {
"command": "uv",
"args": [
"tool", "run", "latex-mcp-server",
"--workspace", "C:/Users/User/projects/paper_1"
]
}正斜杠是可以的;它们避免了逃避反弹的需要。一定要替换占位符 ABSOLUTE_PATH_TO_YOUR_PAPER_1_ROOT --留下一个占位符,如 WORKSPACE_FOLDER_PATH 将导致运行时错误:
Workspace does not exist: C:\Users\User\WORKSPACE_FOLDER_PATH\PAPER_1替代方案:安装一次,然后直接调用
运行后:
cd latex-mcp-server
uv tool install -e .您可以将配置简化为:
"latex-mcp-server": {
"command": "latex-mcp-server",
"args": ["--workspace", "C:/Users/User/projects/paper_1"]
}故障排除
| 症状 | 原因 | 修复 |
|---|---|---|
No solution found when resolving tool dependencies | 工具名称 latex-mcp-server 未在PyPI上发布 uv 试图将其作为依赖项来解决(如果您使用像这样的配置字段,则通常会发生这种情况 requires 或未在本地安装) | 运行 uv tool install -e ./latex-mcp-server 从repo根目录,然后更新您的 mcp.json 直接调用已安装的脚本 |
Workspace does not exist: C:\\Users\\...WORKSPACE_FOLDER_PATH... | 占位符路径保持不变 | 替换为真正的绝对路径 |
TypeScript runtime unavailable 在工具结果中 | 未安装Node.js(仅TS桥工具需要) | 安装Node.js 18+,如果不需要TS工具,请忽略 |
如果您更改TypeScript源代码,请重建并重新提供供应商(npm run build)在重新启动服务器之前。
TypeScript桥
TypeScript源代码位于 ts_functions/src。他们编译的JavaScript输出被提供到Python包中 latex_mcp_server/ts_dist 所以用户会这样做 不 需要 npm 或 tsc 只是为了运行服务器。要修改或添加TS功能:
cd latex-mcp-server/ts_functions
npm install
npm run build然后复制(或允许提供的辅助脚本同步) dist/ 内容进入 latex_mcp_server/ts_dist/.
添加新的Python工具
在中添加功能 latex_mcp_server/functions/latex_ops.py (或新模块)并将其注册到 server.py 内部 register_python_tools.
支持引文的PDF阅读
当用户询问一篇论文时(例如“解释{smith2023model}与…有何不同”),代理人应该:
- 从请求中解析引用密钥。
- 呼叫
read_pdf_from_citation对于每个键(获取/下载PDF并提取文本片段+元数据)。 - 将其答案基于提取的文本(并可选择调用
summarize_text简明摘要)。 - 指示提取是否被截断(检查
truncated标志),避免超出可用页面/字符的过度声明。
这 read_pdf_from_citation 工具返回与相同的模式 read_pdf 加 citation_key 因此,多引用回复可以正确地归因片段。
自动更新 index.json (所选方法:VS代码任务)
此项目已配置为刷新 resources/cited_papers/index.json 在每次使用VS Code任务构建LaTeX之前(建议方法中的方法#3)。
添加文件: .vscode/tasks.json 有三个任务:
update-index:运行一个简短的Python单行调用extract_bibliography在…上src/references.bib.latex-build:调用latexmk -pdf在…上main.tex.build+index:按顺序运行update-index然后latex-build.
如何使用
- 在VS Code中,打开命令面板并运行“任务:运行任务”。
- 选择
build+index(建议在提示时将其标记为默认生成任务)。 - BibTeX索引将首先重新生成;则LaTeX编译继续进行。
如果LaTeX Workshop无法导入包(ModuleNotFoundError),则会生成一个帮助脚本 latex-mcp-server/update_index.py 提供。工作区设置已更新为调用:
python latex-mcp-server/update_index.py因此不严格要求本地可编辑安装。
将其设置为默认版本
首次运行后,当VS Code提示时,接受设置 build+index 作为默认设置。您还可以添加到工作区设置中:
// .vscode/settings.json (optional)
{
"latex-workshop.latex.recipe.default": "build+index"
}为什么采用这种方法
- 没有后台监视器进程。
- 确定性:索引刷新与构建命令明确绑定。
- 开销最小(BibTeX解析相对于PDF编译更快)。
如果你以后需要一个替代方案(例如,Makefile或按需新鲜度检查),你仍然可以将其分层;任务方法是非侵入性的。
添加新的TS工具
- 在中创建新文件
ts_functions/src/functions/导出函数。 - 将其添加到导出映射中
ts_functions/src/index.ts. - 重建并同步dist输出。
- 在中注册Python包装器
server.py使用bridge.register_ts_tool.
协议说明
此服务器遵循MCP JSON-RPC消息模式。如果 mcp Python包更新其API,相应地调整导入。
许可证
麻省理工学院
