TOON格式编解码服务器

一个基于模型上下文协议(MCP)的服务器,提供TOON(Token-Oriented Object Notation)格式的编码和解码功能,用于优化LLM提示和上下文数据。

  • by kweinmeister
  • TypeScript
  • 混合部署
  • 14 星标
  • 更新于
在 GitHub 查看 kweinmeister/toon-mcp

使用说明

TOON MCP服务器

A. 模型上下文协议(MCP) 提供编码和解码工具的服务器 TOON(面向令牌的对象表示法).

TOON是一种紧凑的、人类可读的格式,旨在使用更少的令牌表示JSON数据,使其成为LLM提示和上下文优化的理想选择。

👉 了解有关格式的更多信息,请访问 tooinformat.dev

特性

此服务器向MCP客户端公开了两个核心工具(专门用Gemini CLI测试):

  • encode_toon:将JSON字符串转换为TOON格式以保存令牌。
  • decode_toon:将TOON格式的文本转换回标准JSON。

用法

Gemini CLI快速入门

将此服务器与 双子星命令行工具,请按照以下步骤操作:

  1. 安装Gemini CLI (如果你还没有):

    npm install -g @google/gemini-cli@latest
    
  2. 配置MCP服务器: 您可以通过创建或编辑Gemini设置文件来注册服务器,该文件通常位于 ~/.gemini/settings.json (全球)或 .gemini/settings.json (项目本地)。

    添加以下配置:

    {
      "mcpServers": {
        "toon": {
          "command": "npx",
          "args": ["-y", "git+https://github.com/kweinmeister/toon-mcp.git"]
        }
      }
    }
    
  3. 运行Gemini CLI: 启动CLI界面。现在,模型应该可以使用这些工具了。

    gemini
    

工具

1. encode_toon

将JSON数据转换为紧凑的TOON格式。

参数:

参数 类型 默认值 说明
json string 必需 要编码的JSON数据(序列化为字符串)。
indent number 2 缩进的空格数。
delimiter string , 数组/行的分隔符。选项: , (逗号), \t (选项卡), | (管道)。
keyFolding string "off" 折叠单个钥匙包装链(例如。, a.b.c).选项: "off", "safe".
flattenDepth number Infinity 应用钥匙折叠的最大深度。
replacer (string|number)[] undefined 要包含在输出中的属性数组。

Gemini CLI中的提示示例:

“使用encode_toon工具将此JSON转换为toon格式: {"users": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]}"

输出:

users[2]{id,name}:
  1,Alice
  2,Bob

2. decode_toon

将TOON格式的文本解析回标准JSON。

参数:

参数 类型 默认值 说明
toon string 必需 要解码的TOON格式字符串。
strict boolean true 强制执行严格的验证(例如,检查声明的数组长度)。
expandPaths string "off" 将虚线键重建为嵌套对象。选项: "off", "safe".
indent number 2 缩进的空格数。

运输

此服务器支持HTTP服务器发送事件(SSE)和标准IO(stdio)。

HTTP/SSE(默认)

适用于远程部署(如Cloud Run)或基于web的MCP客户端。

# Starts on port 8080 by default
npm start

# Custom port
npm start -- --port 3000

工作室

由Gemini CLI等本地客户端使用。

npm run start:stdio

发展

安装

git clone https://github.com/kweinmeister/toon-mcp
cd toon-mcp
npm install

测试

运行单元测试以确保服务器工具正常运行:

npm test

使用MCP检查器进行调试

您可以使用 MCP检查员 通过web界面交互式地检查和测试服务器的工具。

npx fastmcp inspect index.ts

建筑与装饰

# Linting
npx biome check .

# Type checking
npx tsc --noEmit