Alibaba Cloud Observability MCP Server
Official알리바바 클라우드 관측성 MCP 서버 (Go 버전)
📌 중요 참고 사항
본 프로젝트는 Go 언어로 재작성되었습니다. 기존 Python 버전을 사용하려면
v1디렉토리를 방문하십시오:
📖 v1/README.md - Python 버전 문서
📦 Python 버전은
pip install mcp-server-aliyun-observability를 통해 설치 가능
알리바바 클라우드 관측성 MCP 서버의 Go 구현체로, AI 모델에 알리바바 클라우드 로그 서비스(SLS) 및 클라우드 모니터링(CMS)에 대한 구조화된 데이터 액세스 기능을 제공합니다. Model Context Protocol 프로토콜을 기반으로 하며, Cursor, Kiro, Cline, Windsurf 등 AI 도구와 원활하게 통합됩니다.
특징
stdio, SSE, streamable-http 세 가지 전송 모드 지원
모듈형 도구 세트 아키텍처: PaaS(클라우드 모니터링 2.0), IaaS(SLS/CMS 직접 액세스), Shared
유연한 시간 표현식 파싱: 상대 시간, 절대 타임스탬프, Grafana 스타일, 사전 설정 키워드
시계열 데이터 비교 분석: 통계 계산, 추세 분석, 차이 점수 산정
구조화된 오류 처리: 영어 오류 설명 및 해결 방안 제안
안정성 보장: 재시도(지수 백오프), 서킷 브레이커, 우아한 종료
구조화된 JSON 로그(slog)
단일 바이너리 파일, 제로 런타임 의존성
Related MCP server: Alibaba Cloud RDS OpenAPI MCP Server
빠른 시작
다운로드 및 설치
Releases 페이지에서 해당 플랫폼의 바이너리 파일을 다운로드하십시오:
# Linux amd64
wget https://github.com/aliyun/alibabacloud-observability-mcp-server/releases/latest/download/alibabacloud-observability-mcp-server-linux-amd64.tar.gz
tar -xzf alibabacloud-observability-mcp-server-linux-amd64.tar.gz
# macOS arm64 (M1/M2)
wget https://github.com/aliyun/alibabacloud-observability-mcp-server/releases/latest/download/alibabacloud-observability-mcp-server-darwin-arm64.tar.gz
tar -xzf alibabacloud-observability-mcp-server-darwin-arm64.tar.gz압축 해제 후 포함된 파일:
alibabacloud-observability-mcp-server- 실행 파일config.yaml- 기본 설정 파일
자격 증명 설정
# 设置阿里云 AccessKey
export ALIBABA_CLOUD_ACCESS_KEY_ID=<your_access_key_id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your_access_key_secret>AccessKey 획득 방법: 알리바바 클라우드 AccessKey 관리
서비스 시작
# 以 stdio 模式启动(MCP 客户端直接调用)
./alibabacloud-observability-mcp-server start --stdio
# 以网络模式启动(默认 transport 在 config.yaml 中配置)
./alibabacloud-observability-mcp-server start --config config.yamlCLI 명령어
# 查看版本信息
./alibabacloud-observability-mcp-server version
# 列出所有已注册工具
./alibabacloud-observability-mcp-server tools소스 코드에서 빌드
사전 요구 사항
Go 1.23+
빌드
# 克隆仓库
git clone https://github.com/aliyun/alibabacloud-observability-mcp-server.git
cd alibabacloud-observability-mcp-server
# 构建当前平台
make build
# 构建所有平台(linux/darwin/windows × amd64/arm64)
make build-all생성된 바이너리 파일은 bin/ 디렉토리에 위치합니다.
설정
설정은 2단계 구조를 채택합니다:
config.yaml- 서버 설정(전송 모드, 로그, 네트워크 등).env파일 또는 환경 변수 - 자격 증명 및 런타임 매개변수
설정 파일
cp config.yaml config.yaml.bak # 备份默认配置(可选)
cp .env.example .env # 凭证(AccessKey)config.yaml 검색 경로: 현재 디렉토리 → ./config/
.env 파일은 현재 디렉토리에서 로드되며, 버전 관리에 포함해서는 안 되는 자격 증명 정보를 저장하는 데 적합합니다.
config.yaml 구조
# 服务器配置
server:
transport: streamable-http # stdio, sse, streamable-http
host: "0.0.0.0"
port: 8080
# 日志配置
logging:
level: info # debug, info, warn, error
debug_mode: false
# 工具集配置
toolkit:
scope: all # all, paas, iaas
# 精细化工具选择(可选,非空时仅注册列表中的工具)
# enabled_tools:
# - list_workspace
# - umodel_get_entities
# - sls_execute_sql
# 网络配置
network:
max_retry: 1
retry_wait_seconds: 1
read_timeout_ms: 610000
connect_timeout_ms: 30000
# 本地化配置
locale:
timezone: Asia/Shanghai
language: zh-CN
# 运行时默认值(可选)
# 优先级: 环境变量 > .env 文件 > config.yaml
runtime:
region: cn-hangzhou
# workspace: ""
# 端点覆盖(可选,用于内网访问)
# endpoints:
# sls:
# cn-hongkong: "cn-hongkong-intranet.log.aliyuncs.com"
# cms:
# cn-hongkong: "cms.cn-hongkong.aliyuncs.com"세밀한 도구 선택
기본적으로 toolkit.scope는 카테고리별로 도구 활성화 여부를 제어합니다(all/paas/iaas). 더 세밀한 제어가 필요한 경우 toolkit.enabled_tools를 사용하여 활성화할 도구 목록을 지정할 수 있습니다:
toolkit:
scope: all
enabled_tools:
- list_workspace
- list_domains
- umodel_get_entities
- umodel_get_metrics
- sls_execute_sqlenabled_tools가 비어 있지 않으면 목록에 있는 도구만 등록되며, 나머지 도구는 사용할 수 없습니다. scope는 여전히 어떤 툴킷 모듈을 로드할지 결정하며, enabled_tools는 이를 기반으로 추가 필터링을 수행합니다.
전체 도구 목록 및 분류 설명은 config.yaml의 주석 템플릿을 참조하십시오.
CLI 매개변수
매개변수 | 설명 | 기본값 |
| 설정 파일 경로 지정 | 자동 검색 |
| stdio 전송 모드 강제 사용 | false |
환경 변수(자격 증명 및 런타임 매개변수)
환경 변수 | 설명 | 필수 |
| AccessKey ID | 아니오* |
| AccessKey Secret | 아니오* |
| STS Token(임시 자격 증명) | 아니오 |
| 기본 리전 | 아니오 |
| 기본 워크스페이스(PaaS 도구 필요) | 아니오 |
* AccessKey가 설정되지 않은 경우, 서비스는 자동으로 기본 자격 증명 체인을 사용하여 자격 증명을 획득합니다(ECS RAM Role, OIDC, 설정 파일 방식 등 지원). ECS, 함수 계산 등 클라우드 환경에서는 AccessKey를 수동으로 설정할 필요가 없습니다.
자격 증명 파싱 우선순위: CLI 매개변수 / .env 파일 > 셸 환경 변수 > 기본 자격 증명 체인.
💡 기본값 자동 채우기
ALIBABA_CLOUD_REGION또는ALIBABA_CLOUD_WORKSPACE가 설정된 경우, 도구 호출 시regionId또는workspace매개변수가 제공되지 않으면 서비스는 환경 변수의 값을 기본값으로 자동 사용합니다. 사용자가 명시적으로 전달한 값은 덮어쓰지 않습니다.
AI 도구 통합
Cursor / Kiro / Cline
streamable-http 모드(권장):
config.yaml설정(server.transport: streamable-http설정)서비스 시작:
./bin/alibabacloud-observability-mcp-server startmcp.json설정:
{
"mcpServers": {
"alibaba_cloud_observability": {
"url": "http://localhost:8080"
}
}
}stdio 모드:
mcp.json설정:
{
"mcpServers": {
"alibaba_cloud_observability": {
"command": "./bin/alibabacloud-observability-mcp-server",
"args": ["start", "--stdio"],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "<your_access_key_id>",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "<your_access_key_secret>"
}
}
}
}주의: stdio 모드에서 config.yaml이 존재하지 않으면 내장 기본값이 사용됩니다.
도구 세트
총 33개의 도구가 있으며, 세 가지 계층으로 나뉩니다.
PaaS 도구 세트(클라우드 모니터링 2.0, 권장)
통합 데이터 모델을 기반으로 하며, 도구 이름은 umodel_ 또는 cms_ 접두사를 가집니다. 총 16개의 도구.
엔티티 관리 도구
도구 | 설명 | 주요 매개변수 |
| 엔티티 목록 가져오기 |
|
| 엔티티 인접 관계 가져오기 |
|
| 엔티티 검색 |
|
데이터 세트 관리 도구
도구 | 설명 | 주요 매개변수 |
| 데이터 세트 나열 |
|
| 엔티티 세트 검색 |
|
| 엔티티 세트 스키마 정의 가져오기 |
|
| 관련 엔티티 세트 나열 |
|
데이터 쿼리 도구
도구 | 설명 | 주요 매개변수 |
| 지표 데이터 쿼리 |
|
| 골든 지표 쿼리 |
|
| 관계 지표 쿼리 |
|
| 로그 데이터 쿼리 |
|
| 이벤트 데이터 쿼리 |
|
| 추적 데이터 쿼리 |
|
| 추적 검색 |
|
| 성능 프로파일링 데이터 쿼리 |
|
| 자연어 데이터 쿼리 |
|
IaaS 도구 세트(SLS/CMS 직접 액세스)
기본 API에 직접 액세스하며, 도구 이름은 sls_ 또는 cms_ 접두사를 가집니다. 총 14개의 도구.
SLS 도구
도구 | 설명 | 주요 매개변수 |
| 프로젝트 나열 |
|
| 로그 저장소 나열 |
|
| 자연어를 SQL로 변환 |
|
| 자연어를 SQL로 변환(구버전, Python 버전 호환) |
|
| 자연어를 PromQL로 변환 |
|
| 자연어를 SPL로 변환 |
|
| SQL 쿼리 실행 |
|
| 네이티브 SPL 쿼리 실행 |
|
| 로그 컨텍스트 가져오기 |
|
| 로그 탐색 분석 |
|
| 로그 비교 분석 |
|
| SLS 운영 보조 도구 |
|
CMS 도구
도구 | 설명 | 주요 매개변수 |
| PromQL 쿼리 실행 |
|
| 자연어를 PromQL로 변환 |
|
Shared 도구 세트
총 3개의 도구.
도구 | 설명 | 주요 매개변수 |
| 워크스페이스 나열 |
|
| 엔티티 도메인 나열 |
|
| 서비스 소개 | 매개변수 없음 |
시간 표현식
모든 데이터 쿼리 도구는 유연한 시간 범위 형식을 지원합니다:
형식 | 예시 |
상대 사전 설정 |
|
상대 시간 |
|
Grafana 스타일 |
|
키워드 |
|
절대 타임스탬프 |
|
날짜 시간 문자열 |
|
고급 기능
시계열 비교 분석
umodel_get_metrics 및 umodel_get_golden_metrics는 offset 매개변수를 통한 시계열 비교를 지원합니다:
# 对比当前1小时与1天前的数据
umodel_get_metrics(
domain="apm", entity_set_name="apm.service",
metric_domain_name="apm.metric.apm.service", metric="request_count",
time_range="last_1h", offset="1d"
)결과에는 다음이 포함됩니다:
current: 현재 기간 통계(max, min, avg, count)compare: 비교 기간 통계diff: 변화 분석(trend, avg_change, avg_change_percent)diff_score: 차이 점수(0-1, 클수록 차이가 큼)
고급 분석 모드
umodel_get_metrics는 네 가지 분석 모드를 지원합니다:
모드 | 설명 | 출력 필드 |
| 원시 시계열 데이터(기본값) |
|
| K-Means 시계열 클러스터링 |
|
| 시계열 예측(1-5일 과거 데이터 필요) |
|
| 이상 탐지(1-3일 데이터 필요) |
|
프로젝트 구조
├── cmd/server/ # CLI 入口(cobra)
├── pkg/
│ ├── client/ # SLS/CMS 客户端封装
│ ├── config/ # 配置管理(viper + sync.Once)
│ ├── endpoint/ # 端点解析
│ ├── errors/ # 结构化错误与错误码映射
│ ├── logger/ # 结构化日志(slog)
│ ├── server/ # MCP Server 核心(传输层、生命周期、健康检查)
│ ├── stability/ # 重试与熔断器
│ ├── timeparse/ # 时间表达式解析
│ └── toolkit/ # 工具集接口与注册中心
│ ├── paas/ # PaaS 工具集(umodel_*、cms_natural_language_query)
│ ├── iaas/ # IaaS 工具集(sls_*、cms_execute_promql、cms_text_to_promql)
│ └── shared/ # Shared 工具集(list_workspace、list_domains、introduction)
├── v1/ # Python 版本(历史参考)
├── Makefile
├── go.mod
└── go.sum개발
# 构建
make build
# 运行测试
make test
# 代码检查
make lint
# 清理构建产物
make clean테스트
프로젝트는 단위 테스트 + 속성 테스트 + 회귀 테스트의 3트랙 전략을 채택합니다:
단위 테스트: 테이블 기반 테스트, 구체적인 예시 및 경계 조건 커버
속성 테스트: gopter를 사용하여 모든 입력에 걸친 일반적인 정확성 속성 검증
회귀 테스트: 통합 테스트(
//go:build integration), Python 버전 매개변수 일관성 비교, 실제 알리바바 클라우드 자격 증명 필요
# 运行所有单元测试
go test ./... -v
# 仅运行属性测试
go test ./... -run TestProperty_
# 运行回归测试(需要配置环境变量)
ALIBABA_CLOUD_ACCESS_KEY_ID=xxx \
ALIBABA_CLOUD_ACCESS_KEY_SECRET=xxx \
ALIBABA_CLOUD_REGION=cn-hongkong \
ALIBABA_CLOUD_WORKSPACE=xxx \
go test -tags=integration ./pkg/toolkit/... -vAI Agent 개발 규격
docs/AGENTS.md를 참조하십시오. 프로젝트 구조 설명, 코드 스타일 약속, 도구 추가 프로세스, 테스트 규격 등이 포함되어 있습니다.
권한 요구 사항
MCP 서버가 알리바바 클라우드 관측성 리소스에 성공적으로 액세스하고 조작할 수 있도록 하려면 다음 권한을 설정해야 합니다:
알리바바 클라우드 액세스 키(AccessKey)
서비스 실행에는 유효한 알리바바 클라우드 자격 증명이 필요하며, 다음 방식을 지원합니다(우선순위 순):
AccessKey ID + AccessKey Secret(.env 파일, 환경 변수 또는 CLI 매개변수를 통해 전달)
STS 임시 자격 증명(
ALIBABA_CLOUD_SECURITY_TOKEN환경 변수 설정)기본 자격 증명 체인 자동 발견(ECS RAM Role, OIDC, 자격 증명 설정 파일 등)
AccessKey 획득 및 관리는 알리바바 클라우드 AccessKey 관리 공식 문서를 참조하십시오.
RAM 권한 부여
AccessKey와 연결된 RAM 사용자 또는 역할은 관련 클라우드 서비스 액세스에 필요한 권한을 반드시 부여받아야 합니다.
"최소 권한 원칙"을 따를 것을 강력히 권장합니다: 사용하려는 MCP 도구를 실행하는 데 필요한 최소 권한 세트만 부여하십시오.
사용하려는 도구에 따라 다음 문서를 참조하여 권한을 설정하십시오:
서비스 | 권한 문서 | 설명 |
로그 서비스(SLS) |
| |
애플리케이션 실시간 모니터링(ARMS) |
| |
클라우드 모니터링(CMS) |
|
특수 권한 설명:
SQL 생성 도구(예:
sls_text_to_sql) 사용 시sls:CallAiTools권한을 별도로 부여해야 합니다.자연어 쿼리 기능(
cms_natural_language_query) 사용 시cms:CreateChat,cms:CreateThread,cms:GetThread,cms:ListThreads권한을 부여해야 합니다.
보안 제안
서비스는 AccessKey를 저장하지 않으며, API 호출 시에만 런타임에 사용합니다.
SSE/HTTP 모드에서는 반드시 액세스 포인트의 액세스 제어를 직접 수행하십시오.
내부 네트워크 또는 VPC 내에 배포하여 공용 인터넷에 직접 노출되지 않도록 하는 것을 권장합니다.
인증 없이 AccessKey가 설정된 서버 엔드포인트를 공용 인터넷에 노출하지 마십시오.
알리바바 클라우드 함수 계산(FC)을 사용하여 배포하고 VPC 내에서만 액세스하도록 설정하는 것을 권장합니다.
라이선스
본 프로젝트는 기존 Python 버전과 동일한 라이선스 계약을 따릅니다.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
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/aliyun/alibabacloud-observability-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server