FOCUS MCP Server
FOCUS-MCP-Server
Fragen Sie Ihren KI-Assistenten, was Ihre Cloud tatsächlich kostet. Dieser MCP-Server (Model Context Protocol) verbindet Claude oder einen anderen MCP-Client mit Ihren FOCUS-Abrechnungsdaten, sodass Fragen wie diese zu Einzeilen-Prompts werden, statt handgeschriebenem SQL:
"Was sind meine teuersten Dienste nach Region in diesem Monat?"
"Zeig mir die Trends bei der Nutzung von Verpflichtungsrabatten."
"Welche Konten weisen ungewöhnliche Ausgabemuster auf?"
"Erkläre den Unterschied zwischen BilledCost und EffectiveCost."
Im Hintergrund fragt DuckDB Ihre Parquet-Exporte direkt ab, egal ob sie auf der lokalen Festplatte, in S3 oder in GCS liegen. Es muss keine Data Warehouse aufgesetzt werden. Der Server bündelt 254 Abfragen aus dem offiziellen FOCUS-Anwendungsfall-Katalog, als separate Sammlung pro Spezifikationsversion (36 für v1.0, 41 für v1.1, 53 für v1.2, 58 für v1.3, 66 für v1.4), und jede Abfrage zitiert die Seite, aus der sie stammt.
Was ist FOCUS?
FOCUS (FinOps Open Cost & Usage Specification) ist der offene Standard für Cloud-Abrechnungsdaten. AWS, Microsoft und Google Cloud exportieren ihn nativ, sodass ein Schema und eine Reihe von Abfragen über alle Anbieter hinweg funktionieren.
Related MCP server: MCP Cloud Services Server
Schnellstart
1. FOCUS-Daten beschaffen
Jeder Anbieter hat einen offiziellen Exportpfad:
AWS: FOCUS-Einrichtungsanleitung für AWS (Data Exports → FOCUS 1.0 oder 1.2)
Microsoft Azure: FOCUS-Einrichtungsanleitung für Microsoft
Google Cloud: FOCUS-Einrichtungsanleitung für Google Cloud, oder siehe GCS + BigQuery unten
Andere Anbieter: alle FOCUS-Einrichtungsanleitungen
Der Server liest Parquet mit Hive-Partitionierung:
/path/to/your/focus/data/
├── billing_period=2025-05/
│ ├── file1.parquet
│ └── file2.parquet
├── billing_period=2025-06/
│ └── ...2. Server starten
Der schnellste Weg benötigt keinen Container. uvx holt und führt das
veröffentlichte Paket in einem Schritt aus:
claude mcp add focus -e FOCUS_DATA_LOCATION=/path/to/your/focus/data -- uvx focus-mcpFür Claude Desktop fügen Sie dies zu claude_desktop_config.json hinzu:
{
"mcpServers": {
"focus": {
"command": "uvx",
"args": ["focus-mcp"],
"env": {
"FOCUS_DATA_LOCATION": "/path/to/your/focus/data",
"FOCUS_VERSION": "1.0"
}
}
}
}Das Lesen von GCS mit Application Default Credentials erfordert das gcs-Extra,
das uvx installiert, wenn Sie es benennen:
claude mcp add focus -e FOCUS_DATA_LOCATION=gs://your-bucket/focus \
-- uvx --from 'focus-mcp[gcs]' focus-mcpDocker bleibt verfügbar und ist die bessere Wahl, wenn Sie ein gepinntes, attestiertes Image möchten:
Images werden bei jeder Veröffentlichung auf Docker Hub und GitHub Container Registry veröffentlicht:
docker pull glassity/focus-mcp:latest # Docker Hub
docker pull ghcr.io/glassity/focus-mcp:latest # GHCRFür Claude Code, ein Befehl:
claude mcp add focus -- docker run -i --rm \
-v /path/to/your/focus/data:/data:ro \
-e FOCUS_DATA_LOCATION=/data \
glassity/focus-mcp:latestFür Claude Desktop fügen Sie dies zu claude_desktop_config.json hinzu:
{
"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"
]
}
}
}Für S3- oder GCS-Daten entfernen Sie den Volume-Mount und zeigen Sie mit
FOCUS_DATA_LOCATION auf den Bucket. Siehe Datenorte für die
Anmeldeoptionen.
3. Etwas fragen
Starten Sie Ihren Client und versuchen Sie:
Show me what FOCUS data is loaded.Der Assistent ruft get_data_info auf und meldet Zeilenzahlen, Datumsbereiche
und Anbieter. Von dort aus fragen Sie in einfacher Sprache:
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?Werkzeuge
Acht Werkzeuge, in zwei Gruppen.
Daten und Abfrage:
Werkzeug | Was es tut |
| Untersucht die geladenen Daten: Zeilenzahlen, Datumsbereiche, Anbieter |
| Durchsucht die vordefinierten Analyseabfragen für Ihre FOCUS-Version |
| Eine Abfrage im Detail: SQL, Parameter, Zitat zur Spezifikation |
| Führt eine vordefinierte Abfrage oder benutzerdefiniertes SQL gegen Ihre Daten aus |
Schema und Spezifikation
Tool | Was es tut |
| Alle FOCUS-Spalten mit Typ und Anforderungsstufe |
| Vollständige Definition einer Spalte |
| FOCUS-Formatierungsstandards und -konventionen |
| Vollständige Anforderungen eines Attributs |
Die Schema-Werkzeuge antworten aus der FOCUS-Spezifikation selbst, sodass der Assistent erklären kann, was eine Spalte bedeutet, und sie auch abfragen kann.
Abfragebibliothek
Jede Abfrage ist aus dem offiziellen FOCUS-Anwendungsfall-Katalog extrahiert und trägt ein Zitat zurück zu ihrer Quellseite:
FOCUS v1.0: 36 Abfragen
FOCUS v1.1: 41 Abfragen
FOCUS v1.2: 53 Abfragen
FOCUS v1.3: 58 Abfragen
FOCUS v1.4: 66 Abfragen
Die Abdeckung umfasst Kostenverteilung, Verfolgung von Vertragsrabatten,
Anomalieerkennung, Budgetabgleich und Anbietervergleich. FOCUS_VERSION
wählt aus, welche Sammlung aktiv ist; passen Sie sie an das an, was Ihr
Anbieter exportiert. Die Spezifikation läuft den Exporten voraus – AWS Data
Exports liefert derzeit FOCUS 1.0 und 1.2 – sodass die Sammlungen für 1.3
und 1.4 bereit sind für den Tag, an dem ein Anbieter sie ausliefert.
Datenorte
Lokale Dateien
export FOCUS_DATA_LOCATION="/path/to/your/focus/data"Eine heruntergeladene Kopie eines AWS Data Exports (aws s3 sync, ein
gemountetes Volume) wird über die Manifeste geladen, mit denen sie kopiert
wurde, genau wie der Bucket selbst – siehe unten.
Amazon S3
export FOCUS_DATA_LOCATION="s3://your-bucket/focus-exports"
export AWS_REGION="us-west-2" # defaults to us-east-1Zeigen Sie den Ort auf die Exportwurzel, das Präfix, das sowohl data/ als
auch metadata/ enthält. AWS Data Exports listen jede Datei ihrer neuesten
Lieferung in einem Manifest pro Abrechnungszeitraum unter metadata/ auf,
und der Server lädt diese Dateien, wenn die Manifeste vorhanden sind:
überholte Blöcke und erneut gelieferte Zeiträume, die auf dem Präfix
zurückgelassen wurden, werden ignoriert, statt doppelt gezählt zu werden.
Orte ohne Manifeste – ein BigQuery-Export, ein Verzeichnis mit
Parquet-Dateien – werden durch Globbing aller darunterliegenden
Parquet-Dateien gelesen. get_data_info meldet, welche der beiden
verwendet wurde, und die Dateiliste wird alle paar Minuten aktualisiert,
sodass neue Lieferungen keinen Neustart erfordern.
Die Authentifizierung verwendet die Standard-AWS-Anmeldekette, in dieser
Reihenfolge: IAM-Rolle (automatisch auf EC2/ECS/Lambda),
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY-Umgebungsvariablen, AWS_PROFILE,
dann ~/.aws/credentials.
export AWS_PROFILE="billing-reader" # use a specific profileEinige Buckets speichern Schlüssel mit einem führenden Schrägstrich; wenn die
Auflistung fehlschlägt, versuchen Sie einen doppelten Schrägstrich nach dem
Bucket-Namen: s3://your-bucket//focus/path.
Wenn Sie in Docker ausführen, übergeben Sie Anmeldedaten als -e-Variablen
oder mounten Sie das Profil schreibgeschützt:
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 (GCS + BigQuery-FOCUS-Export)
Google Cloud exportiert Abrechnung nativ im FOCUS-Format: Billing → Billing export → FOCUS usage cost (Vorschau) schreibt eine FOCUS-Tabelle in BigQuery. Exportieren Sie sie als Parquet in einen GCS-Bucket:
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`;Planen Sie diese Anweisung als geplante BigQuery-Abfrage, um den Bucket frisch zu halten; dies archiviert auch Ihre Daten über die 2-Jahres-TTL des FOCUS-Exports hinaus. Dann:
export FOCUS_DATA_LOCATION="gs://your-bucket/focus-export"Die Authentifizierung wird in dieser Reihenfolge versucht:
HMAC-Schlüssel: setzen Sie
GCS_HMAC_KEY_IDundGCS_HMAC_SECRET(erstellen mitgcloud storage hmac create <service-account-email>). Dieser Pfad verwendet DuckDBs native GCS-Unterstützung über die S3-Interoperabilitäts-API und benötigt keine zusätzlichen Abhängigkeiten.Application Default Credentials: im Docker-Image enthalten; aus einem Quell-Checkout installieren Sie das Extra mit
uv sync --extra gcs. Dann authentifizieren Sie sich wie gewohnt:gcloud auth application-default login, eine Service-Konto-JSON überGOOGLE_APPLICATION_CREDENTIALSoder Workload-Identität auf GCE/GKE.Keine Anmeldedaten: nur öffentliche Buckets.
Zwei Methoden existieren, weil DuckDBs eingebaute GCS-Unterstützung nur HMAC
spricht; ADC stammt aus der optionalen gcsfs-Abhängigkeit. Anmeldedaten
werden nur innerhalb des Serverprozesses gelesen und niemals an MCP-Clients
weitergegeben.
Konfiguration
Variable | Standard | Beschreibung |
|
| Wo das Parquet liegt: ein lokaler Pfad, |
|
| FOCUS-Spezifikationsversion: |
|
| Region für S3-Zugriff |
| (nicht gesetzt) | AWS-Profil für S3-Authentifizierung |
| (nicht gesetzt) | Statische AWS-Anmeldedaten, wenn keine Rolle oder Profil verwendet wird |
| (nicht gesetzt) | HMAC-Anmeldedaten für GCS |
| (nicht gesetzt) | Service-Konto-JSON für GCS über ADC |
Entwicklung
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-mcpZeigen Sie einen Client auf das Quell-Checkout statt auf das Docker-Image:
{
"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"
}
}
}
}Bauen und führen Sie Ihr eigenes Image aus:
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:customSiehe CONTRIBUTING.md für Konventionen und Prüfungen, bevor Sie einen Pull-Request öffnen.
Roadmap
Automatisierte Abfragesynchronisierung aus der FOCUS-Spezifikation, sodass neue Anwendungsfall-Seiten hier ohne manuelle Extraktion landen
Reichhaltigere Antwortformatierung: Zitate und pädagogischer Kontext inline in Abfrageergebnissen
Validierung jeder Anwendungsfall-Abfrage gegen echte Anbieter-Exporte (AWS liefert heute FOCUS 1.0 und 1.2; 1.3+ sobald Anbieter sie übernehmen)
Bewertung, ob Spalten- und Attributdefinitionen zu MCP-Ressourcen verschoben werden
Konformitätslücken-Hinweise aus der Spezifikation in den Werkzeugantworten anzeigen
Sicherheit
Melden Sie Schwachstellen an die Adresse in SECURITY.md,
nicht an den Issue-Tracker. Kennen Sie das Vertrauensmodell: execute_query
führt SQL aus, das der KI-Assistent schreibt, innerhalb des Serverprozesses.
Ihre Parquet-Dateien sind eine Abfragequelle, keine beschreibbare Datenbank,
und jedes Beispiel hier mountet sie :ro; behalten Sie das bei. Führen Sie
das Docker-Image aus, statt eines nackten Prozesses, wenn Sie eine harte
Grenze wollen, und geben Sie dem Server nur die Objektstore-Anmeldedaten,
die er benötigt, begrenzt auf den Abrechnungs-Bucket.
Lizenz
Apache-2.0. Copyright Glassity. Siehe LICENSE.
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