MCP Cost Tracker Router

Conciencia de costos en tiempo real para flujos de trabajo de agentes MCP: rastrea gastos, establece presupuestos y enruta según el precio del modelo.

Documentación

MCP Cost Tracker & Router

Paquete npm mcp-cost-tracker-router

Conciencia de costos local-primero para flujos de trabajo de agentes MCP. Los conteos de tokens se calculan sin conexión usando js-tiktoken — sin proxy, sin ida y vuelta a la API, sin que los datos de gasto salgan de tu máquina. Cuando los costos aumentan, las sugerencias de enrutamiento te señalan modelos más baratos antes de que llegue la factura.

Referencia de herramientas | Configuración | Contribuciones | Solución de problemas

Características principales

  • Desglose de costos por herramienta: Ve exactamente qué llamadas a herramientas consumen más tokens y presupuesto.
  • Alertas de presupuesto: Establece un umbral de gasto de sesión y recibe advertencias al 80% y 100% antes de superarlo.
  • Conteo de tokens sin conexión: Usa js-tiktoken para conteos precisos — no se requieren llamadas a la API.
  • Sugerencias de enrutamiento de modelos: Recomienda modelos más baratos para el tipo de tarea actual (informativo, nunca aplicado sin aceptación explícita).
  • Precios multi-proveedor: Rastrea costos en modelos de Claude, OpenAI y Gemini desde una única tabla de precios configurable.
  • Historial de gastos: Consulta totales diarios, semanales y mensuales por modelo o herramienta.
  • Asignación de costos por proyecto: Etiqueta sesiones a proyectos nombrados y genera informes de contracargo.
  • Informes de gastos en HTML: Exporta un informe HTML autocontenido de un solo archivo con gráficos y estado del presupuesto.
  • Registro de auditoría: Registro de solo anexión de cada decisión de aplicación del presupuesto.

¿Por qué esto en lugar de rastreadores de costos basados en proxy?

La mayoría de las herramientas de seguimiento de costos funcionan enrutando todo tu tráfico de API a través de su servidor y midiendo los tokens del lado del servidor. Eso significa que tus prompts y respuestas transitan por un servicio de terceros, y dependes de su disponibilidad.

mcp-cost-tracker-routerRastreadores basados en proxy (Helicone, LLMonitor, etc.)
Conteo de tokensSin conexión vía js-tiktoken — sin llamada de redContado del lado del servidor después de que el tráfico pasa por el proxy
Residencia de datosSolo SQLite localLos prompts y respuestas pasan por servidores del proveedor
Enrutamiento de modelosHerramienta suggest_model_routing integradaRaramente incluido; normalmente un nivel pago separado
Multi-proveedorClaude, OpenAI, Gemini en una tabla de preciosA menudo de un solo proveedor o requiere configuración separada
Dependencia de disponibilidadNinguna — completamente sin conexiónSe interrumpe si el proxy está caído

Si tus prompts contienen información sensible o no puedes enrutar tráfico a través de un tercero, esta es la herramienta adecuada. Si necesitas un panel administrado con uso compartido para equipos, un servicio basado en proxy puede ser más adecuado para ti.

Avisos

mcp-cost-tracker-router almacena metadatos de llamadas a herramientas (conteos de tokens, nombres de modelos, marcas de tiempo) localmente en SQLite. No almacena el contenido de prompts ni respuestas. Los cálculos de costos son estimaciones basadas en una tabla de precios local y pueden no coincidir exactamente con la factura de tu proveedor.

Requisitos

  • Node.js v20.19 o más reciente.
  • npm.

Primeros pasos

Agrega la siguiente configuración a tu cliente MCP:

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

Para establecer una alerta de presupuesto de sesión:

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

Configuración del cliente MCP

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

Tu primer prompt

Ingresa lo siguiente en tu cliente MCP para verificar que todo funciona:

How much has this session cost so far?

Tu cliente debería devolver un resumen de tokens y costos en USD para la sesión actual.

Herramientas

Sesión (4 herramientas)

  • get_session_cost — Devuelve totales de tokens y estimaciones de costos en USD para la sesión actual. Solo lectura.
  • get_tool_costs — Devuelve el desglose de costos por herramienta para la sesión, ordenado por costo descendente. Solo lectura.
  • reset_session — Inicia una nueva sesión de seguimiento de costos. Los datos de la sesión anterior se conservan en el historial.
  • record_usage — Registra el uso de tokens para una llamada a herramienta. Toma tool_name, model (opcional), input_tokens y output_tokens. Emite una notificación de advertencia de presupuesto si se alcanza el 80% del umbral.

