MCP Control Plane
Provides tools for triggering and monitoring Jenkins jobs and pipelines.
Provides tools for interacting with Kubernetes clusters, such as retrieving pod logs and managing cluster resources.
Provides tools for querying Prometheus metrics and alerts.
Provides tools for managing infrastructure as code with Terraform, including running plans and applying changes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Control Planelist the infrastructure tools I'm allowed to use"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Control Plane
A hardened gateway that sits between AI agents (LLM clients) and real infrastructure APIs (Kubernetes, Terraform, Jenkins, Prometheus, ticketing). Every tool call is authenticated, rate-limited, policy-checked via OPA, and audited before it reaches an executor. The model is treated as an untrusted caller — the policy engine, not the prompt, is the actual security boundary.
Full target architecture, threat model, and API design live in docs/; this
README covers what's implemented today and how to run it.
Status
Actively under development, tracked in docs/roadmap.md. Currently
implemented:
MCP JSON-RPC gateway (
tools/list,tools/call) over HTTP, plus an SSE heartbeat endpointAPI key authentication, resolving each key to an agent identity (
id,role,allowed_tools)Redis-backed sliding-window rate limiting, per agent
Tool call interception, normalization, and an OPA policy check (allow / deny / require_approval)
11 tool executors — currently stubs, real downstream API calls land per
docs/roadmap.mdPhase 3Structured audit logging to stdout (durable, hash-chained Postgres storage is a later phase)
Not yet built: real tool executors, the human-in-the-loop approval workflow, persistent audit storage, and observability (OTel/Grafana) — see the roadmap for sequencing.
Related MCP server: Peta Core
Architecture
Agent → POST /mcp → [log] → [authn] → [rate limit] → interceptor → OPA → executor → audit logapp/main.py— FastAPI app, route handlers, middleware wiringapp/middleware/auth.py— API key → agent identityapp/middleware/rate_limit.py— Redis sliding-window limiterapp/interceptor.py— validates/normalizestools/callparams into an OPA input documentapp/authz/opa.py— calls the OPA sidecar, maps its response to allow/deny/require_approvalapp/tools/tools_spec.py— tool executors (stubs today)app/audit.py— audit trail of every tool callpolicies/— Rego policy (authz.rego) and role/tool data (data.json) loaded by OPA
See docs/architecture.md for the full target-state design
(EKS, Terraform, Postgres audit log, approval gate, observability stack).
Tech stack
Python 3.13, FastAPI, Redis, OPA/Rego, Docker Compose. See pyproject.toml for exact
dependency versions.
Getting started
Prerequisites
Python 3.13+ and
uvDocker (for Redis/Postgres/OPA via Compose), or your own local instances
Install
uv syncRun
Everything (gateway + Redis + Postgres + OPA) via Docker Compose:
docker compose upOr the gateway alone against local dependencies:
uv run uvicorn app.main:app --host 127.0.0.1 --port 8000 --reloadThe app reads REDIS_URL (default redis://localhost:6379) and OPA_URL (default
http://localhost:8181/v1/data/authz) from the environment; Compose sets both to point
at the sibling containers.
Try it
All /mcp routes require an x-api-key header. The seeded dev key test_key resolves
to agent01 (role sre1) with a handful of allowed tools — see API_KEYS in
app/middleware/auth.py.
curl -s -X POST http://127.0.0.1:8000/mcp \
-H "Content-Type: application/json" -H "x-api-key: test_key" \
-d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'
curl -s -X POST http://127.0.0.1:8000/mcp \
-H "Content-Type: application/json" -H "x-api-key: test_key" \
-d '{"jsonrpc":"2.0","id":"2","method":"tools/call","params":{"name":"get_pod_logs","arguments":{"namespace":"payments","pod_name":"checkout-api-xyz"}}}'
curl -s http://127.0.0.1:8000/health/liveMore request/response examples (error cases, SSE) are in testing/testing.text.
Testing
uv run pytestCovers the auth middleware, rate limiter, OPA integration, and end-to-end /mcp
request handling (see tests/).
Documentation
Doc | Contents |
Phased build plan and current progress | |
Full target-state system design | |
MCP + admin API surface | |
Per-tool input/output schemas and policy constraints | |
STRIDE threat model and mitigations |
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceA secure gateway that lets AI agents interact with APIs and SSH servers via scoped tokens, with credential injection, human-in-the-loop for dangerous commands, and MCP integration for tool access.Last updated615MIT
- Alicense-qualityCmaintenanceA security-hardened MCP gateway that enables AI agents to call LLM APIs (Gemini, OpenAI, Claude, etc.) using ephemeral proxy tokens, eliminating exposure of real API keys.Last updated406Apache 2.0
- Alicense-qualityBmaintenanceProvides a secure MCP gateway for AI agents to access APIs without exposing raw credentials, with scoped access, audit logging, and OAuth support.Last updatedMIT
Related MCP Connectors
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
One PAT, any MCP agent: Vercel, GitHub, Cloudflare, Supabase, GCP — unified dev infra gateway.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tusharporwal1092-wq/mcp-control-plane'
If you have feedback or need assistance with the MCP directory API, please join our Discord server