mcpField
A
agentfit

agentfit

本地服务
github.comAI 与智能体120 周前更新

关于 agentfit

agentfit 是用于估算 Token 数量并按模型上下文预算裁剪聊天记录的 MCP 服务,适合需要控制对话长度并保留指定消息的 MCP 客户端。

主要功能

  1. 01估算文本或消息的 Token 数量
  2. 02支持多类模型估算器
  3. 03按 Token 预算裁剪历史消息
  4. 04选择删除与消息保留策略
  5. 05列出内置估算器

适用场景

  1. 01估算对话记录的 Token 数量
  2. 02将对话压缩至模型限制内
  3. 03保留系统提示词及指定轮次

MCP 相关

通过 stdio 向 MCP 客户端提供 Token 估算、消息裁剪和估算器列表工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mukundakatta-agentfit": {
"command": "npx",
"args": [
"-y",
"@mukundakatta/agentfit-mcp"
]
}
}
}
启动命令npx -y @mukundakatta/agentfit-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@mukundakatta/agentfit-mcp0.1.0

工具

3

收录的工具列表 · 更新于 3 周前

参数类型必填说明
inputany是聊天消息字符串或数组。
modelstring否可选的模型名称(例如 "gpt-5"、"claude-sonnet-4-6")。最接近的估算器系列将被选用。
overheadnumber否每条消息的令牌开销(默认值取决于模型系列,通常为 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:

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。