Provides DuckDB-powered analytics engine for querying and analyzing FOCUS cloud billing data, supporting both local Parquet files and S3 storage with fast SQL query execution.
Enables analysis of Google Cloud cost and usage data through FOCUS billing format, allowing standardized cost queries and optimization insights across cloud providers.
FOCUS MCP Server
An educational MCP (Model Context Protocol) server for analyzing FOCUS (FinOps Open Cost & Usage Specification) billing data. This server provides AI assistants with powerful tools to query and analyze cloud cost data using the industry-standard FOCUS format.
What is FOCUS?
FOCUS (FinOps Open Cost & Usage Specification) is an open standard for cloud billing data that provides consistent, normalized cost and usage data across cloud providers like AWS, Azure, and Google Cloud. It enables organizations to:
Standardize cost data across multiple cloud providers
Simplify financial analysis and reporting
Enable consistent FinOps practices
Improve cost optimization and allocation
What This Server Does
This MCP server connects AI assistants (like Claude) to your FOCUS billing data, enabling natural language queries for complex cost analysis. Instead of writing SQL manually, you can ask questions like:
"What are my highest cost services by region this month?"
"Show me commitment discount utilization trends"
"Find anomalous spending patterns by account"
The server provides:
🔍 36+ predefined queries from the official FOCUS documentation
📊 DuckDB-powered analytics for fast querying of large datasets
🔄 Multi-version support (FOCUS v1.0, v1.1, v1.2)
📚 Schema documentation with column/attribute definitions from FOCUS spec
🎯 Educational examples with citations to official docs
Features
MCP Tools Available
Data & Query Tools:
get_data_info- Inspect your loaded FOCUS data (row counts, date ranges, providers)list_use_cases- Browse 36+ predefined analysis queriesget_use_case- Get detailed info about specific queries (SQL, parameters, citations)execute_query- Run custom SQL or predefined queries on your data
Schema & Specification Tools:
list_columns- List all FOCUS columns with metadata (type, requirement level)get_column_details- Get detailed information for specific columnslist_attributes- List FOCUS formatting standards and conventionsget_attribute_details- Get detailed requirements for specific attributes
Query Library
36+ Professional Queries (more queries for later versions): Curated from focus.finops.org use cases
Version Support: Queries for FOCUS v1.0, v1.1, and v1.2
Real-world Scenarios: Cost optimization, budget tracking, anomaly detection
Official Citations: Each query links back to the FOCUS documentation
Quick Start
1. Prepare Your FOCUS Data
This server works with FOCUS billing data in Parquet format with Hive partitioning, supporting both local files and S3 storage.
Local Data
S3 Data
Getting FOCUS Data:
AWS: Follow the official FOCUS setup guide for AWS
Microsoft Azure: Follow the official FOCUS setup guide for Microsoft
Google Cloud: Follow the official FOCUS setup guide for Google Cloud
Other Providers: See all FOCUS setup guides
2. Install & Configure with Docker (Recommended)
The server is available as a Docker image on both Docker Hub and GitHub Container Registry.
Pull the Docker Image
Configure Claude Desktop
Add to your Claude Desktop claude_desktop_config.json:
For local FOCUS data:
For S3 data with AWS credentials:
For S3 data with AWS profile:
3. Test the Connection
Start Claude Desktop and try:
Claude will use the get_data_info tool to inspect your dataset.
4. Usage Examples
Configuration
Environment Variables
Variable | Default | Description |
|
| Path to FOCUS data (local or S3 URI) |
|
| FOCUS specification version (1.0, 1.1, 1.2) |
|
| AWS region for S3 access |
| (optional) | AWS profile name to use for S3 authentication |
S3 Configuration Example
The AWS credential chain automatically finds credentials from:
IAM roles (when running on AWS infrastructure)
Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
AWS CLI profiles (set AWS_PROFILE env var to specify which profile)
AWS credentials file (~/.aws/credentials)
Note: AWS_PROFILE is a standard AWS environment variable that the credential chain respects.
Development
For developers who want to contribute or customize the server:
Installation from Source
Running Locally with uv
Configure Claude Desktop with Local Installation
Add to your Claude Desktop claude_desktop_config.json:
Building Your Own Docker Image
Running Docker Directly (for testing)
Local FOCUS Data
S3 FOCUS Data
Using AWS credentials from environment:
Using AWS profile:
Todo
Implement automated query synchronization from FOCUS specification
Extract column definitions and attributes from FOCUS spec for enhanced data insights
Enhance response formatting with citations and educational context for AI models
Validate all use cases queries against v1.1 and v1.2 exports
Evaluate if moving attributes/columns to MCP resources makes more sense
Review conformance gap documents for additional documentation and insights to share in the responses