Govern any MCP server.
Point HiveKey at an MCP server — your CRM, database, or deploy pipeline — and its tools get the same scope, guards, and audit log as everything else. Read-only by default. Writes are turned on per tool, per role, on purpose.
How it works
The agent never talks to your MCP server directly. It calls a namespaced tool on the HiveKey gateway; HiveKey evaluates scope and guards, proxies the call to your upstream server, records the verdict, and returns the result.
Agent
calls crm.read
HiveKey gateway
MCP server
your upstream tool
Namespaced
Each server's tools live under a prefix so names never collide across servers.
Sandboxed
Egress is locked down; upstream credentials are encrypted at rest, never exposed to the agent.
Logged
Every proxied call — allow or deny — lands in the same audit trail as native actions.
Register an MCP server
Declare the upstream endpoint and the credential HiveKey should use to reach it. The credential stays in HiveKey's vault — agents never see it.
curl https://api.hivekey.ai/v1/mcp/servers \
-H "Authorization: Bearer hk_live_…" \
-d '{"namespace":"crm",
"endpoint":"https://mcp.internal.acme.com",
"credential_ref":"vault://acme-crm-key",
"default_access":"read-only"}'
✓ Discovered 7 tools · namespaced as crm.* Namespace its tools
HiveKey discovers the server's tools and prefixes them with your namespace. A tool the upstream calls deleteRecord becomes crm.delete — addressable in scope and guards like any native action.
namespace: crm
default_access: read-only # writes off until granted
tools:
crm.read: { maps: getRecord, access: read }
crm.search: { maps: query, access: read }
crm.update: { maps: putRecord, access: write }
crm.delete: { maps: deleteRecord, access: write } Per-tool, per-role permissions
Grant each tool to each role independently. The matrix below is how a crm server might be governed across three roles — read is broad, writes are narrow, destructive calls held for review.
| Tool | support-agent | ops-agent | intern-agent |
|---|---|---|---|
| crm.read | allow | allow | allow |
| crm.update | deny | allow | deny |
| crm.delete | deny | review | deny |
| deploy.staging | deny | allow | review |
| deploy.production | deny | review | deny |
Read-only defaults
When you register a server with default_access: read-only, every write-classified tool is denied until you explicitly grant it. New tools discovered on a later sync inherit the same safe default.
{
"action": "crm.delete",
"verdict": "deny",
"reason": "tool is write-classified and not
granted to role 'support-agent'",
"namespace": "crm",
"default_access": "read-only",
"logged": true
} Safe by construction
A misbehaving or compromised agent can only do what its role grants on your server — and you can prove exactly what it tried.
Need help? Talk to our team.