tokencast
Cost estimation tools as an MCP server for VS Code + Copilot, enabling cost estimation and reporting for agent tasks.
Click on "Install 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., "@tokencastestimate cost for refactoring 3 modules, medium complexity"
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.
tokencast
Pre-execution cost estimation for LLM agent workflows. Get a cost estimate before running any agent task, then let tokencast learn from actuals to improve accuracy over time.
Available as a Claude Code plugin (recommended — one command delivers everything) or as an MCP server for Cursor, VS Code + Copilot, and Windsurf.
Installation
Claude Code (Recommended)
Install tokencast as a Claude Code plugin — delivers the MCP server, calibration hooks, and estimation skill in two commands:
/plugin marketplace add krulewis/tokencast
/plugin install tokencast@tokencastThe first command registers the tokencast marketplace. The second installs the plugin from it.
Prerequisites:
uvmust be installed for the MCP server to function. Install with:curl -LsSf https://astral.sh/uv/install.sh | sh
This delivers:
MCP server (
estimate_cost,get_calibration_status,get_cost_history,report_session,report_step_cost)Calibration hooks (auto-learning at session end, mid-session cost warnings, agent timeline tracking)
SKILL.md (estimation algorithm auto-trigger after plans)
Calibration data is stored in ~/.tokencast/calibration/ (global across projects, preserved on uninstall).
Scope options:
--scope user(recommended — installs globally for all projects) or--scope project(per-project only).
Other IDEs (MCP Server)
Install the package:
pip install tokencastOr with uvx (no install required — runs directly from PyPI):
uvx tokencastConfigure your IDE — replace /path/to/your/project with your actual project path in the config snippets below.
Cursor
Create or update .cursor/mcp.json in your project root:
{
"mcpServers": {
"tokencast": {
"command": "tokencast-mcp",
"args": [
"--calibration-dir", "/path/to/your/project/calibration",
"--project-dir", "/path/to/your/project"
]
}
}
}VS Code + GitHub Copilot
Create or update .vscode/mcp.json in your project root:
{
"servers": {
"tokencast": {
"type": "stdio",
"command": "tokencast-mcp",
"args": [
"--calibration-dir", "/path/to/your/project/calibration",
"--project-dir", "/path/to/your/project"
]
}
}
}Windsurf
Add to your Windsurf MCP config:
{
"mcpServers": {
"tokencast": {
"command": "tokencast-mcp",
"args": [
"--calibration-dir", "/path/to/your/project/calibration",
"--project-dir", "/path/to/your/project"
]
}
}
}Full config examples are in docs/ide-configs/.
Available tools
Once configured, tokencast exposes five MCP tools in your IDE:
Tool | What it does |
| Estimate API cost for a planned task before running it |
| Check whether your estimates are well-calibrated |
| Browse past estimates vs actuals |
| Report actual cost at session end to improve calibration |
| Record the cost of a single pipeline step during a session |
Example — estimate before starting work:
Estimate the cost for: size=M, files=8, complexity=highExample — report actuals after finishing:
Report session cost: actual_cost=4.20Related MCP server: AgentCost MCP Server
Telemetry
tokencast includes opt-out anonymous usage telemetry. It is on by default — data is collected unless you explicitly disable it.
What is collected: session count, mean accuracy ratio, calibrated factor count, client name, framework, tool name, package version. What is NOT collected: project names, file paths, cost amounts, or any personal data.
To disable:
Call the
disable_telemetryMCP tool (permanent opt-out, creates~/.tokencast/no-telemetry)Pass
--no-telemetryto the MCP server commandSet
TOKENCAST_TELEMETRY=0in your environment
Precedence (highest to lowest):
TOKENCAST_TELEMETRY=0→ always disablesTOKENCAST_TELEMETRY=1→ always enables (overrides--no-telemetryand the no-telemetry file)~/.tokencast/no-telemetryfile exists → disablesDefault (no flags, no env var) → enabled
To delete your install ID: rm ~/.tokencast/install_id.
Data is sent to PostHog (US region). A random UUID is generated locally as your install ID — it contains no personal information. See the wiki for full details.
MCP Server Flags
Flag | Default | Description |
|
| Where calibration data is stored |
| None | Project root for file measurement |
| Off | Disable anonymous usage telemetry (on by default) |
| Print version and exit |
Claude Code Skill (Legacy)
The Claude Code plugin (recommended) delivers everything in one command. Use this only if you prefer the SKILL.md workflow without the plugin system.
If you use Claude Code and prefer the skill-based (SKILL.md) workflow, you can install tokencast as a Claude Code skill instead:
# Clone the repo (anywhere — it doesn't need to live inside your project)
git clone https://github.com/krulewis/tokencast.git
# Install into your project (quote paths with spaces)
bash tokencast/scripts/install-hooks.sh "/path/to/your-project"Paths with spaces: Always wrap the project path in quotes. Without them the install script will fail on paths like
/Volumes/Macintosh HD2/....
This does three things:
Symlinks the skill into
<project>/.claude/skills/tokencast/Adds a
Stophook for auto-learning at session endAdds a
PostToolUsehook to nudge estimation after planning agents
The SKILL.md workflow is Claude Code-specific. The MCP server works in any MCP-compatible client and is the recommended path for new users.
How It Works
Infers size, file count, complexity from the plan in conversation
Reads reference files for pricing and token heuristics
Loads learned calibration factors (if any exist)
Computes per-step token estimates using activity decomposition
Applies complexity multiplier, context accumulation
(K+1)/2, and cache ratesSplits into Optimistic / Expected / Pessimistic bands
If PR Review Loop is in scope, computes loop cost using geometric decay across N review cycles
Applies calibration correction to Expected band
Records the estimate for later comparison with actuals
Example output:
## tokencast estimate
Change: size=M, files=5, complexity=medium
Calibration: 1.12x from 8 prior runs
| Step | Model | Optimistic | Expected | Pessimistic |
|-----------------------|--------|------------|----------|-------------|
| Research Agent | Sonnet | $0.60 | $1.17 | $4.47 |
| Architect Agent | Opus | $0.67 | $1.18 | $3.97 |
| ... | ... | ... | ... | ... |
| TOTAL | | $3.37 | $6.26 | $22.64 |Confidence Bands
Band | Cache Hit | Multiplier | Meaning |
Optimistic | 60% | 0.6x | Best case — focused agent work |
Expected | 50% | 1.0x | Typical run |
Pessimistic | 30% | 3.0x | With rework loops, debugging, retries |
Calibration
Calibration is fully automatic once you report actuals:
0-2 sessions: No correction applied. "Collecting data" status.
3-10 sessions: Global correction factor via trimmed mean of actual/expected ratios (trim_fraction=0.1).
10+ sessions: EWMA with recency weighting. Per-size-class factors activate when a class has 3+ samples.
Outlier filtering: Sessions with actual/expected ratio >3.0x or <0.2x are excluded from calibration.
Calibration data lives in ~/.tokencast/calibration/ (gitignored, local to each user).
Python API
from tokencast import estimate_cost, report_session, report_step_cost
from tokencast import get_calibration_status, get_cost_history
# Estimate before running a task
result = estimate_cost(
{"size": "M", "files": 5, "complexity": "medium"},
calibration_dir="./calibration",
)
# Report actuals at session end
report_session({"actual_cost": 4.20}, calibration_dir="./calibration")
# Check calibration health
status = get_calibration_status({}, calibration_dir="./calibration")
# Browse history
history = get_cost_history({"window": "30d"}, calibration_dir="./calibration")
# Report a single step's cost
report_step_cost(
{"step_name": "Research Agent", "cost": 0.85},
calibration_dir="./calibration",
)Manual Invocation (Skill mode)
In Claude Code with SKILL.md installed, you can invoke explicitly:
/tokencast size=L files=12 complexity=high
/tokencast steps=implement,test,qa
/tokencast review_cycles=3
/tokencast review_cycles=0Files
SKILL.md — Skill definition (auto-trigger, algorithm)
references/pricing.md — Model prices, cache rates, step→model map
references/heuristics.md — Token budgets, pipeline decompositions, multipliers
references/examples.md — Worked examples with arithmetic
references/calibration-algorithm.md — Detailed calibration algorithm reference
docs/ide-configs/ — Per-IDE MCP config examples
src/tokencast/ — Core estimation engine (Python package)
src/tokencast_mcp/ — MCP server (Python package)
scripts/
install-hooks.sh — One-time project setup (skill mode)
disable.sh — Remove from project (skill mode)
tokencast-learn.sh — Stop hook: auto-captures actuals (skill mode)
tokencast-track.sh — PostToolUse hook: nudges estimation after plans
sum-session-tokens.py — Parses session JSONL for actual costs
update-factors.py — Computes calibration factors from history
calibration/ — Per-user local data (gitignored)
history.jsonl — Estimate vs actual records
factors.json — Learned correction factors
active-estimate.json — Transient marker for current estimateLimitations
Pipeline step names reflect a default workflow — map your own steps to the closest defaults. Formulas are pipeline-agnostic (see
references/heuristics.md)Heuristics assume typical 150-300 line source files
Calibration requires 3+ completed sessions before corrections activate
Pricing data embedded; check
last_updatedin references/pricing.mdMulti-session tasks only capture the session containing the estimate
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/krulewis/tokencast'
If you have feedback or need assistance with the MCP directory API, please join our Discord server