FOCUS MCP Server
FOCUS MCP サーバー
AI アシスタントに、クラウドの実際のコストを尋ねましょう。この MCP(Model Context Protocol)サーバーは、Claude や他の MCP クライアントを FOCUS の請求データに接続し、次のような質問を 手書きの SQL ではなく 1 行のプロンプトに変えます。
「今月、リージョン別で最もコストが高いサービスは?」
「コミットメント割引の利用トレンドを見せて。」
「異常な支出パターンがあるアカウントは?」
「BilledCost と EffectiveCost の違いを説明して。」
内部では DuckDB が Parquet エクスポートを直接クエリします。 ローカルディスク、S3、GCS のどこにあっても構いません。データウェアハウスを 構築する必要はありません。サーバーには、公式の FOCUS ユースケースカタログから 厳選された 254 のクエリが、仕様バージョンごとに別々のコレクションとして バンドルされています(v1.0 は 36、v1.1 は 41、v1.2 は 53、v1.3 は 58、v1.4 は 66)。 各クエリには出典ページが記載されています。
FOCUS とは?
FOCUS(FinOps Open Cost & Usage Specification)は、 クラウド請求データのオープン標準です。AWS、Microsoft、Google Cloud は これをネイティブにエクスポートするため、1 つのスキーマと 1 セットのクエリが 複数のプロバイダーで機能します。
Related MCP server: MCP Cloud Services Server
クイックスタート
1. FOCUS データを取得する
各プロバイダーには公式のエクスポートパスがあります:
AWS: AWS 向け FOCUS セットアップガイド(Data Exports → FOCUS 1.0 または 1.2)
Microsoft Azure: Microsoft 向け FOCUS セットアップガイド
Google Cloud: Google Cloud 向け FOCUS セットアップガイド、または下記の GCS + BigQuery を参照
その他のプロバイダー: すべての FOCUS セットアップガイド
サーバーは Hive パーティショニングで Parquet を読み取ります:
/path/to/your/focus/data/
├── billing_period=2025-05/
│ ├── file1.parquet
│ └── file2.parquet
├── billing_period=2025-06/
│ └── ...2. サーバーを実行する
最も簡単な方法はコンテナを必要としません。uvx が公開パッケージを取得して
1 ステップで実行します:
claude mcp add focus -e FOCUS_DATA_LOCATION=/path/to/your/focus/data -- uvx focus-mcpClaude Desktop の場合は、claude_desktop_config.json にこれを追加します:
{
"mcpServers": {
"focus": {
"command": "uvx",
"args": ["focus-mcp"],
"env": {
"FOCUS_DATA_LOCATION": "/path/to/your/focus/data",
"FOCUS_VERSION": "1.0"
}
}
}
}Application Default Credentials で GCS を読み取るには gcs エクストラが必要です。
uvx は名前を指定するとインストールします:
claude mcp add focus -e FOCUS_DATA_LOCATION=gs://your-bucket/focus \
-- uvx --from 'focus-mcp[gcs]' focus-mcpDocker も引き続き利用可能で、固定された検証済みイメージが必要な場合に適しています。
イメージはリリースのたびに Docker Hub と GitHub Container Registry に公開されます:
docker pull glassity/focus-mcp:latest # Docker Hub
docker pull ghcr.io/glassity/focus-mcp:latest # GHCRClaude Code の場合は、1 つのコマンドで:
claude mcp add focus -- docker run -i --rm \
-v /path/to/your/focus/data:/data:ro \
-e FOCUS_DATA_LOCATION=/data \
glassity/focus-mcp:latestClaude Desktop の場合は、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"
]
}
}
}S3 または GCS データの場合は、ボリュームマウントを外して FOCUS_DATA_LOCATION を
バケットに向けます。認証情報のオプションについては データの場所 を参照してください。
3. 質問する
クライアントを起動して試してみましょう:
Show me what FOCUS data is loaded.アシスタントは get_data_info を呼び出し、行数、日付範囲、プロバイダーを報告します。
そこから、平易な言葉で質問します:
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?ツール
8 つのツールを 2 つのグループに分けています。
データとクエリ:
ツール | 機能 |
| 読み込まれたデータを検査:行数、日付範囲、プロバイダー |
| FOCUS バージョンに対応する定義済み分析クエリを閲覧 |
| 1 つのクエリの詳細:SQL、パラメータ、仕様への引用 |
| 定義済みクエリまたはカスタム SQL をデータに対して実行 |
スキーマと仕様:
ツール | 機能 |
| 型と必須レベルを含むすべての FOCUS 列 |
| 1 つの列の完全な定義 |
| FOCUS のフォーマット標準と規約 |
| 1 つの属性の完全な要件 |
スキーマツールは FOCUS 仕様自体から回答するため、アシスタントは列の意味を 説明するだけでなく、クエリを実行することもできます。
クエリライブラリ
すべてのクエリは公式の FOCUS ユースケースカタログ から抽出され、 ソースページへの引用が付いています:
FOCUS v1.0: 36 クエリ
FOCUS v1.1: 41 クエリ
FOCUS v1.2: 53 クエリ
FOCUS v1.3: 58 クエリ
FOCUS v1.4: 66 クエリ
対象範囲には、コスト配分、コミットメント割引の追跡、異常検知、
予算照合、プロバイダー比較が含まれます。FOCUS_VERSION でアクティブな
セットを選択します。プロバイダーがエクスポートするものに合わせてください。
仕様はエクスポートよりも先行しています(AWS Data Exports は現在 FOCUS 1.0 と
1.2 を提供)ので、1.3 と 1.4 のコレクションはプロバイダーが提供する日に
備えて準備されています。
データの場所
ローカルファイル
export FOCUS_DATA_LOCATION="/path/to/your/focus/data"AWS Data Export のダウンロードコピー(aws s3 sync、マウントされたボリューム)は、
コピーされたときのマニフェストを通じて読み込まれます。バケット自体とまったく
同じ方法です。下記を参照してください。
Amazon S3
export FOCUS_DATA_LOCATION="s3://your-bucket/focus-exports"
export AWS_REGION="us-west-2" # defaults to us-east-1場所をエクスポートのルート、つまり data/ と metadata/ の両方を含む
プレフィックスに向けます。AWS Data Exports は、最新の配信のすべてのファイルを
metadata/ の下の請求期間ごとのマニフェストにリストします。サーバーは
マニフェストがある場合、それらのファイルを読み込みます。プレフィックスに
残された置き換えられたチャンクや再配信された期間は無視され、二重カウント
されません。マニフェストがない場所(BigQuery エクスポート、Parquet ファイルの
ディレクトリ)は、その下のすべての Parquet ファイルをグロブして読み取ります。
get_data_info はどちらが使用されたかを報告し、ファイルリストは数分ごとに
更新されるため、新しい配信のために再起動する必要はありません。
認証は標準の AWS 認証チェーンを使用します。順に、IAM ロール(EC2/ECS/Lambda で
自動)、AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY 環境変数、AWS_PROFILE、
次に ~/.aws/credentials です。
export AWS_PROFILE="billing-reader" # use a specific profile一部のバケットはキーを先頭のスラッシュ付きで保存します。リストが失敗する場合は、
バケット名の後に二重スラッシュを試してください:s3://your-bucket//focus/path。
Docker で実行する場合は、認証情報を -e 変数として渡すか、プロファイルを
読み取り専用でマウントします:
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 エクスポート)
Google Cloud は請求を FOCUS 形式でネイティブにエクスポートします: Billing → Billing export → FOCUS usage cost(プレビュー)は FOCUS テーブルを BigQuery に書き込みます。それを GCS バケットの Parquet にエクスポートします:
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`;そのステートメントを BigQuery のスケジュール済みクエリとしてスケジュールし、 バケットを最新に保ちます。これにより、FOCUS エクスポートの 2 年間の TTL を超えて データもアーカイブされます。次に:
export FOCUS_DATA_LOCATION="gs://your-bucket/focus-export"認証は次の順序で試行されます:
HMAC キー:
GCS_HMAC_KEY_IDとGCS_HMAC_SECRETを設定します(gcloud storage hmac create <service-account-email>で作成)。このパスは DuckDB のネイティブ GCS サポートを S3 相互運用 API 経由で使用し、追加の 依存関係は必要ありません。Application Default Credentials:Docker イメージに含まれています。ソース チェックアウトからは、
uv sync --extra gcsでエクストラをインストールします。 その後、通常どおり認証します:gcloud auth application-default login、GOOGLE_APPLICATION_CREDENTIALSによるサービスアカウント JSON、 または GCE/GKE でのワークロード ID。認証情報なし:パブリックバケットのみ。
2 つの方法があるのは、DuckDB の組み込み GCS サポートが HMAC のみを話すためです。
ADC はオプションの gcsfs 依存関係から来ます。認証情報はサーバープロセス内でのみ
読み取られ、MCP クライアントに公開されることはありません。
設定
変数 | デフォルト | 説明 |
|
| Parquet の場所:ローカルパス、 |
|
| FOCUS 仕様バージョン: |
|
| S3 アクセスのリージョン |
| (未設定) | S3 認証用の AWS プロファイル |
| (未設定) | ロールまたはプロファイルを使用しない場合の静的 AWS 認証情報 |
| (未設定) | GCS 用の HMAC 認証情報 |
| (未設定) | ADC 経由の GCS 用サービスアカウント JSON |
開発
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-mcpDocker イメージの代わりにソースチェックアウトをクライアントに向けます:
{
"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"
}
}
}
}独自のイメージをビルドして実行します:
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:customプルリクエストを開く前に、CONTRIBUTING.md で規約とチェックを確認してください。
ロードマップ
FOCUS 仕様からの自動クエリ同期。新しいユースケースページが手動抽出なしでここに反映されます
より豊富なレスポンスフォーマット:クエリ結果に引用と教育的コンテキストをインラインで
実際のプロバイダーエクスポートに対するすべてのユースケースクエリの検証(AWS は現在 FOCUS 1.0 と 1.2 を提供。1.3 以降はプロバイダーが採用するにつれて)
列と属性の定義を MCP リソースに移行する評価
ツールレスポンスに仕様の適合性ギャップノートを表示
セキュリティ
脆弱性は SECURITY.md のアドレスに報告してください。問題トラッカーには
報告しないでください。信頼モデルを理解してください:execute_query は AI アシスタントが
書いた SQL をサーバープロセス内で実行します。Parquet ファイルはクエリソースであり、
書き込み可能なデータベースではありません。ここのすべての例は :ro でマウントしています。
それを維持してください。ハードな境界が必要な場合は、ベアプロセスではなく Docker イメージを
実行し、サーバーには必要なオブジェクトストアの認証情報のみを、請求バケットにスコープして
与えてください。
ライセンス
Apache-2.0。版权所有 Glassity。请参阅 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