TikZ编译服务

一个轻量级的MCP服务器,将TikZ代码编译成高分辨率PNG图像,适用于AI助手在对话中渲染和预览LaTeX/TikZ图表。

  • by FlorianHuo
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 FlorianHuo/tikz-mcp

使用说明

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),或 Ghostscript gs PATH中(附带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传输