关于 agentfit
agentfit 是用于估算 Token 数量并按模型上下文预算裁剪聊天记录的 MCP 服务,适合需要控制对话长度并保留指定消息的 MCP 客户端。
主要功能
- 01估算文本或消息的 Token 数量
- 02支持多类模型估算器
- 03按 Token 预算裁剪历史消息
- 04选择删除与消息保留策略
- 05列出内置估算器
适用场景
- 01估算对话记录的 Token 数量
- 02将对话压缩至模型限制内
- 03保留系统提示词及指定轮次
MCP 相关
通过 stdio 向 MCP 客户端提供 Token 估算、消息裁剪和估算器列表工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | any | 是 | 聊天消息字符串或数组。 |
| model | string | 否 | 可选的模型名称(例如 "gpt-5"、"claude-sonnet-4-6")。最接近的估算器系列将被选用。 |
| overhead | number | 否 | 每条消息的令牌开销(默认值取决于模型系列,通常为 4-6)。 |
详细介绍
agentfit-mcp
@mukundakatta/agentfit 的 MCP 服务。 可按需让 Claude Desktop、Cursor、Cline、Windsurf、Zed 或任何其他 MCP 客户端估算令牌数,并将聊天历史控制在模型的上下文预算内。
npx -y @mukundakatta/agentfit-mcp
提供三种工具:
count_tokens— 估算字符串或聊天消息数组中的令牌数,并按模型使用不同的估算器系列(openai、anthropic、google、llama、default)。fit_messages— 从聊天历史中删除消息,直到令牌数低于maxTokens预算。支持删除最旧消息、删除中间消息和优先级策略;遵循preserveSystem、preserveFirstN、preserveLastN。list_estimators— 列出内置的估算器系列。
添加到客户端
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"agentfit": {
"command": "npx",
"args": ["-y", "@mukundakatta/agentfit-mcp"]
}
}
}
Cursor
~/.cursor/mcp.json:
{
"mcpServers": {
"agentfit": {
"command": "npx",
"args": ["-y", "@mukundakatta/agentfit-mcp"]
}
}
}
Cline / Windsurf / Zed
配置格式与上文相同。此服务通过 stdio 使用纯 MCP,因此任何支持 stdio MCP 服务的客户端都可以使用。
工具示例
count_tokens:
{ "input": "hello world", "model": "claude-sonnet-4-6" }
返回:
{ "tokens": 4, "model": "claude-sonnet-4-6" }
fit_messages:
{
"messages": [
{ "role": "system", "content": "You are precise." },
{ "role": "user", "content": "long context..." },
{ "role": "assistant", "content": "..." },
{ "role": "user", "content": "final question" }
],
"maxTokens": 8000,
"model": "claude-sonnet-4-6",
"preserveSystem": true,
"preserveLastN": 2,
"strategy": "drop-oldest"
}
返回:
{
"messages": [...],
"dropped": [...],
"tokens": { "before": 12000, "after": 7800, "budget": 8000 },
"fit": true
}
fit_messages 始终返回结构化结果,绝不会在传输过程中抛出异常:即使删除所有非保护消息后仍无法满足预算,也会返回 fit: false 和部分结果,让调用方自行决定如何处理。
为什么要使用单独的 MCP 服务
@mukundakatta/agentfit 是一个零依赖 JavaScript 库。此软件包将其封装为 MCP 服务,使其可供任何支持 MCP 的 AI 助手使用:你可以向 Claude 提问“这份对话记录有多少个令牌?”或“将这段聊天缩减到 8k 令牌,同时保留系统提示词和最近 2 轮对话”,然后由助手直接调用这些工具。
相关 MCP 服务
属于 agent-stack 系列,所有软件包均为 @mukundakatta/*-mcp:
@mukundakatta/agentfit-mcp— 控制长度。(本项目)@mukundakatta/agentguard-mcp— 提供沙箱。@mukundakatta/agentsnap-mcp— 进行测试。@mukundakatta/agentvet-mcp— 进行审查。@mukundakatta/agentcast-mcp— 进行验证。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。