FOCUS MCP Server
Servidor FOCUS MCP
Pregunta a tu asistente de IA cuánto cuesta realmente tu nube. Este servidor MCP (Model Context Protocol) conecta Claude, o cualquier otro cliente MCP, a tus datos de facturación FOCUS, de modo que preguntas como estas se convierten en indicaciones de una sola línea en lugar de SQL escrito a mano:
"¿Cuáles son mis servicios de mayor coste por región este mes?"
"Muéstrame las tendencias de utilización de descuentos por compromiso."
"¿Qué cuentas tienen patrones de gasto inusuales?"
"Explica la diferencia entre BilledCost y EffectiveCost."
En segundo plano, DuckDB consulta tus exportaciones Parquet directamente, ya estén en disco local, S3 o GCS. No hay que montar un almacén de datos. El servidor incluye 254 consultas seleccionadas del catálogo oficial de casos de uso de FOCUS, como una colección separada por versión de la especificación (36 para v1.0, 41 para v1.1, 53 para v1.2, 58 para v1.3, 66 para v1.4), y cada consulta cita la página de la que procede.
¿Qué es FOCUS?
FOCUS (FinOps Open Cost & Usage Specification) es el estándar abierto para los datos de facturación de la nube. AWS, Microsoft y Google Cloud lo exportan de forma nativa, de modo que un único esquema y un único conjunto de consultas funcionan en todos los proveedores.
Related MCP server: MCP Cloud Services Server
Inicio rápido
1. Obtén datos FOCUS
Cada proveedor tiene una ruta de exportación oficial:
AWS: Guía de configuración de FOCUS para AWS (Data Exports → FOCUS 1.0 o 1.2)
Microsoft Azure: Guía de configuración de FOCUS para Microsoft
Google Cloud: Guía de configuración de FOCUS para Google Cloud, o consulta GCS + BigQuery más abajo
Otros proveedores: todas las guías de configuración de FOCUS
El servidor lee Parquet con particionado Hive:
/path/to/your/focus/data/
├── billing_period=2025-05/
│ ├── file1.parquet
│ └── file2.parquet
├── billing_period=2025-06/
│ └── ...2. Ejecuta el servidor
La vía más rápida no necesita contenedor. uvx descarga y ejecuta el
paquete publicado en un solo paso:
claude mcp add focus -e FOCUS_DATA_LOCATION=/path/to/your/focus/data -- uvx focus-mcpPara Claude Desktop, añade esto a claude_desktop_config.json:
{
"mcpServers": {
"focus": {
"command": "uvx",
"args": ["focus-mcp"],
"env": {
"FOCUS_DATA_LOCATION": "/path/to/your/focus/data",
"FOCUS_VERSION": "1.0"
}
}
}
}Leer GCS con Application Default Credentials requiere el extra gcs, que
uvx instala cuando lo nombras:
claude mcp add focus -e FOCUS_DATA_LOCATION=gs://your-bucket/focus \
-- uvx --from 'focus-mcp[gcs]' focus-mcpDocker sigue disponible y es la mejor opción cuando quieres una imagen fijada y atestiguada:
Las imágenes se publican en Docker Hub y GitHub Container Registry en cada lanzamiento:
docker pull glassity/focus-mcp:latest # Docker Hub
docker pull ghcr.io/glassity/focus-mcp:latest # GHCRPara Claude Code, un solo comando:
claude mcp add focus -- docker run -i --rm \
-v /path/to/your/focus/data:/data:ro \
-e FOCUS_DATA_LOCATION=/data \
glassity/focus-mcp:latestPara Claude Desktop, añade esto a claude_desktop_config.json:
{
"mcpServers": {
"focus": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/your/focus/data:/data:ro",
"-e", "FOCUS_DATA_LOCATION=/data",
"-e", "FOCUS_VERSION=1.0",
"glassity/focus-mcp:latest"
]
}
}
}Para datos en S3 o GCS, elimina el montaje de volumen y apunta
FOCUS_DATA_LOCATION al bucket. Consulta Ubicaciones de datos
para las opciones de credenciales.
3. Haz una pregunta
Inicia tu cliente y prueba:
Show me what FOCUS data is loaded.El asistente llama a get_data_info e informa de recuentos de filas, rangos
de fechas y proveedores. A partir de ahí, pregunta en lenguaje natural:
Run the service costs by region analysis for the last 3 months.
Show me the top 10 most expensive services across all accounts.
Find unused capacity reservations I can optimize.
Compare costs across providers and regions.
What columns are available in FOCUS v1.4?Herramientas
Ocho herramientas, en dos grupos.
Datos y consultas:
Herramienta | Qué hace |
| Inspecciona los datos cargados: recuentos de filas, rangos de fechas, proveedores |
| Explora las consultas de análisis predefinidas para tu versión de FOCUS |
| Una consulta en detalle: SQL, parámetros, cita a la especificación |
| Ejecuta una consulta predefinida o SQL personalizado contra tus datos |
Esquema y especificación:
Herramienta | Qué hace |
| Todas las columnas FOCUS con tipo y nivel de requisito |
| Definición completa de una columna |
| Estándares y convenciones de formato de FOCUS |
| Requisitos completos de un atributo |
Las herramientas de esquema responden desde la propia especificación FOCUS, de modo que el asistente puede explicar qué significa una columna además de consultarla.
Biblioteca de consultas
Cada consulta se extrae del catálogo oficial de casos de uso de FOCUS y lleva una cita a su página de origen:
FOCUS v1.0: 36 consultas
FOCUS v1.1: 41 consultas
FOCUS v1.2: 53 consultas
FOCUS v1.3: 58 consultas
FOCUS v1.4: 66 consultas
La cobertura incluye asignación de costes, seguimiento de descuentos por
compromiso, detección de anomalías, conciliación de presupuestos y
comparación entre proveedores. FOCUS_VERSION selecciona qué conjunto está
activo; hazlo coincidir con lo que exporta tu proveedor. La especificación va
por delante de las exportaciones — AWS Data Exports entrega actualmente
FOCUS 1.0 y 1.2 —, así que las colecciones 1.3 y 1.4 están listas para el día
en que un proveedor las publique.
Ubicaciones de datos
Archivos locales
export FOCUS_DATA_LOCATION="/path/to/your/focus/data"Una copia descargada de una exportación de AWS Data Exports (aws s3 sync,
un volumen montado) se carga a través de los manifiestos con los que se
copió, exactamente igual que el propio bucket — consulta más abajo.
Amazon S3
export FOCUS_DATA_LOCATION="s3://your-bucket/focus-exports"
export AWS_REGION="us-west-2" # defaults to us-east-1Apunta la ubicación a la raíz de la exportación, el prefijo que contiene
tanto data/ como metadata/. AWS Data Exports lista cada archivo de su
última entrega en un manifiesto por período de facturación bajo metadata/,
y el servidor carga esos archivos cuando los manifiestos están presentes:
los fragmentos sustituidos y los períodos reentregados que quedan en el
prefijo se ignoran en lugar de contarse dos veces. Las ubicaciones sin
manifiestos — una exportación de BigQuery, un directorio de archivos Parquet
— se leen haciendo globbing de todos los archivos Parquet que contienen.
get_data_info informa de cuál de los dos métodos se usó, y la lista de
archivos se actualiza cada pocos minutos para que las nuevas entregas no
requieran reinicio.
La autenticación usa la cadena de credenciales estándar de AWS, en este
orden: rol de IAM (automático en EC2/ECS/Lambda), variables de entorno
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, AWS_PROFILE y luego
~/.aws/credentials.
export AWS_PROFILE="billing-reader" # use a specific profileAlgunos buckets almacenan claves con una barra inicial; si el listado falla,
prueba con doble barra después del nombre del bucket:
s3://tu-bucket//focus/path.
Cuando se ejecuta en Docker, pasa las credenciales como variables -e o
monta el perfil en modo solo lectura:
docker run -i --rm \
-v "$HOME/.aws:/home/mcp/.aws:ro" \
-e FOCUS_DATA_LOCATION="s3://your-bucket/focus-exports" \
-e AWS_REGION="us-west-2" \
-e AWS_PROFILE="billing-reader" \
glassity/focus-mcp:latestGoogle Cloud (exportación FOCUS de GCS + BigQuery)
Google Cloud exporta la facturación de forma nativa en formato FOCUS: Billing → Billing export → FOCUS usage cost (Vista previa) escribe una tabla FOCUS en BigQuery. Expórtala a Parquet en un bucket de GCS:
EXPORT DATA OPTIONS (
uri = 'gs://your-bucket/focus-export/*.parquet',
format = 'PARQUET',
overwrite = true
) AS
SELECT * FROM `your-project.your_focus_dataset.your_focus_table`;Programa esa sentencia como una consulta programada de BigQuery para mantener el bucket actualizado; esto también archiva tus datos más allá del TTL de 2 años de la exportación FOCUS. Luego:
export FOCUS_DATA_LOCATION="gs://your-bucket/focus-export"La autenticación se intenta en este orden:
Claves HMAC: establece
GCS_HMAC_KEY_IDyGCS_HMAC_SECRET(créalas congcloud storage hmac create <service-account-email>). Esta vía usa el soporte nativo de GCS de DuckDB a través de la API de interoperabilidad con S3 y no necesita dependencias adicionales.Application Default Credentials: incluidas en la imagen de Docker; desde un checkout del código fuente, instala el extra con
uv sync --extra gcs. Luego autentícate como lo haces normalmente:gcloud auth application-default login, un JSON de cuenta de servicio medianteGOOGLE_APPLICATION_CREDENTIALS, o identidad de carga de trabajo en GCE/GKE.Sin credenciales: solo buckets públicos.
Existen dos métodos porque el soporte GCS integrado de DuckDB solo habla
HMAC; ADC proviene de la dependencia opcional gcsfs. Las credenciales solo
se leen dentro del proceso del servidor y nunca se exponen a los clientes
MCP.
Configuración
Variable | Valor por defecto | Descripción |
|
| Dónde vive el Parquet: una ruta local, |
|
| Versión de la especificación FOCUS: |
|
| Región para el acceso a S3 |
| (sin definir) | Perfil de AWS para la autenticación en S3 |
| (sin definir) | Credenciales estáticas de AWS, si no se usa un rol o perfil |
| (sin definir) | Credenciales HMAC para GCS |
| (sin definir) | JSON de cuenta de servicio para GCS mediante ADC |
Desarrollo
git clone https://github.com/glassity/focus-mcp.git
cd focus-mcp
uv sync # install, including dev tools
uv sync --extra gcs # + GCS ADC support
export FOCUS_DATA_LOCATION="/path/to/your/focus/data"
uv run focus-mcpApunta un cliente al checkout del código fuente en lugar de a la imagen de Docker:
{
"mcpServers": {
"focus": {
"command": "uv",
"args": ["run", "--directory", "/path/to/focus-mcp", "focus-mcp"],
"env": {
"FOCUS_DATA_LOCATION": "/path/to/your/focus/data",
"FOCUS_VERSION": "1.0"
}
}
}
}Compila y ejecuta tu propia imagen:
docker build -t focus-mcp:custom .
docker run -i --rm \
-v "/path/to/your/focus/data:/data:ro" \
-e FOCUS_DATA_LOCATION=/data \
focus-mcp:customConsulta CONTRIBUTING.md para conocer las convenciones y comprobaciones antes de abrir una solicitud de extracción.
Hoja de ruta
Sincronización automatizada de consultas desde la especificación FOCUS, para que las nuevas páginas de casos de uso lleguen aquí sin extracción manual
Formato de respuesta más rico: citas y contexto educativo integrados en los resultados de las consultas
Validación de cada consulta de caso de uso contra exportaciones reales de proveedores (AWS publica FOCUS 1.0 y 1.2 hoy; 1.3+ a medida que los proveedores las adopten)
Evaluar el traslado de las definiciones de columnas y atributos a recursos MCP
Mostrar notas de brechas de conformidad de la especificación en las respuestas de las herramientas
Seguridad
Notifica las vulnerabilidades a la dirección de SECURITY.md,
no al rastreador de incidencias. Conoce el modelo de confianza:
execute_query ejecuta SQL que escribe el asistente de IA, dentro del
proceso del servidor. Tus archivos Parquet son una fuente de consulta, no una
base de datos escribible, y todos los ejemplos de aquí los montan con :ro;
mantén eso. Ejecuta la imagen de Docker en lugar de un proceso desnudo si
quieres un límite estricto, y dale al servidor solo las credenciales de
almacenamiento de objetos que necesita, con ámbito limitado al bucket de
facturación.
Licencia
Apache-2.0. Copyright Glassity. Ver LICENCIA.
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.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables cost optimization and financial operations for Google BigQuery through natural language interactions. Provides insights into BigQuery spending, usage patterns, and cost management recommendations.
- AlicenseCqualityDmaintenanceEnables AI assistants to manage multi-cloud resources (AWS, Azure, GCP) including resource operations, cost analysis, monitoring metrics, and security compliance checks through natural language commands.26102MIT
- AlicenseBqualityDmaintenanceProvides a comprehensive suite of 76 tools for AWS cloud resource optimization, cost management, and infrastructure monitoring. It enables users to identify unused resources, analyze cost trends, right-size capacity, and maintain security compliance through natural language.76MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language analysis of AWS costs, automated FinOps waste audits, and budget monitoring across multiple profiles and regions while keeping credentials secure locally.181MIT
Related MCP Connectors
Verified cloud cost forecasting for AI agents. AWS, GCP, Azure pricing matrix.
Verified cloud cost forecasting for AI agents. AWS, GCP, Azure pricing matrix.
Ask AI about your ads — query Meta, TikTok, and Google Ads performance in natural language.
Appeared in Searches
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/glassity/focus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server