Agentregistry Inventory
The Control Plane for AI Infrastructure Kubernetes-native registry for MCP servers, agents, skills & models
Installation
npx agentregistry-inventoryAsk AI about Agentregistry Inventory
Powered by Claude Β· Grounded in docs
I know everything about Agentregistry Inventory. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
The Control Plane for AI Infrastructure
Kubernetes-native registry for MCP servers, agents, skills & models
π Quick Start β’ β¨ Features β’ ποΈ Architecture β’ π Docs β’ π Blog
β¨ What You Get
Automatically indexes MCP servers, agents, skills, and models across clusters.
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. |
π Quick Start
One command to run dev environment
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
π Why Agent Inventory?
| 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 |
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 Reference
- Kgateway β Gateway API for AI traffic
- Kagent β Kubernetes AI agent runtime
- KMCP β MCP server operator
π Inventory CRD Examples
π¦ Publish a Catalog Entry
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"
π Deploy to Runtime
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.
π Multi-Cluster Discovery
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 Reference
Public API (Read-Only, no auth required)
curl http://localhost:8080/v0/servers
curl http://localhost:8080/v0/agents
curl http://localhost:8080/v0/skills
Admin API (Write)
# 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 Server
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.
Connect (auth disabled, default)
{
"mcpServers": {
"agentregistry": {
"type": "streamable-http",
"url": "http://localhost:8083/mcp"
}
}
}
Connect (auth enabled)
{
"mcpServers": {
"agentregistry": {
"type": "streamable-http",
"url": "http://localhost:8083/mcp",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
Tools
| 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 |
β Full MCP Docs | β MCP Auth
βΈοΈ Production Deployment
helm install agentregistry ./charts/agentregistry \
--namespace agentregistry \
--create-namespace \
--set replicaCount=2 \
--set controller.leaderElection=true
Key Configuration
| 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 |
π Authentication
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.
Enable Bearer Token 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
Azure AD (MSAL Browser PKCE)
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"
π§ͺ Development
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
π Ecosystem
| 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 |
π¬ Join the Community
- π Issues β Report bugs or request features
- π€ PRs Welcome β We love contributions!
