FOCUS MCP Server
FOCUS MCP 서버
AI 어시스턴트에게 클라우드 비용이 실제로 얼마인지 물어보세요. 이 MCP(Model Context Protocol) 서버는 Claude 또는 다른 MCP 클라이언트를 FOCUS 청구 데이터에 연결하여, 다음과 같은 질문을 직접 작성하는 SQL 대신 한 줄짜리 프롬프트로 만들어 줍니다:
"이번 달 지역별 최고 비용 서비스는 무엇인가요?"
"커밋먼트 할인 사용률 추세를 보여주세요."
"비정상적인 지출 패턴을 보이는 계정은 어떤 것인가요?"
"BilledCost와 EffectiveCost의 차이를 설명해 주세요."
내부적으로 DuckDB가 로컬 디스크, S3 또는 GCS에 있는 Parquet 내보내기를 직접 쿼리합니다. 데이터 웨어하우스를 구축할 필요가 없습니다. 서버는 공식 FOCUS 사용 사례 카탈로그에서 선별한 254개의 쿼리를 사양 버전별로 별도의 컬렉션으로 번들링하며(1.0용 36개, 1.1용 41개, 1.2용 53개, 1.3용 58개, 1.4용 66개), 각 쿼리는 출처 페이지를 인용합니다.
FOCUS란 무엇인가요?
FOCUS(FinOps Open Cost & Usage Specification)는 클라우드 청구 데이터의 공개 표준입니다. AWS, Microsoft, Google Cloud가 이를 기본적으로 내보내므로, 하나의 스키마와 하나의 쿼리 세트로 여러 제공업체에서 사용할 수 있습니다.
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가 게시된 패키지를 한 번에 가져와 실행합니다:
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"
}
}
}
}ADC(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의 경우, 한 줄 명령:
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개의 도구.
데이터 및 쿼리:
도구 | 기능 |
| 로드된 데이터 검사: 행 수, 날짜 범위, 제공업체 |
| FOCUS 버전에 맞는 사전 정의된 분석 쿼리 탐색 |
| 쿼리 하나를 자세히: SQL, 매개변수, 사양 인용 |
| 사전 정의된 쿼리 또는 사용자 지정 SQL을 데이터에 대해 실행 |
스키마 및 사양:
도구 | 기능 |
| 유형 및 요구 수준을 포함한 모든 FOCUS 열 |
| 한 열의 전체 정의 |
| FOCUS 형식 표준 및 규칙 |
| 한 속성의 전체 요구 사항 |
스키마 도구는 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 (Preview)는 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>로 생성). 이 경로는 S3 상호운용 API를 통한 DuckDB의 기본 GCS 지원을 사용하며 추가 종속성이 필요 없습니다.ADC(Application Default Credentials): Docker 이미지에 포함됨. 소스 체크아웃에서는
uv sync --extra gcs로 엑스트라를 설치하세요. 그런 다음 평소처럼 인증하세요:gcloud auth application-default login,GOOGLE_APPLICATION_CREDENTIALS를 통한 서비스 계정 JSON, 또는 GCE/GKE의 워크로드 아이덴티티.자격 증명 없음: 공개 버킷만.
두 가지 방법이 존재하는 이유는 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 저작권. 라이선스 참조.
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