agentfit-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agentfit-mcp fit my chat history to 6000 tokens preserving the system message"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
npx -y @mukundakatta/agentfit-mcpThree 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):
{
"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
Same shape as above. The server speaks plain MCP over stdio, so any client that supports stdio MCP servers will work.
Related MCP server: contextlens
Tool examples
count_tokens:
{ "input": "hello world", "model": "claude-sonnet-4-6" }Returns:
{ "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"
}Returns:
{
"messages": [...],
"dropped": [...],
"tokens": { "before": 12000, "after": 7800, "budget": 8000 },
"fit": true
}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
Available Tools
3 toolscount_tokensA
Estimate tokens in a string or chat-message array. Fast, dependency-free, within ~10-20% of true tokenizer counts on English prose. Pass a model name to pick the right per-family estimator (openai, anthropic, google, llama, default).
Inputs: input (required), model, overhead.
fit_messagesA
Drop messages from the input array until the total is under maxTokens. Three strategies: drop-oldest (default), drop-middle, priority (uses each message's priority field). Always returns a structured result with token counts before and after; never throws across the wire.
Inputs: messages (required), maxTokens (required), model, overhead, +4 more.
list_estimatorsA
List the built-in estimator families this server knows about. Useful for picking a model alias when the exact model name isn't recognized.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: counting tokens, fitting messages under a token limit, and listing available estimator families. No overlap or confusion.
All tool names follow a consistent verb_noun pattern in snake_case (count_tokens, fit_messages, list_estimators), making them predictable and easy to understand.
With 3 tools, the server is tightly scoped to token estimation and message fitting. Each tool earns its place, and the count is appropriate for this focused domain.
The tool surface covers core operations: counting tokens, fitting messages with multiple strategies, and listing estimators. A minor gap is the lack of a tool for direct model-specific tokenization, but the per-family estimator covers most use cases.
Maintenance
Related MCP Connectors
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Token counting, RAG chunking, truncation, HTML to Markdown and JSON repair
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseBqualityDmaintenanceToken usage tracker for OpenAI and Claude APIs with MCP (Model Context Protocol) support.6184 npm5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for deterministic, zero-dependency context-window math, enabling token estimation, text truncation, and budget reporting without a tokenizer.MIT
- AlicenseNot gradedqualityBmaintenanceProvides MCP tools to profile and optimize LLM conversation context, identifying token waste and applying deterministic fixes to reduce context window usage.1,395 npm2MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents and developers to dynamically tokenize session context windows and compact dialogue history into structured outputs via MCP, CLI, or Python client. Runs on pure standard library Python with no external dependencies for deterministic, low-latency execution.8-