CNCF项目查询工具

一个开源的MCP服务器,使整个CNCF Landscape对AI工具可用,提供查询、比较和贡献2400多个云原生项目的功能。

  • by aryasoni98
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aryasoni98/mcpatlas

使用说明

MCPAtlas

CNCF环境的MCP服务器 --从任何AI助手查询、比较和贡献2400多个云原生项目。

开源 模型上下文协议 服务器,使整个 CNCF景观 可用于Claude、Cursor、VS Code Copilot和自定义代理等AI工具。粘贴一个GitHub问题URL并获得一个简洁的解决方案简报——用更少的轮次和更少的令牌解决人工智能的CNCF问题。

安装 命令
码头工人 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-atlas

CLI工具

# 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: <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 (请求计数、延迟、工具使用情况)。您可以为自己的仪表板抓取此端点;我们不集中收集使用数据。
  • 反馈: 打开一个 GitHub讨论 问题、想法或成功故事。

许可证

阿帕奇-2.0