Token导航 LogoToken导航TokenDH.com
Topdrawer MCP logo
搜索检索stdio官方级别未说明来源级核验

Topdrawer MCP

MCP Server

一个用于搜索本地Topdrawer手册文本文件并通过外部`td`可执行文件渲染Topdrawer输入文件的MCP服务器。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
文件搜索PythonVS CodeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

goroyabu

提供方

goroyabu

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run topdrawer-mcp-preprocess

详细介绍

最上层的mcp

用于搜索本地Topdrawer手册文本文件和 通过外部渲染现有Topdrawer输入文件 td 可执行。

服务器公开了MCP工具,用于手动搜索、呈现和示例元数据 发现:

  • search_manual 用于使用行号片段进行不区分大小写的子字符串搜索
  • lookup_command 通过规范名称或唯一别名进行结构化指挥指导
  • render_topdrawer_file 用于将现有Topdrawer输入文件渲染为PNG
  • render_topdrawer_script 用于将内联Topdrawer脚本文本渲染为PNG
  • list_manual_samples 用于列出带有可选过滤器的精选示例元数据
  • get_manual_sample 用于按id获取一个精选的样本元数据条目

范围

此存储库负责:

  • 阅读本地纯文本Topdrawer手册
  • 通过MCP stdio服务器公开简单的手动搜索
  • 执行已安装的 td 二进制来呈现现有的输入文件
  • 通过同一渲染管道执行内联Topdrawer脚本文本

此存储库不负责:

  • 构建或包装 td 可执行文件本身
  • 维护上游Topdrawer源代码树
  • 重写用户提供的 .top 文件到位
  • 超出当前商定的源策略范围的广泛手动预处理

数据

默认情况下,服务器读取:

data/topdrawer.txt

该文件被视为纯UTF-8文本。服务器不解析Topdrawer 命令、部分、生成的HTML或源代码清单。

您可以使用以下命令覆盖手动路径:

TOPDRAWER_MANUAL_PATH=/path/to/manual.txt

docs/source-policy.md 了解此存储库的方式 处理规范的手动源、伴随源和未来生成的数据。

预处理

对于小型确定性索引,存在一个可选的构建时预处理CLI 生成任务。当前第一遍提取顶级第15章命令 部分从 topdrawer.doc.

从存储库根目录运行它:

uv run topdrawer-mcp-preprocess

您可以使用以下命令覆盖源文件路径:

TOPDRAWER_DOC_SOURCE_PATH=/path/to/topdrawer.doc uv run topdrawer-mcp-preprocess

VS Code以以下方式启动服务器 uv --directory ${workspaceFolder} run topdrawer-mcp.vscode/mcp.json.

${workspaceFolder} 是VS代码替换,不能移植到其他MCP 客户。在VS Code之外,使用绝对存储库路径,例如:

uv --directory /absolute/path/to/topdrawer-mcp run topdrawer-mcp

从存储库根目录:

uv run topdrawer-mcp

使用 render_topdrawer_file,安装 td Ghostscript(gs)所以两者都是 可用的 PATH。您可以覆盖 td 可执行路径包含:

TD_EXECUTABLE_PATH=/path/to/td uv run topdrawer-mcp

通过MCP客户端运行时,传递 TOPDRAWER_MANUAL_PATHTD_EXECUTABLE_PATH 通过客户端的环境配置,而不是 编辑存储库默认值。

VS Code通过以下方式启动服务器:

.vscode/mcp.json

MCP工具

search_manual

输入:

{
  "query": "BARGRAPH",
  "limit": 5,
  "context_lines": 2
}

limit 默认为 5 并被夹紧 1..20. context_lines 默认为 2 并被夹紧 0..10.

render_topdrawer_file

输入:

{
  "input_path": "examples/error-bars.top",
  "output_path": "/tmp/output.png",
  "overwrite": false
}

input_path 可以是绝对的,也可以是相对于当前工作目录的。 output_path 是可选的;如果省略,服务器将写入一个唯一的PNG路径 在系统临时目录下。 overwrite 默认为 false.PNG输出为 渲染为不透明的白色背景,并修剪为PostScript 带有小填充的BoundingBox。

Topdrawer输入示例:

set symbol 1P
set order y x dx dy
100 1 0.5 10
144 2 0.5 12
196 3 0.5 14
plot

使用 render_topdrawer_file 当你已经有了 .top 磁盘上的文件。

render_topdrawer_script

输入:

{
  "script": "set symbol 1P\nset order y x dx dy\n100 1 0.5 10\n144 2 0.5 12\n196 3 0.5 14\nplot\n",
  "base_dir": "/tmp/sample-data",
  "output_path": "/tmp/output.png",
  "overwrite": false
}

script 必须非空。 base_dir 是可选的,控制相对程度 脚本内的路径,例如 set file input='dat',已解决。当 省略,相对引用使用服务器的当前工作目录。便携式网络图形 输出以不透明的白色背景呈现,并修剪为 带有小填充的PostScript边界框。

使用 render_topdrawer_script 当呼叫者有内联Topdrawer文本时,聊天 代理转换为脚本的数据,或不转换为脚本变体的数据 需要保存为持久 .top 文件第一。

lookup_command

输入:

{
  "command": "SYMBOL"
}

按规范命令名称或 唯一别名。此工具仅返回结构化命令元数据。使用 search_manual 用于免费文本手动搜索。

list_manual_samples

输入:

{
  "category": "histogram",
  "command": "HISTOGRAM",
  "query": "basic",
  "limit": 20
}

所有过滤器都是可选的。 category 匹配一个精心策划的样本类别。 command 火柴 primary_commands 案件不敏感。 query 执行一个 仅对样本元数据进行不区分大小写的子字符串搜索。此工具返回 仅元数据;它不返回示例脚本文本。

get_manual_sample

输入:

{
  "sample_id": "scatter-error-bars"
}

按id返回一个精选的示例元数据条目。此工具返回元数据 只有;示例脚本文本仍然不在当前MCP表面的范围内。

测试

运行完整的测试套件:

uv run --extra test pytest

只运行Python单元测试:

uv run --extra test pytest -m unit

仅运行基于检查器的集成测试:

uv run --extra test pytest -m integration

集成测试使用 npx @modelcontextprotocol/inspector 并要求 Node.js与 npx 可用的 PATH.

目录标签

目录标签

文件搜索PythonVS Code本地部署文件渲染MCP服务器Topdrawer工具

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP