Mcp Cost Tracker Router

io.github.dbsectrainerPublished by GitHub account dbsectrainerv1.0.1Updated Nov 4, 2026

Real-time cost awareness for MCP agent workflows

The publisher's own server: 370.ai — AI Gateway: 100+ Chat Models, Image & Speech Generation

Overview

AI-generated overview

Local MCP server that tracks token usage and estimated USD costs of agent sessions, warns on budgets, and suggests cheaper model routing.

What you can do
  • Read session and per-tool token totals with estimated USD costs, and record usage for tool calls
  • Set budget thresholds with 80%/100% warnings, optionally blocking calls beyond the limit, and export the enforcement audit log
  • Query spend history by day, week or month with model and tool breakdowns, and estimate multi-step workflow costs before running
  • Recommend a model for a task type and check whether a model is allowed under the routing policy
  • Tag sessions to projects, report project costs, and export chargeback reports
  • Generate a self-contained HTML spend report
When to use it
Useful when you run agent workflows with paid LLM APIs and want visibility into which tools and models drive spend, plus early warnings before a budget is exceeded. It suits teams that want cost data kept local rather than routed through a proxy service.
Requirements
Runs locally via npx as an npm package; needs Node.js v20.19 or newer and npm. An environment variable named YOUR_API_KEY is declared as a required secret. Optional flags set a budget alert, a SQLite database path (default ~/.mcp/costs.db), a custom pricing table, a default model, budget enforcement, and an HTTP transport port.
Before you install
Cost figures are estimates from a local pricing table and may not match provider invoices. With --enforce-budget, tool calls can be blocked once the threshold is reached. Tool call metadata (token counts, model names, timestamps) is stored in a local SQLite file, though prompt and response content is not. The manifest declares a required YOUR_API_KEY secret, and the README does not explain what it is used for.

Installation

In SourceWeft

  1. Open Mcp Cost Tracker Router in the dashboard and add it to a workspace.
  2. 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

MCP Cost Tracker & Router

npm mcp-cost-tracker-router package

Local-first cost awareness for MCP agent workflows. Token counts are calculated offline using js-tiktoken — no proxy, no API round-trip, no spend data leaving your machine. When costs climb, routing suggestions point you to cheaper models before the invoice arrives.

Tool reference | Configuration | Contributing | Troubleshooting

Key features

  • Per-tool cost breakdown: See exactly which tool calls are consuming the most tokens and budget.
  • Budget alerts: Set a session spend threshold and get warned at 80% and 100% before you exceed it.
  • Offline token counting: Uses js-tiktoken for accurate counts — no API calls required.
  • Model routing suggestions: Recommends cheaper models for the current task type (advisory, never enforced without opt-in).
  • Multi-provider pricing: Tracks costs across Claude, OpenAI, and Gemini models from a single configurable pricing table.
  • Spend history: Query daily, weekly, and monthly totals by model or tool.
  • Project cost allocation: Tag sessions to named projects and generate chargeback reports.
  • HTML spend reports: Export a single-file, self-contained HTML report with charts and budget status.
  • Audit log: Append-only log of every budget enforcement decision.

Why this over proxy-based cost trackers?

Most cost-tracking tools work by routing all your API traffic through their server and measuring tokens server-side. That means your prompts and responses transit a third-party service, and you're dependent on their uptime.

mcp-cost-tracker-routerProxy-based trackers (Helicone, LLMonitor, etc.)
Token countingOffline via js-tiktoken — no network callCounted server-side after traffic is proxied
Data residencyLocal SQLite onlyPrompts + responses pass through vendor servers
Model routingBuilt-in suggest_model_routing toolRarely included; usually a separate paid tier
Multi-providerClaude, OpenAI, Gemini in one pricing tableOften single-provider or requires separate setup
Uptime dependencyNone — fully offlineBreaks if proxy is down

If your prompts contain sensitive information or you can't route traffic through a third party, this is the right tool. If you need a managed dashboard with team sharing, a proxy-based service may suit you better.

Disclaimers

mcp-cost-tracker-router stores tool call metadata (token counts, model names, timestamps) locally in SQLite. It does not store prompt or response content. Cost calculations are estimates based on a local pricing table and may not exactly match your provider's invoice.

Requirements

  • Node.js v20.19 or newer.
  • npm.

Getting started

Add the following config to your MCP client:

json
{  "mcpServers": {    "cost-tracker": {      "command": "npx",      "args": ["-y", "mcp-cost-tracker-router@latest"]    }  }}

To set a session budget alert:

json
{  "mcpServers": {    "cost-tracker": {      "command": "npx",      "args": ["-y", "mcp-cost-tracker-router@latest", "--budget-alert=5.00"]    }  }}

MCP Client configuration

Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed

Your first prompt

Enter the following in your MCP client to verify everything is working:

How much has this session cost so far?

Your client should return a token and USD cost summary for the current session.

Tools

Session (4 tools)

  • get_session_cost — Returns token totals and USD cost estimates for the current session. Read-only.
  • get_tool_costs — Returns per-tool cost breakdown for the session, sorted by cost descending. Read-only.
  • reset_session — Start a new cost-tracking session. Previous session data is retained in history.
  • record_usage — Record token usage for a tool call. Takes tool_name, model (optional), input_tokens, and output_tokens. Emits a budget warning notification if 80% of threshold is reached.

Budgets & routing (3 tools)

  • set_budget_alert — Set a budget threshold in USD (threshold_usd). Warns at 80% and 100% of the threshold. Use with --enforce-budget to block calls beyond the limit.
  • suggest_model_routing — Heuristic model recommendation by task type. Takes task_description and optional constraints.max_cost_usd. Returns recommended model with reasoning and estimated cost.
  • check_routing_policy — Check whether a model is allowed for a given task type under the routing policy. Takes task_type and model.

History & reports (4 tools)

  • get_spend_history — Query historical spend aggregated by period (day/week/month). Returns breakdown by model and tool. Read-only.
  • estimate_workflow_cost — Pre-run cost estimation for a multi-step workflow. Takes a steps array with tool_name, estimated_input_tokens, estimated_output_tokens, and optional model. Read-only.
  • export_spend_report — Generate a single-file HTML spend report with session breakdown, historical spend, model cost comparison, and budget status. Read-only.
  • export_budget_audit — Export the audit log of budget enforcement decisions. Accepts optional from_date, to_date, and format (json/csv). Read-only.

Project allocation (4 tools)

  • set_project — Create or update a project with an optional budget_usd. Takes project_name.
  • tag_session — Tag the current session with a project_name for cost allocation.
  • get_project_costs — Get cost report for a project. Takes project_name and optional since (ISO date). Read-only.
  • export_chargeback — Generate a chargeback report for internal billing. Takes from_date, to_date, optional group_by (project/session), and optional format (json/csv). Read-only.

Configuration

--budget-alert

Session spend threshold in USD. A warning is returned when session costs reach 80% and again at 100% of this threshold.

Type: number

--db / --db-path

Path to the SQLite database file used to store cost history.

Type: string Default: ~/.mcp/costs.db

--pricing-table

Path to a JSON file containing custom model pricing ($/1K tokens). Merged with the built-in table; missing models fall back to defaults.

Type: string

--default-model

Model name to attribute costs to when no model can be inferred from context.

Type: string Default: claude-sonnet-4-6

--enforce-budget

Block tool calls that would cause the session to exceed the budget alert threshold. Requires --budget-alert to be set.

Type: boolean Default: false

--http-port

Start in HTTP mode using Streamable HTTP transport instead of stdio. Useful for sharing a single cost-tracking instance across a team.

Type: number Default: disabled (uses stdio)

Pass flags via the args property in your JSON config:

json
{  "mcpServers": {    "cost-tracker": {      "command": "npx",      "args": [        "-y",        "mcp-cost-tracker-router@latest",        "--budget-alert=2.00",        "--enforce-budget"      ]    }  }}

Supported models and pricing

Built-in pricing table (USD per 1K tokens):

ModelInputOutput
claude-opus-4-6$0.0150$0.0750
claude-sonnet-4-6$0.0030$0.0150
claude-haiku-4-5$0.0008$0.0040
gpt-4o$0.0025$0.0100
gpt-4o-mini$0.000150$0.000600
gemini-1.5-pro$0.001250$0.005000
gemini-1.5-flash$0.000075$0.000300
gemini-2.0-flash$0.000100$0.000400

Override individual model prices with --pricing-table. All costs are estimates.

Verification

Before publishing a new version, verify the server with MCP Inspector to confirm all tools are exposed correctly and the protocol handshake succeeds.

Interactive UI (opens browser):

bash
npm run build && npm run inspect

CLI mode (scripted / CI-friendly):

bash
# List all toolsnpx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and promptsnpx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/listnpx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list
# Call a read-only toolnpx @modelcontextprotocol/inspector --cli node dist/index.js \  --method tools/call --tool-name get_session_cost
# Call record_usage with argumentsnpx @modelcontextprotocol/inspector --cli node dist/index.js \  --method tools/call --tool-name record_usage \  --tool-arg tool_name=my_tool --tool-arg input_tokens=500 --tool-arg output_tokens=200

Run before publishing to catch regressions in tool registration and runtime startup.

Contributing

Update src/pricing.ts when new models are released. All cost calculation changes must include unit tests with known token counts and expected USD values. Routing suggestions live in src/tools/routing.ts.

bash
npm install && npm test

MCP Registry & Marketplace

This plugin is available on:

Search for mcp-cost-tracker-router.

Source: README.md at commit 7a8f731

Tools

15

get_session_cost

Returns token totals and USD cost estimates for the current session. All costs are estimates; verify with your LLM provider's billing dashboard.

Takes no parameters.

get_tool_costs

Returns per-tool cost breakdown for the current session, sorted by cost descending. Useful for identifying the most expensive operations. All costs are estimates.

Takes no parameters.

set_budget_alert

Set a budget threshold in USD. A warning is emitted when session costs reach 80% or 100% of this threshold. Use with --enforce-budget to block calls beyond the limit.

Parametersthreshold_usdrequired

reset_session

Start a new cost-tracking session. Previous session data is retained in history and accessible via get_spend_history.

Takes no parameters.

get_spend_history

Query historical spend aggregated by time period (day/week/month). Returns breakdown by model and tool across all sessions. All costs are estimates.

Parametersperiod

record_usage

Record token usage for a tool call. Logs LLM API cost estimates into the tracker. Emits a budget warning (notifications/message) if 80% of threshold is reached. Pricing table versions are tracked in CHANGELOG.md.

Parametersmodeltool_namerequiredinput_tokensrequiredoutput_tokensrequired

suggest_model_routing

Heuristic model recommendation by task type. Analyzes the task description and returns a recommended model with reasoning and estimated cost per 1K tokens. Optionally factors in cost constraints.

Parametersconstraintstask_descriptionrequired

estimate_workflow_cost

Pre-run cost estimation for a multi-step workflow. Provide a list of tool steps with estimated token counts and models to get total and per-step cost estimates. Output is clearly labeled as ESTIMATE.

Parametersstepsrequired

export_spend_report

Generate a single-file HTML spend report with session cost breakdown, historical spend by period, model cost comparison chart (CSS bars), and budget status. No external CDN dependencies.

Takes no parameters.

export_budget_audit

Export audit log of budget enforcement decisions. Optionally filter by date range and format as JSON or CSV.

Parametersformatto_datefrom_date

set_project

Create or update a project with an optional budget in USD.

Parametersbudget_usdproject_namerequired

get_project_costs

Get cost report for a project, optionally filtered by a since date.

Parameterssinceproject_namerequired

tag_session

Tag the current session with a project name for cost allocation.

Parametersproject_namerequired

export_chargeback

Generate a chargeback report for internal team billing, grouped by project or session.

Parametersformatto_daterequiredgroup_byfrom_daterequired

check_routing_policy

Check whether a model is allowed for a given task type under the routing policy.

Parametersmodelrequiredtask_typerequired

Version history

2
  1. v1.0.1LatestNov 4, 2026
  2. v1.0.0Sep 16, 2026

Score

90% 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
  • 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 listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Router integrations