使用说明
tikz mcp
一个轻量级的MCP(模型上下文协议)服务器,将TikZ代码编译成高分辨率的PNG图像。让AI助手在对话过程中渲染和预览LaTeX/TikZ图表。
特征
- 单一工具:
compile_tikz--传递TikZ代码,获取PNG图像 - 自动包装:原始TikZ命令会自动包装在
standalone文件 - 自定义前导码:通过你自己的
\usepackage/\usetikzlibrary命令 - 高分辨率:默认情况下输出为1000 DPI 透明背景
- 善意的错误:捕获LaTeX编译错误并将其作为可读消息返回
- 样式指南:将内置美学规则注入人工智能指令,以实现一致的出版质量输出
- 自我验证:AI被指示在向用户展示之前检查自己的输出并解决问题
- 零闲置成本:使用stdio传输--不使用时没有后台进程
先决条件
- python >= 3.10
- LaTeX:
pdflatex在PATH中(例如通过 Mactex 或TeX Live) - 波普勒:
pdftoppm在PATH中(通过安装brew install poppler),或 GhostscriptgsPATH中(附带MacTeX)
安装
pip install tikz-mcp
或者从源代码安装:
git clone https://github.com/FlorianHuo/tikz-mcp.git
cd tikz-mcp
pip install .
用法
作为MCP服务器(stdio)
添加到您的MCP客户端配置中(例如Antigravity settings.json,克劳德桌面 claude_desktop_config.json):
{
"mcpServers": {
"tikz-mcp": {
"command": "tikz-mcp",
"args": []
}
}
}
或者用python运行:
{
"mcpServers": {
"tikz-mcp": {
"command": "python3",
"args": ["-m", "tikz_mcp.server"]
}
}
}
工具: compile_tikz
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
tikz_code |
string | Yes | TikZ代码(原始命令或完整文档) |
preamble |
string | 否 | 自定义LaTeX前导码(替换默认值) |
示例--原始TikZ代码:
\begin{tikzpicture}
\draw[thick, ->] (0,0) -- (3,0) node[right] {$x$};
\draw[thick, ->] (0,0) -- (0,3) node[above] {$y$};
\draw[blue, thick] (0,0) circle (2);
\end{tikzpicture}
服务器会自动将其包装在 standalone 加载了常见TikZ库的文档。
示例——完整文档:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill[red] (0,0) rectangle (2,2);
\end{tikzpicture}
\end{document}
输出
渲染的PNG保存到 $HOME/.tikz-mcp/output/ 并且返回完整路径。
默认前言
当提供原始TikZ代码时(无 \documentclass),使用以下前导码:
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\usetikzlibrary{
arrows.meta, calc, decorations.pathmorphing,
decorations.markings, patterns, positioning,
shapes.geometric, shapes.misc, fit, backgrounds,
intersections, through, matrix, trees,
}
通过传递自定义来覆盖 preamble 参数。
许可证
麻省理工学院
更新日志
v0.2.0版本
- 嵌入式
STYLE_GUIDE.md使用内联代码模式和反模式转换为服务器指令 - 增加了物理/数学精度规则(真实双曲线、正确斜率)
- 添加了TikZ陷阱部分(尺寸溢出、阴影填充解决方法)
- 添加了自我验证工作流程:AI必须在呈现之前检查输出并修复问题
- 默认
standalone边界从5pt变为8pt
v0.1.0
- 初始版本
compile_tikz具有自动包装、自定义前导码、1000 DPI输出的工具- 零空闲资源使用的stdio传输