Presupuestos y enrutamiento (3 herramientas)

  • set_budget_alert — Establece un umbral de presupuesto en USD (threshold_usd). Advierte al 80% y 100% del umbral. Úsalo con --enforce-budget para bloquear llamadas más allá del límite.
  • suggest_model_routing — Recomendación heurística de modelos por tipo de tarea. Toma task_description y constraints.max_cost_usd opcional. Devuelve el modelo recomendado con razonamiento y costo estimado.
  • check_routing_policy — Verifica si un modelo está permitido para un tipo de tarea dado bajo la política de enrutamiento. Toma task_type y model.

Historial e informes (4 herramientas)

  • get_spend_history — Consulta el gasto histórico agregado por period (day/week/month). Devuelve un desglose por modelo y herramienta. Solo lectura.
  • estimate_workflow_cost — Estimación de costos previa a la ejecución para un flujo de trabajo de múltiples pasos. Toma un array de steps con tool_name, estimated_input_tokens, estimated_output_tokens y model opcional. Solo lectura.
  • export_spend_report — Genera un informe de gastos HTML de un solo archivo con desglose de sesión, gasto histórico, comparación de costos de modelos y estado del presupuesto. Solo lectura.
  • export_budget_audit — Exporta el registro de auditoría de decisiones de aplicación del presupuesto. Acepta from_date, to_date y format opcionales (json/csv). Solo lectura.

Asignación de proyectos (4 herramientas)

  • set_project — Crea o actualiza un proyecto con un budget_usd opcional. Toma project_name.
  • tag_session — Etiqueta la sesión actual con un project_name para asignación de costos.
  • get_project_costs — Obtiene el informe de costos de un proyecto. Toma project_name y since opcional (fecha ISO). Solo lectura.
  • export_chargeback — Genera un informe de contracargo para facturación interna. Toma from_date, to_date, group_by opcional (project/session) y format opcional (json/csv). Solo lectura.

Configuración

--budget-alert

Umbral de gasto de sesión en USD. Se devuelve una advertencia cuando los costos de sesión alcanzan el 80% y nuevamente al 100% de este umbral.

Tipo: number

--db / --db-path

Ruta al archivo de base de datos SQLite utilizado para almacenar el historial de costos.

Tipo: string Predeterminado: ~/.mcp/costs.db

--pricing-table

Ruta a un archivo JSON que contiene precios de modelos personalizados ($/1K tokens). Se combina con la tabla integrada; los modelos faltantes recurren a los valores predeterminados.

Tipo: string

--default-model

Nombre del modelo al que atribuir costos cuando no se puede inferir ningún modelo del contexto.

Tipo: string Predeterminado: claude-sonnet-4-6

--enforce-budget

Bloquea llamadas a herramientas que harían que la sesión supere el umbral de alerta de presupuesto. Requiere que --budget-alert esté configurado.

Tipo: boolean Predeterminado: false

--http-port

Inicia en modo HTTP usando transporte Streamable HTTP en lugar de stdio. Útil para compartir una única instancia de seguimiento de costos entre un equipo.

Tipo: number Predeterminado: deshabilitado (usa stdio)

Pasa las banderas a través de la propiedad args en tu configuración JSON:

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

Modelos compatibles y precios

Tabla de precios integrada (USD por 1K tokens):

ModeloEntradaSalida
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

Anula los precios de modelos individuales con --pricing-table. Todos los costos son estimaciones.

Verificación

Antes de publicar una nueva versión, verifica el servidor con MCP Inspector para confirmar que todas las herramientas están expuestas correctamente y que el handshake del protocolo se completa con éxito.

Interfaz interactiva (abre el navegador):

npm run build && npm run inspect

Modo CLI (con scripts / compatible con CI):

# List all tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list

# List resources and prompts
npx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/list
npx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list

# Call a read-only tool
npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call --tool-name get_session_cost

# Call record_usage with arguments
npx @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

Ejecuta antes de publicar para detectar regresiones en el registro de herramientas y el inicio del runtime.

Contribuciones

Actualiza src/pricing.ts cuando se publiquen nuevos modelos. Todos los cambios en el cálculo de costos deben incluir pruebas unitarias con conteos de tokens conocidos y valores USD esperados. Las sugerencias de enrutamiento viven en src/tools/routing.ts.

npm install && npm test

Registro MCP y Marketplace

Este plugin está disponible en:

Busca mcp-cost-tracker-router.