AI基础设施控制平面

Kubernetes原生的MCP服务器、代理、技能和模型的注册中心,提供自动发现、统一目录和GitOps原生工作流。

  • by den-vasyliev
  • Go
  • 本地部署
  • 26 星标
  • 更新于
在 GitHub 查看 den-vasyliev/agentregistry-inventory

使用说明

The Control Plane for AI Infrastructure

Kubernetes-native registry for MCP servers, agents, skills & models

🚀 Quick Start • ✨ Features • 🏗️ Architecture • 📚 Docs • 📝 Blog

✨ 所得

Automatically indexes MCP servers, agents, skills, and models across clusters.

如果它正在运行,它在目录中。

不需要CLI。 代理注册处发货 MCP服务器 --将其连接到Claude Code、Cursor或任何兼容MCP的客户端,并以对话方式管理您的注册表。

能力 它意味着什么
🔍 自动发现 扫描集群中的AI工作负载——MCP服务器、代理、技能、模型——并自动对其进行编目。零体力劳动
📦 统一库存 所有东西都放在一个地方,横跨开发、测试、生产。Git是唯一的事实来源。
✍️ 创建和发布 通过UI/API生成清单,提交审核,打开PR-或直接部署。
🚀 一键部署 从目录部署到任何环境。控制器处理生命周期。
🔒 GitOps原生 内置GitOps和Gitless Ops工作流
🌐 多集群 使用工作负载标识跨集群发现和部署。

🚀 快速开始

运行开发环境的一个命令

git clone https://github.com/den-vasyliev/agentregistry-inventory.git
cd agentregistry-inventory && make dev

🎯 就这样 UI在以下位置打开http://localhost:3000预加载样本数据。

不需要Kubernetes集群——使用envtest(嵌入式etcd+kube-apiserver)。

☸️ 有集群吗?

kubectl apply -k https://github.com/den-vasyliev/agentregistry-inventory/config/crd
helm install agentregistry-inventory ./charts/agentregistry -n agentregistry --create-namespace

🌟 为什么要代理库存?

无代理库存 有代理库存
😵 AI工具在集群间的扩散📦 单一真相来源
🔍 手动发现MCP服务器 🤖 自动发现和编目
😰 AI配置没有版本控制 📝 GitOps原生工作流
🤷 “哪些代理正在运行prod?” 📊 实时库存和状态
😱 直接K8s yaml编辑 🚀 从UI/API一键部署

🏗️ 建筑

┌─────────────────────────────────────────────────────────────┐
│                      WEB UI (Next.js)                       │
│              embedded in controller at :8080                │
└───────────────────────────┬─────────────────────────────────┘
                            │ REST
                            ▼
┌─────────────────────────────────────────────────────────────┐
│                    CONTROLLER (Go Controller Runtime)       │
│  ┌─────────────┐ ┌────────────────┐ ┌─────────────────────┐ │
│  │  HTTP API   │ │  Reconcilers   │ │  Auto-Discovery     │ │
│  │   :8080     │ │                │ │                     │ │
│  └─────────────┘ └────────────────┘ └─────────────────────┘ │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐    │
│  │  MCP Server │ │   Metrics   │ │   Health            │    │
│  │   :8083     │ │   :8081     │ │   :8082             │    │
│  └─────────────┘ └─────────────┘ └─────────────────────┘    │
└───────────────────────────┬─────────────────────────────────┘
                            │ K8s API
                            ▼
┌─────────────────────────────────────────────────────────────┐
│                     CRDs (etcd)                             │
│  ┌─────────────────┐ ┌─────────────────┐ ┌──────────────┐   │
│  │ MCPServerCatalog│ │  AgentCatalog   │ │ SkillCatalog │   │
│  └─────────────────┘ └─────────────────┘ └──────────────┘   │
│  ┌────────────────────┐ ┌─────────────────┐                 │
│  │RegistryDeployment  | │ DiscoveryConfig │                 │
│  └────────────────────┘ └─────────────────┘                 │
└─────────────────────────────────────────────────────────────┘
                            │
                            ▼
┌─────────────────────────────────────────────────────────────┐
│              RUNTIME (Kagent + KMCP +...)                   │
│         Agent ↔ MCP Server ↔ Model ↔ Skills                 │
└─────────────────────────────────────────────────────────────┘

📚 CRD参考

  • Kgateway -用于人工智能流量的网关API
  • 卡金特 --Kubernetes AI代理运行时
  • KMCP --MCP服务器操作员

📋 库存CRD示例

📦 发布目录条目

apiVersion: agentregistry.dev/v1alpha1
kind: MCPServerCatalog          # Also: AgentCatalog, SkillCatalog, ModelCatalog
metadata:
  name: filesystem-v1-0-0
  namespace: agentregistry
spec:
  name: "filesystem"
  version: "1.0.0"
  title: "Filesystem MCP Server"
  description: "Provides file system access tools"
  websiteUrl: "https://github.com/modelcontextprotocol/servers"
  repository:
    url: "https://github.com/modelcontextprotocol/servers"
    source: github
  packages:
    - registryType: npm
      identifier: "@modelcontextprotocol/server-filesystem"
      version: "0.6.1"
      transport:
        type: stdio
  remotes:                        # Optional: streamable-http endpoints
    - type: streamable-http
      url: "https://mcp.example.com/filesystem"

🚀 部署到运行时

apiVersion: agentregistry.dev/v1alpha1
kind: RegistryDeployment
metadata:
  name: filesystem-deployment
  namespace: agentregistry
spec:
  resourceName: "filesystem"
  version: "1.0.0"
  resourceType: mcp             # mcp | agent
  runtime: kubernetes           # Required: deployment runtime
  namespace: default            # Target namespace
  preferRemote: false           # Use local package vs remote endpoint
  environment: ""               # Target environment (from DiscoveryConfig), empty = local cluster
  config:                       # Optional: deployment configuration
    LOG_LEVEL: "info"

控制器对此进行协调→ 创建MCPServer/代理CR→ 跟踪状态。

🌍 多集群发现

apiVersion: agentregistry.dev/v1alpha1
kind: DiscoveryConfig
metadata:
  name: multi-cluster-discovery
  namespace: agentregistry
spec:
  environments:
    - name: production
      cluster:
        name: prod-gke
        projectId: my-gcp-project
        zone: us-central1
        useWorkloadIdentity: true
      provider: gcp
      discoveryEnabled: true
      deployEnabled: false
      namespaces: [ai-workloads, agents]
      resourceTypes: [MCPServer, Agent, ModelConfig]

→ 完整的自动发现文档


🔌 API 参考

公共API(只读,不需要身份验证)

curl http://localhost:8080/v0/servers
curl http://localhost:8080/v0/agents
curl http://localhost:8080/v0/skills

管理员API(写入)

# Auth disabled by default — just POST
curl -X POST http://localhost:8080/admin/v0/servers \
  -H "Content-Type: application/json" \
  -d @server.json

# With auth enabled (AGENTREGISTRY_AUTH_ENABLED=true)
curl -X POST http://localhost:8080/admin/v0/servers \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d @server.json

🤖 MCP服务器

控制器在以下位置嵌入MCP服务器 :8083.连接任何兼容MCP的客户端(Claude Code、Cursor等),以对话方式浏览、部署和管理注册表资源。

连接(禁用身份验证,默认)

{
  "mcpServers": {
    "agentregistry": {
      "type": "streamable-http",
      "url": "http://localhost:8083/mcp"
    }
  }
}

连接(已启用身份验证)

{
  "mcpServers": {
    "agentregistry": {
      "type": "streamable-http",
      "url": "http://localhost:8083/mcp",
      "headers": {
        "Authorization": "Bearer your-token"
      }
    }
  }
}

工具

工具 说明
list_catalog 列出目录条目(服务器/代理/技能/型号)
get_catalog 获取参赛详情
get_registry_stats 所有资源类型的计数
list_deployments 列出活动部署
get_deployment 按名称列出的部署详细信息
deploy_catalog_item 将目录项部署到Kubernetes
delete_deployment 删除部署
update_deployment_config 更新部署配置
list_environments 从DiscoveryConfig发现的环境
get_discovery_map 群集拓扑和资源计数
trigger_discovery 强制重新扫描发现
recommend_servers 人工智能服务器推荐
analyze_agent_dependencies 基于AI的依赖性分析
generate_deployment_plan 人工智能驱动的部署规划

→ 完整的MCP文档 | → MCP认证


☸️ 生产部署

helm install agentregistry ./charts/agentregistry \
  --namespace agentregistry \
  --create-namespace \
  --set replicaCount=2 \
  --set controller.leaderElection=true

密钥配置

设置 默认值 说明
replicaCount 1 HA设置为2+
controller.leaderElection false 多副本需要
controller.logLevel info 使用 debug 用于故障排除
httpApi.serviceType ClusterIP 使用 LoadBalancer 用于外部访问
disableAuth true 设置为 false 启用承载令牌身份验证

🔐 认证

管理员API(/admin/*)是 始终经过身份验证并失败关闭:它需要来自的Bearer令牌 agentregistry-api-tokens Kubernetes Secret,在没有配置令牌的情况下拒绝每个请求,无论 disableAuth.公共读取端点(/v0/*)保持开放。这 disableAuth 图表值(默认值 false)管理MCP服务器上的承载令牌强制和提供给UI的身份验证标志。

启用承载令牌身份验证

# Create token secret
kubectl create secret generic agentregistry-api-tokens \
  -n agentregistry \
  --from-literal=admin-token=$(openssl rand -hex 32)

# Install with auth enabled
helm install agentregistry ./charts/agentregistry \
  --namespace agentregistry \
  --set disableAuth=false

Azure AD(社交媒体浏览器PKCE)

嵌入式UI支持通过MSAL.js登录Azure AD,无需客户端密码。

# charts/agentregistry/values.yaml
azure:
  tenantId: "your-tenant-id"
  clientId: "your-client-id"

→ 完整的Azure AD设置


🧪 发展

make dev          # Full stack: controller + UI dev server
make run          # Controller only with embedded UI at :8080
make test         # Run test suite
make lint         # gofmt + go vet
make build        # Build UI + controller binary
make generate     # Regenerate CRD manifests + deepcopy

🔗 生态系统

项目 描述 链接
代理通道 MCP/HTTP认证网关 agentgateway.dev
主控程序 模型上下文协议规范 模型上下文协议.io
卡金特 Kubernetes AI代理运行时 https://kagent-dev/kagent
KMCP Kubernetes的MCP服务器操作员 github/kagent-dev/kmcp
MCP Go SDK 官方Go SDK github/modelcontextprotocol/go-sdk

💬 加入社区

  • 🐛 问题 --报告错误或请求功能
  • 🤝 PR欢迎 --我们热爱贡献!

⬆ 返回顶部

由以下材料制成❤️ 由代理库存团队负责

MIT许可证