Token导航 LogoToken导航TokenDH.com
MCP Rtk logo
开发工具未说明官方级别未说明来源级核验

MCP Rtk

MCP Server

mcp-rtk是一个MCP代理工具,通过8阶段过滤管道压缩API响应,减少60-90%的令牌使用量,适用于各类MCP服务器交互场景。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
开发工具令牌优化RustClaude性能优化Claude

安装说明

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

作者 / 组织

ThomasTartrau

提供方

ThomasTartrau

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

  ███╗   ███╗ ██████╗██████╗       ██████╗ ████████╗██╗  ██╗
  ████╗ ████║██╔════╝██╔══██╗      ██╔══██╗╚══██╔══╝██║ ██╔╝
  ██╔████╔██║██║     ██████╔╝█████╗██████╔╝   ██║   █████╔╝
  ██║╚██╔╝██║██║     ██╔═══╝ ╚════╝██╔══██╗   ██║   ██╔═██╗
  ██║ ╚═╝ ██║╚██████╗██║           ██║  ██║   ██║   ██║  ██╗
  ╚═╝     ╚═╝ ╚═════╝╚═╝           ╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═╝

mcp-rtk

![Crates.io](https://crates.io/crates/mcp-rtk) ![CI](https://gitlab.com/thomastartrau/mcp-rtk/-/pipelines) ![License: MIT](LICENSE)

MCP代理从工具响应中减少60-90%的令牌

*将其放在任何MCP服务器前。同样的工具,更少的代币。*

快速启动预设命令配置贡献预设

______________________________________________________________________

问题

MCP服务器返回原始API响应。一个 list_issues GitLab的调用可以将180K多个JSON令牌转储到您的上下文中:带有头像URL的完整用户对象,到处都是空字段,没有人要求的嵌套元数据。你为这一切付出代价。

mcp-rtk做什么

它作为透明代理位于Claude和MCP服务器之间。工具调用不会发生变化,但响应在进入上下文窗口之前会通过8级过滤器管道进行压缩。

Claude ←(stdio)→ mcp-rtk ←(stdio)→ upstream MCP server

LLM在一小部分令牌中获得相同的信息。

安装

cargo install mcp-rtk

快速启动

用以下命令包装现有的MCP服务器命令 mcp-rtk --克劳德代码配置中的一行更改。

之前 (~/.claude.json):

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": ["-y", "@nicepkg/gitlab-mcp"],
      "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat-..." }
    }
  }
}

之后:

{
  "mcpServers": {
    "gitlab": {
      "command": "mcp-rtk",
      "args": ["--", "npx", "-y", "@nicepkg/gitlab-mcp"],
      "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat-..." }
    }
  }
}

mcp-rtk从命令中检测上游服务器,并自动加载匹配的预设。

过滤器管路

每个响应都要经过8个阶段,顺序如下:

阶段效果
keep_fields白名单:仅保留指定字段
strip_fields黑名单:递归删除以下字段 avatar_url, _links
condense_users{id, name, username, avatar_url, ...} 成为 "username"
strip_nulls放下一切 null 以及空字符串值
flatten{"data": [...]} 成为 [...]
truncate_stringsN个字符的大写长字符串(描述、差异)
collapse_arrays保留前N项,追加 "... and X more"
custom_transforms基于正则表达式的字符串替换

即使没有预设,也会应用通用默认值:空剥离、用户压缩、展平和字段删除。仅此一项通常就能节省30-40%。

预设

预设是具有特定工具过滤规则的TOML文件。mcp-rtk附带了社区维护的预设,并根据上游命令自动检测使用哪个预设。

预设检测自涵盖的工具
gitlabgitlab-mcp, gitlab跨MR、问题、管道、提交、项目、标签、发布的45多种工具
grafanamcp-grafana, grafana15+仪表板、数据源、普罗米修斯、洛基工具

您可以强制执行特定的预设:

mcp-rtk --preset gitlab -- node my-custom-gitlab-server.js

预设是什么样子的

每个预设都定义了在通用默认值之上合并的每个工具的规则。以下是GitLab预设的摘录:

[tools.list_merge_requests]
keep_fields = ["iid", "title", "state", "author", "source_branch", "target_branch", "web_url"]
max_array_items = 20
condense_users = true

[tools.get_merge_request_diffs]
keep_fields = ["old_path", "new_path", "diff", "new_file", "deleted_file"]
truncate_strings_at = 2000
max_array_items = 50

[tools.list_issues]
keep_fields = ["iid", "title", "state", "author", "labels", "assignees", "web_url"]
max_array_items = 20
condense_users = true

完整的GitLab预设涵盖了合并请求、管道、作业、问题、提交、文件、项目、成员、标签、发布和事件。

外部预设(自动发现)

放下任何 .toml 将文件预设为 ~/.local/share/mcp-rtk/presets/ 启动时会自动发现。无需重新编译,也不需要更改配置。

~/.local/share/mcp-rtk/presets/
  github.toml
  slack.toml
  my-internal-api.toml

外部预设使用相同的 [tools.*] 格式为内置预设。添加可选 [meta] 带有检测关键字的部分,以启用来自上游命令的自动检测:

# ~/.local/share/mcp-rtk/presets/github.toml

[meta]
keywords = ["github-mcp", "github"]

[tools.list_repos]
keep_fields = ["id", "name", "full_name", "description", "html_url", "language"]
max_array_items = 20

[tools.get_issue]
keep_fields = ["number", "title", "state", "body", "user", "labels", "assignees"]
truncate_strings_at = 1500
condense_users = true

没有 [meta],该预设仍可用于 --preset (其中name=不带文件名的文件名 .toml).

外部预设由获取 mcp-rtk presets pull 并由脚手架支撑 mcp-rtk presets init,因此生态系统无需等待内置版本即可增长。

热重载

外部预设为 热重新加载 当代理正在运行时。当您添加、编辑或删除 .toml 归档 ~/.local/share/mcp-rtk/presets/,mcp-rtk检测到变化,并在500毫秒内自动重建过滤引擎。飞行中的请求使用之前的规则完成,而新的请求使用更新的规则。无需重新启动。

这使得迭代过滤规则变得容易:编辑预设、保存,下一次工具调用将使用新的配置。

创建自己的预设

如果您使用的MCP服务器没有内置预设,您可以将自己的设置为TOML配置:

# ~/.config/mcp-rtk/my-server.toml

[filters.default]
strip_nulls = true
condense_users = true
truncate_strings_at = 800
max_array_items = 25
strip_fields = ["avatar_url", "_links", "metadata"]
flatten = true

[filters.tools.list_items]
keep_fields = ["id", "name", "status", "created_at"]
max_array_items = 15

[filters.tools."get_*"]        # glob pattern — matches all get_ tools
truncate_strings_at = 1500
strip_fields = ["internal_id", "legacy_data"]

然后通过 --config:

mcp-rtk --config ~/.config/mcp-rtk/my-server.toml -- your-mcp-server

或者将其作为预设放入 ~/.local/share/mcp-rtk/presets/ 用于自动发现(使用 [tools.*] 带可选项的格式 [meta] 部分而不是 [filters.*]).

贡献预设

为您使用的MCP服务器找到了好的过滤规则?提交预设,以便其他人也能从中受益。

  1. 在中创建TOML文件 config/presets/ 以服务器命名(例如。, github.toml)
  2. 添加特定于工具的筛选规则(查看 gitlab.tomlgrafana.toml 供参考)
  3. 在中注册 src/config.rsPRESETS 带有检测关键字的数组
  4. 打开合并请求

MCP服务器获得的预设越多,每个人保存的令牌就越多。

配置

对于希望调整过滤器行为超出预设范围的高级用户。

mcp-rtk --config ~/.config/mcp-rtk/custom.toml -- npx @nicepkg/gitlab-mcp
[filters.default]
strip_nulls = true
condense_users = true
truncate_strings_at = 500
max_array_items = 20
strip_fields = ["avatar_url", "_links", "time_stats"]
flatten = true
custom_transforms = [
  { pattern = "https://gitlab\\.com/[^ ]+", replacement = "[link]" }
]

[filters.tools.get_merge_request_diffs]
truncate_strings_at = 2000

[filters.tools.list_merge_requests]
keep_fields = ["iid", "title", "state", "author", "source_branch", "target_branch"]
max_array_items = 15

[tracking]
enabled = true
db_path = "~/.local/share/mcp-rtk/metrics.db"

用户配置会覆盖预设规则。特定工具 strip_fieldscustom_transforms 与默认值连接,其他所有内容都会替换它们。

工具名称支持glob模式: * 匹配任何序列, ? 匹配单个字符。精确匹配总是优先于模式。

命令

mcp-rtk gain

查看您已保存的令牌数量。

mcp-rtk gain                # summary with per-tool breakdown
mcp-rtk gain --history      # last 50 calls with individual details
mcp-rtk gain --export json  # machine-readable JSON output for scripting

mcp-rtk discover

扫描您的Claude Code会话日志,找到尚未代理的MCP服务器,并估计您可以节省多少令牌。

mcp-rtk discover            # last 30 days
mcp-rtk discover --days 7   # last week

mcp-rtk install

使用MCP-rtk自动将MCP服务器包装在配置文件中。扫描stdio服务器并重写其命令/args。

mcp-rtk install .mcp.json                    # wrap all stdio servers
mcp-rtk install .mcp.json --server gitlab    # wrap only the "gitlab" server

mcp-rtk uninstall

在配置文件中从mcp服务器中删除mcp-rtk包装。

mcp-rtk uninstall .mcp.json                    # unwrap all servers
mcp-rtk uninstall .mcp.json --server gitlab    # unwrap only "gitlab"

mcp-rtk presets

浏览、创建和获取预设。

mcp-rtk presets list          # show all available presets
mcp-rtk presets show gitlab   # print the full TOML for a preset
mcp-rtk presets init          # interactive preset scaffolding
mcp-rtk presets init -o my.toml
mcp-rtk presets pull https://example.com/preset.toml   # fetch a community preset
mcp-rtk presets pull https://example.com/preset.toml -o custom.toml

mcp-rtk validate-preset

在使用预设或配置文件之前,请检查其语法错误和潜在问题。

mcp-rtk validate-preset my-preset.toml

mcp-rtk dry-run

在不运行代理的情况下从stdin测试JSON过滤器。统计数据转到stderr,过滤JSON到stdout。

echo '{"id":1,"title":"test","avatar_url":"...","_links":{}}' | mcp-rtk dry-run --preset gitlab --tool list_issues
cat response.json | mcp-rtk dry-run --config custom.toml --tool get_merge_request

mcp-rtk diff

显示原始JSON和过滤JSON之间的彩色并排差异。从stdin读取。

cat response.json | mcp-rtk diff --preset gitlab --tool list_merge_requests
cat response.json | mcp-rtk diff --config custom.toml --tool get_merge_request

安全

响应被过滤,从不被阻止。一些护栏可以让事情变得可预测:

  • 10 MB响应上限:过大的响应在解析前会被截断
  • 128级递归限制,与serde_json的默认值匹配
  • 字符串截断遵循UTF-8字符边界
  • 非JSON响应仅应用字符串截断即可通过
  • 图像和资源将原封不动地转发

许可证

麻省理工学院

目录标签

目录标签

开发工具令牌优化RustClaude性能优化MCP代理本地部署API压缩

支持客户端

Claude

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP