Skip to content

MCP server

The MCP server is TapPass's control plane, exposed as a Model Context Protocol server.

An operator points their MCP host (Claude Code, Cursor, custom agent, …) at it and configures TapPass through tool calls instead of clicking the Admin UI or running shell commands.

This is the path to a headless TapPass: every action that today requires the UI eventually has an MCP tool. "Add an OPA rule that denies tool X for project Y" becomes a single tool call.

SpeaksModel Context Protocol (stdio + SSE transports)
Exposestools (mutations) + resources (read-only) covering the full control-plane API
Authsession token (operator SSO) or scoped admin API key
Where it livestappass-mcp (planned package) — wraps the existing /api/v1/admin/* routes
Statusfuture

The MCP server projects the existing control-plane routes as MCP primitives:

SurfaceMCP primitiveExamples
Mutationstoolcreate_agent, update_pipeline, add_policy_rule, attach_check_pack, revoke_session, rotate_api_key
Readsresourcelist_agents, get_pipeline, get_compiled_policy, get_audit_trail
Wizardspromptonboard_team, setup_compliance_pack, dry_run_policy_change

A pull request to the TapPass server that adds a control-plane route should also expose the equivalent MCP tool — same review, same release.

Three drivers:

  1. Headless ambition. The product vision is to grow toward CLI + MCP-led configuration, with the UI as the on-ramp rather than the long-term primary surface.
  2. Operators who live in their IDE. Many TapPass operators are platform engineers who prefer to drive infrastructure from Claude Code or Cursor, not a separate browser tab.
  3. Agentic loops over governance. The Agentic CLI needs a tool surface to drive. The MCP server is that surface.
PersonaSurfaceWhat they do
OperatorClaude Code with tappass-mcp registered"Show me agents on project X with no compliance pack attached" → resource read; "Attach NIST AI RMF pack to all of them" → tool calls
OperatorCursor + MCP integrationSame flows from a different host
Custom agentDirect MCP clientProgrammatic governance ops in agent loops (e.g., self-onboarding)
[install] Operator runs `tappass mcp install` → writes ~/.claude/mcp.json entry
[auth] First call exchanges session/SSO token for a scoped MCP session
[discover] Host (Claude Code) lists available tools + resources
[use] Operator + agent loop drive TapPass via tool calls
[audit] Every mutation emits an audit row, same as the UI / admin API
  • wraps → existing control-plane API (the same routes the Admin UI uses)
  • enablesAgentic CLI — gives the LLM-driven config loop a tool surface
  • complementary toSDK (admin) — same operations, different surface
  • emitsAudit log — every mutation recorded