A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
The Control Plane for AI Infrastructure Kubernetes-native registry for MCP servers, agents, skills & models
🚀 Quick Start • ✨ Features • 🏗️ Architecture • 📚 Docs • 📝 Blog
If it's running, it's in the catalog.
No CLI needed. Agent Registry ships an MCP server — connect it to Claude Code, Cursor, or any MCP-compatible client and manage your registry conversationally.
| Capability | What It Means |
|---|---|
| 🔍 Auto-Discovery | Scans your clusters for AI workloads — MCP servers, agents, skills, models — and catalogs them automatically. Zero manual work. |
| 📦 Unified Inventory | Everything in one place across dev, staging, prod. Git as the single source of truth. |
| ✍️ Create & Publish | Generate manifests via UI/API, submit for review, open PRs — or deploy directly. |
| 🚀 One-Click Deploy | Deploy from catalog to any environment. Controller handles the lifecycle. |
| 🔒 GitOps Native | GitOps and Gitless Ops workflows built-in. |
| 🌐 Multi-Cluster | Discover and deploy across clusters with workload identity. |
git clone https://github.com/den-vasyliev/agentregistry-inventory.git
cd agentregistry-inventory && make dev
🎯 That's it. UI opens at http://localhost:3000 with sample data pre-loaded.
No Kubernetes cluster needed — uses envtest (embedded etcd + kube-apiserver).
☸️ Have a cluster?
kubectl apply -k https://github.com/den-vasyliev/agentregistry-inventory/config/crd
helm install agentregistry-inventory ./charts/agentregistry -n agentregistry --create-namespace
| Without Agent Inventory | With Agent Inventory |
|---|---|
| 😵 Sprawl of AI tools across clusters | 📦 Single source of truth |
| 🔍 Manual discovery of MCP servers | 🤖 Auto-discovery & cataloging |
| 😰 No version control for AI configs | 📝 GitOps-native workflows |
| 🤷 "What agents are running in prod?" | 📊 Real-time inventory & status |
| 😱 Direct K8s yaml edits | 🚀 One-click deploy from 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 │
└─────────────────────────────────────────────────────────────┘
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"
The controller reconciles this → creates MCPServer/Agent CRs → tracks status.
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]
curl http://localhost:8080/v0/servers
curl http://localhost:8080/v0/agents
curl http://localhost:8080/v0/skills
# 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
The controller embeds an MCP server on :8083. Connect any MCP-compatible client (Claude Code, Cursor, etc.) to browse, deploy, and manage registry resources conversationally.
{
"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"
}
}
}
}
| Tool | Description |
|---|---|
list_catalog | List catalog entries (servers/agents/skills/models) |
get_catalog | Get entry details |
get_registry_stats | Counts of all resource types |
list_deployments | List active deployments |
get_deployment | Deployment details by name |
deploy_catalog_item | Deploy a catalog item to Kubernetes |
delete_deployment | Remove a deployment |
update_deployment_config | Update deployment config |
list_environments | Discovered environments from DiscoveryConfig |
get_discovery_map | Cluster topology and resource counts |
trigger_discovery | Force re-scan of discovery |
recommend_servers | AI-powered server recommendations |
analyze_agent_dependencies | AI-powered dependency analysis |
generate_deployment_plan | AI-powered deployment planning |
helm install agentregistry ./charts/agentregistry \
--namespace agentregistry \
--create-namespace \
--set replicaCount=2 \
--set controller.leaderElection=true
| Setting | Default | Description |
|---|---|---|
replicaCount | 1 | Set to 2+ for HA |
controller.leaderElection | false | Required for multi-replica |
controller.logLevel | info | Use debug for troubleshooting |
httpApi.serviceType | ClusterIP | Use LoadBalancer for external access |
disableAuth | true | Set to false to enable Bearer token auth |
Auth is disabled by default. When enabled (disableAuth: false), the admin API and MCP server require a Bearer token from the agentregistry-api-tokens Kubernetes Secret.
For production deployments with a gateway, use agentgateway to handle Azure AD JWT validation in front of the controller — keep disableAuth: true on the backend and let the gateway enforce auth.
# 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
The embedded UI supports Azure AD login via MSAL.js — no client secret required.
# charts/agentregistry/values.yaml
azure:
tenantId: "your-tenant-id"
clientId: "your-client-id"
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
| Project | Description | Link |
|---|---|---|
| Agentgateway | MCP/HTTP auth gateway | agentgateway.dev |
| MCP | Model Context Protocol specification | modelcontextprotocol.io |
| Kagent | Kubernetes AI agent runtime | github.com/kagent-dev/kagent |
| KMCP | MCP server operator for Kubernetes | github.com/kagent-dev/kmcp |
| MCP Go SDK | Official Go SDK | github.com/modelcontextprotocol/go-sdk |
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
MCP server integration for DaVinci Resolve Studio
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba