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-router | Rastreadores basados en proxy (Helicone, LLMonitor, etc.) | |
|---|---|---|
| Conteo de tokens | Sin conexión vía js-tiktoken — sin llamada de red | Contado del lado del servidor después de que el tráfico pasa por el proxy |
| Residencia de datos | Solo SQLite local | Los prompts y respuestas pasan por servidores del proveedor |
| Enrutamiento de modelos | Herramienta suggest_model_routing integrada | Raramente incluido; normalmente un nivel pago separado |
| Multi-proveedor | Claude, OpenAI, Gemini en una tabla de precios | A menudo de un solo proveedor o requiere configuración separada |
| Dependencia de disponibilidad | Ninguna — completamente sin conexión | Se 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. Tomatool_name,model(opcional),input_tokensyoutput_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-budgetpara bloquear llamadas más allá del límite.suggest_model_routing— Recomendación heurística de modelos por tipo de tarea. Tomatask_descriptionyconstraints.max_cost_usdopcional. 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. Tomatask_typeymodel.
Historial e informes (4 herramientas)
get_spend_history— Consulta el gasto histórico agregado porperiod(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 destepscontool_name,estimated_input_tokens,estimated_output_tokensymodelopcional. 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. Aceptafrom_date,to_dateyformatopcionales (json/csv). Solo lectura.
Asignación de proyectos (4 herramientas)
set_project— Crea o actualiza un proyecto con unbudget_usdopcional. Tomaproject_name.tag_session— Etiqueta la sesión actual con unproject_namepara asignación de costos.get_project_costs— Obtiene el informe de costos de un proyecto. Tomaproject_nameysinceopcional (fecha ISO). Solo lectura.export_chargeback— Genera un informe de contracargo para facturación interna. Tomafrom_date,to_date,group_byopcional (project/session) yformatopcional (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):
| Modelo | Entrada | Salida |
|---|---|---|
| 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.