
Agentfit
io.github.MukundaKattaPublished by GitHub account MukundaKattav0.1.0Updated Oct 24, 2026
Token-aware message truncation: fit a chat history into your model's context budget.
Overview
Local MCP server that lets an assistant estimate token counts and trim chat histories to fit a model's context budget.
- What you can do
- Estimate tokens in a string or chat-message array, with per-model estimator families (openai, anthropic, google, llama, default)
- Trim a chat history to a maxTokens budget using drop-oldest, drop-middle or priority strategies, honoring preserveSystem, preserveFirstN and preserveLastN
- List the built-in estimator families
- Return a structured result with kept and dropped messages plus before/after token counts, and report fit: false instead of failing when the budget is unreachable
- When to use it
- Useful when you want an assistant to check how large a prompt or transcript is, or to shrink a long conversation to a token limit while keeping the system prompt and recent turns. Handy for preparing context before sending it to a model.
- Requirements
- Runs as a local stdio process, typically launched with npx from the npm package @mukundakatta/agentfit-mcp, so Node.js and npx are needed. No authentication, environment variables or headers are declared. Desktop MCP clients only; no web executable.
Installation
In SourceWeft
- Open Agentfit in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
agentfit-mcp
MCP server for @mukundakatta/agentfit. Lets Claude Desktop, Cursor, Cline, Windsurf, Zed, or any other MCP client estimate token counts and fit a chat history into a model's context budget on demand.
Three tools:
count_tokens— estimate tokens in a string or chat-message array, with per-model estimator families (openai, anthropic, google, llama, default).fit_messages— drop messages from a chat history until under amaxTokensbudget. Supports drop-oldest, drop-middle, and priority strategies; honorspreserveSystem,preserveFirstN,preserveLastN.list_estimators— list the built-in estimator families.
Add to your client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Cursor
~/.cursor/mcp.json:
Cline / Windsurf / Zed
Same shape as above. The server speaks plain MCP over stdio, so any client that supports stdio MCP servers will work.
Tool examples
count_tokens:
Returns:
fit_messages:
Returns:
fit_messages always returns a structured result and never throws across the wire: if the budget is unreachable even after dropping all non-protected messages, you get fit: false with the partial result so the caller can decide what to do.
Why a separate MCP server
@mukundakatta/agentfit is a zero-dependency JavaScript library. This package wraps it as an MCP server so it's accessible from inside any MCP-aware AI assistant: ask Claude "how many tokens is this transcript?" or "trim this chat to 8k tokens preserving the system prompt and last 2 turns" and the assistant calls these tools directly.
Sibling MCP servers
Part of the agent-stack series, all @mukundakatta/*-mcp:
@mukundakatta/agentfit-mcp— Fit it. (this)@mukundakatta/agentguard-mcp— Sandbox it.@mukundakatta/agentsnap-mcp— Test it.@mukundakatta/agentvet-mcp— Vet it.@mukundakatta/agentcast-mcp— Validate it.
License
MIT
Source: README.md at commit 6657bbb
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts