MCPAtlas
    ](https://github.com/aryasoni98/mcpatlas/pkgs/container/mcpatlas) 
CNCF环境的MCP服务器 --从任何AI助手查询、比较和贡献2400多个云原生项目。
| 安装 | 命令 |
|---|---|
| 码头工人 | docker run -p 3000:3000 ghcr.io/aryasoni98/mcpatlas:latest |
| 家酿 | brew tap aryasoni98/mcpatlas && brew install mcp-atlas |
| 来源 | git clone https://github.com/aryasoni98/mcpatlas.git && cd mcpatlas && cargo build --release |
建筑概览
数据从横向流到MCP服务器;工具、资源和提示将其暴露给AI客户端。
flowchart LR
subgraph sources[" "]
L[("CNCF Landscape")]
G[(GitHub API)]
end
subgraph server["mcp-atlas"]
C[core]
S[search]
K[graph]
C --- S
C --- K
end
subgraph clients[" "]
Claude[Claude]
Cursor[Cursor]
VSC[VS Code]
Custom[Custom agents]
end
L --> C
G -.-> C
C --> Claude & Cursor & VSC & Custom
classDef source fill:#4ECDC4,stroke:#2C8B82,color:#fff
classDef serverNode fill:#556270,stroke:#3D4A59,color:#fff
classDef client fill:#E94B3C,stroke:#C23A2E,color:#fff
class L,G source
class C,S,K serverNode
class Claude,Cursor,VSC,Custom client项目如何在知识图中连接(备选方案、集成、组件):
flowchart TB
subgraph kg["Knowledge graph"]
K8s[Kubernetes]
Istio[Istio]
Linkerd[Linkerd]
Prom[Prometheus]
K8s --- Istio
K8s --- Linkerd
Istio --- Prom
Linkerd --- Prom
end
Tools["get_relationships\nfind_path\nsuggest_stack"]
kg Tools
classDef k8s fill:#326CE5,stroke:#1E4AB8,color:#fff
classDef mesh fill:#466BB0,stroke:#2D4580,color:#fff
classDef monitor fill:#E6522C,stroke:#C24120,color:#fff
classDef tools fill:#F7B731,stroke:#D49B1A,color:#1a1a1a
class K8s k8s
class Istio,Linkerd mesh
class Prom monitor
class Tools tools特性
MCP工具(15)
| 工具 | 说明 |
|---|---|
search_projects | 按关键字、类别或成熟度对所有CNCF项目进行全文搜索 |
get_project | 获取任何项目的详细信息(描述、GitHub指标、成熟度、链接) |
compare_projects | 多个项目并列对照表 |
list_categories | 浏览所有景观类别和子类别 |
get_stats | 总体景观统计 |
find_alternatives | 在同一子类别中查找替代项目 |
get_health_score | 从GitHub指标计算项目健康状况 |
suggest_stack | 为给定的用例推荐云原生堆栈 |
analyze_trends | 每个类别的采用趋势(成熟度、星级、语言) |
get_relationships | 知识图谱:备选方案、集成、组件 |
find_path | 找到两个项目之间的最短关系路径 |
get_graph_stats | 知识图谱统计 |
get_good_first_issues | 列出适合贡献者的项目(按语言/类别筛选) |
get_migration_path | 从一个项目到另一个项目的迁移指南 |
get_issue_context | 获取GitHub问题的结构化上下文——人工智能辅助解决方案的简明简报 |
MCP资源
cncf://landscape/overview--高级景观统计cncf://categories/all--所有类别和子类别cncf://projects/{name}--动态项目详细信息(通过资源模板)
MCP提示(4)
evaluate_tool--针对您的用例对CNCF工具进行深入评估plan_migration--从一个项目到另一个项目的迁移计划review_stack--查看云原生架构堆栈onboard_contributor--开始为CNCF项目做出贡献
其他功能
- 自动完成 --项目名称、类别、成熟度级别、关系类型
- 知识图谱 --自动推断关系+130个精心策划的CNCF集成边缘
- 数据缓存 --具有可配置TTL的本地JSON缓存(默认24小时)
- 速率限制 --HTTP传输的可配置并发限制
- 三重运输 --STDIO(内容长度帧)、HTTP/SSE和流式HTTP(MCP 2025-03-26)
- 会话管理 —
Mcp-Session-Id流式HTTP会话的标头 - 跨域资源共享 --浏览器友好的跨源支持所有HTTP端点
- 优雅关闭 --清洁信号/信号处理
- JSON-RPC批处理 --根据JSON-RPC 2.0规范§6,完全支持批处理请求
- 日志记录 --MCP
logging/setLevel用于客户端控制的日志级别 - 普罗米修斯指标 —
/metrics带有项目计数、请求统计信息和正常运行时间的端点 - 分页 --基于偏移量的搜索结果分页
_meta响应 - 请求取消 —
notifications/cancelled具有飞行中请求跟踪功能 - 内容类型验证 --415非JSON POST请求不支持的媒体类型
- 结构化错误 --JSON-RPC错误
data工具调用失败中带有工具名称的字段 - 审核日志记录 --每次对stderr的工具调用一行JSON:
event,tool,params_hash,status,latency_ms(无个人身份信息)
快速开始
来源
# Clone and build
git clone https://github.com/aryasoni98/mcpatlas.git
cd mcpatlas
cargo build --release
# Run with STDIO transport (for Claude Desktop / Claude Code)
./target/release/mcp-atlas --transport stdio --skip-github
# Run with HTTP transport (for remote clients)
./target/release/mcp-atlas --transport sse --port 3000
# With GitHub enrichment (set token for higher rate limits)
export GITHUB_TOKEN=ghp_...
./target/release/mcp-atlas --transport stdio码头工人
# Quick run (linux/amd64, linux/arm64)
docker run -p 3000:3000 ghcr.io/aryasoni98/mcpatlas:latest
# With docker-compose (includes health checks and persistent cache)
cd deploy/docker
docker compose up -d家酿
brew tap aryasoni98/mcpatlas
brew install mcp-atlasCLI工具
# Sync landscape data locally
cargo run -p mcp-atlas-cli -- sync --skip-github
# Search projects
cargo run -p mcp-atlas-cli -- search "service mesh" --data data/landscape.yml
# Inspect a project
cargo run -p mcp-atlas-cli -- inspect Kubernetes --data data/landscape.yml
# Show statistics
cargo run -p mcp-atlas-cli -- stats --data data/landscape.yml
# Show project relationships
cargo run -p mcp-atlas-cli -- graph Kubernetes --data data/landscape.yml
# Validate landscape file
cargo run -p mcp-atlas-cli -- validate data/landscape.yml连接到AI工具
克劳德桌面/克劳德代码
添加到MCP设置(~/.claude/settings.json 或Claude桌面配置):
{
"mcpServers": {
"cncf-landscape": {
"command": "mcp-atlas",
"args": ["--transport", "stdio", "--skip-github"]
}
}
}光标/VS代码
{
"mcp.servers": {
"cncf-landscape": {
"url": "http://localhost:3000/mcp"
}
}
}可流式HTTP(MCP 2025-03-26)
对于支持最新MCP规范的客户:
# Initialize a session
curl -X POST http://localhost:3000/mcp/stream \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
# Returns Mcp-Session-Id header — include it in subsequent requests
# Use the session
curl -X POST http://localhost:3000/mcp/stream \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: " \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# SSE streaming (set Accept: text/event-stream)
# DELETE /mcp/stream to terminate a session配置
| 标志 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
--transport | stdio | 运输: stdio 或 sse | |
--port | 3000 | SSE运输港口 | |
--github-token | GITHUB_TOKEN | 用于API丰富的GitHub PAT | |
--landscape-file | CNCF_LANDSCAPE_FILE | 当地景观.ml路径 | |
--skip-github | false | 跳过GitHub指标丰富 | |
--cache-dir | MCP_ATLAS_CACHE_DIR | ~/.cache/mcp-atlas | 缓存目录 |
--max-cache-age | 86400 | 缓存TTL(秒) | |
--rate-limit | 50 | 最大并发HTTP请求数 | |
--graph-backend | MCP_ATLAS_GRAPH_BACKEND | mem | 图形后端: mem 或 surrealdb |
--artifact-hub | MCP_ATLAS_ARTIFACT_HUB | false | 启用Artifact Hub Helm包集成 |
--qdrant-url | MCP_ATLAS_QDRANT_URL | 用于矢量搜索的Qdrant URL(支持混合搜索) | |
--summary-enabled | MCP_ATLAS_SUMMARY_ENABLED | false | 为项目启用LLM摘要 |
建筑
mcp-atlas/
├── crates/
│ ├── mcp-atlas-core/ # MCP server, tool handlers, transport
│ ├── mcp-atlas-data/ # Data models, YAML parser, GitHub API, cache
│ ├── mcp-atlas-search/ # Tantivy full-text search index + benchmarks
│ ├── mcp-atlas-graph/ # Knowledge graph engine (relationship inference)
│ ├── mcp-atlas-vector/ # Qdrant + embeddings, hybrid BM25 + vector search
│ ├── mcp-atlas-plugins/ # WASM plugin system (Phase 3)
│ └── mcp-atlas-cli/ # CLI companion tool (9 commands)
├── deploy/
│ └── docker/ # Dockerfile + docker-compose.yml
└── .github/workflows/ # CI + automated data sync发展
cargo test --workspace # Run all tests
cargo clippy --workspace # Lint
cargo fmt --all # Format
cargo bench -p mcp-atlas-search # Run search benchmarks
# Dev run with local data
cargo run -p mcp-atlas-cli -- sync --skip-github
cargo run -p mcp-atlas-core -- --transport stdio --landscape-file data/landscape.yml --skip-github文档
这 项目现场 (登录页面和应用内文档)通过GitHub Actions构建和部署(请参阅 .github/workflows/pages.yml).启用GitHub页面时(设置→ 页面→ 来源:GitHub Actions),登陆在 /,应用内文档位于 /docs,以及 mdBook (完整用户指南) /book。该站点还可以部署到 维塞尔 (将根设置为 site; vercel.json 包括在内)。文档存储在Vite应用程序中 /docs (标记在 site/src/content/docs/)在mdBook中 docs/book/ (入门、配置、工具参考、资源、部署、插件开发、贡献)。要在本地构建着陆,请参阅 网站/README.md.要构建本书: mdbook build docs/book (输出单位: docs/book/build/).
在发布之前,运行 ./scripts/verify-release.sh 从repo根目录验证站点构建。
另请参阅 贡献.md, 总经理, 安全.md, ROADMAP.md,以及 代码_OF_CONDUCT.md.
报告使用情况
如果您在生产中使用MCPAtlas或用于重要的非生产用途,我们很乐意收到您的来信:
- 收养人: 将您的组织添加到 采纳者.md 通过pull请求(名称+单行用例)。
- 韵律学: 服务器在以下位置公开Prometheus指标
GET /metrics(请求计数、延迟、工具使用情况)。您可以为自己的仪表板抓取此端点;我们不集中收集使用数据。 - 反馈: 打开一个 问题、想法或成功故事。
许可证
阿帕奇-2.0
