Skip to main content

MCP Server

The 1claw MCP server (@1claw/mcp) implements the Model Context Protocol to give AI agents secure, just-in-time access to secrets stored in a 1claw vault — and a standalone security scanner for detecting malicious LLM content.

Secrets are fetched at runtime and never persisted in the LLM context window beyond the moment they are used. The inspect_content tool can run without vault credentials, making it available to anyone running local models.

How it works​

┌──────────────┐         MCP protocol          ┌──────────────┐
│ AI Agent │ ◀─────────────────────────────▶│ 1claw MCP │
│ (Claude, │ list_secrets, get_secret, │ Server │
│ Cursor, │ put_secret, rotate_and_store │ │
│ GPT, etc.) │ └──────┬───────┘
└──────────────┘ │
│ HTTPS
▼
┌──────────────┐
│ Vault API │
│ api.1claw.co│
└──────────────┘
  1. The AI agent calls an MCP tool (e.g. get_secret).
  2. The MCP server authenticates with the vault API using an agent JWT (from agent ID + API key, or a static token).
  3. The vault returns the decrypted secret value.
  4. The MCP server passes the value back to the agent.
  5. The agent uses the secret and discards it.

Transport modes​

ModeUse caseAuthURL
stdioLocal — Claude Desktop, Cursor, any MCP clientEnv varsN/A (runs locally)
httpStreamHosted — any MCP client with HTTP streaming supportPer-request headershttps://mcp.1claw.co/mcp
local-onlySecurity tools only — no vault credentials neededNoneN/A (runs locally)

Local-only mode​

Set ONECLAW_LOCAL_ONLY=true to start the server with only the inspect_content tool. No 1claw account or API keys required. Useful for users running local models (Ollama, LM Studio, llama.cpp) who want threat detection without secret management.

{
"mcpServers": {
"1claw": {
"command": "npx",
"args": ["-y", "@1claw/mcp"],
"env": {
"ONECLAW_LOCAL_ONLY": "true"
}
}
}
}

Toolsets — what a session actually sees​

The server ships 162 tools, but a session is only offered the toolsets its agent is entitled to. A vault-only agent sees 28 tools; an agent with intents and execution enabled sees 55. The MCP configuration is unchanged — the shaping comes from the agent's own flags in the dashboard.

ToolsetOffered whenWhat's in it
inspectalwaysinspect_content
vaultany agentsecrets, versions, rotation, env bundles, vaults, sharing, connected accounts
approvalsany agentrequest_approval, get_approval_status, get_approval, list_approvals, list_pending_approvals
intentsagent has Intents API enabledsigning, simulation, submission, signing keys, portfolio, Safe accounts
executeagent has Execution Intents enabledbindings, execute_http, execute_intent, executions, connectors
cardsagent has Cards enabledcards and gift cards
memoryagent has Memory enabledmemory tools + get_peer_context
channelsagent has Shroud enabledTelegram / WhatsApp / Discord channels
directoryagent is discoverableagent directory + job board
treasury, delegation, chat, automations, runtimes, notificationopt-in onlyno per-agent flag exists for these — request them explicitly
adminnever on an agent sessionhuman-only endpoints (policies, sub-orgs, approval votes, Safe migration)
platformneverplt_ endpoints; the MCP server does not accept platform keys

Requesting toolsets. Over stdio set ONECLAW_MCP_TOOLSETS; hosted, send the X-1Claw-Toolsets header. Both take a comma list (vault,intents,automations) or all. A request can narrow the defaults or opt into the opt-in sets; it never adds a toolset the agent is not entitled to, and all still excludes admin and platform.

execution_require_tee. When this flag is on, the vault refuses to return secret values to the agent outside a TEE, so get_secret, get_env_bundle and resolve_env are hidden. Writes and metadata (put_secret, rotate_and_store, rotate_generate, describe_secret, list_secrets, list_versions) remain.

Keeping up with flag changes. Hosted sessions re-check entitlements every 15 minutes and immediately after a 403 from the vault, then send notifications/tools/list_changed so the client re-lists. Over stdio the toolset is fixed at startup — restart the MCP server after changing an agent's flags.

Degraded lookups. Each session logs toolsets=… lookup=full|jwt_only|failed. jwt_only means only the flags carried in the signed token were honoured (intents, execute, shroud); failed means the agent defaults were used. A degraded lookup only ever narrows what is offered.

Tools​

The table below is a sample; see the Tool Reference for the full catalog.

ToolDescriptionRead/Write
list_secretsList all secrets in the vault (metadata only, never values)Read
get_secretFetch the decrypted value of a secret by pathRead
put_secretCreate or update a secret (creates a new version)Write
delete_secretSoft-delete a secret at a given pathWrite
describe_secretGet metadata (type, version, expiry) without fetching the valueRead
rotate_and_storeStore a new value for an existing secret and return the new versionWrite
rotate_generateServer-side rotation: generate a cryptographically random valueWrite
list_versionsList all versions of a secret (newest first)Read
get_env_bundleFetch an env_bundle secret and parse its KEY=VALUE lines as JSONRead
create_vaultCreate a new vaultWrite
list_vaultsList all accessible vaultsRead
grant_accessGrant a user or agent access to a vaultWrite
share_secretShare a secret with someone by emailWrite
simulate_transactionSimulate a transaction via Tenderly (no signing)Read
simulate_bundleSimulate multiple transactions sequentiallyRead
submit_transactionSign and broadcast a transactionWrite
sign_transactionSign a transaction without broadcasting (BYORPC)Write
list_transactionsList recent transactions for the current agentRead
get_transactionGet details of a specific transactionRead
provision_signing_keyProvision an HSM-backed signing key for a blockchainWrite
list_signing_keysList all active signing keys for the current agentRead
sign_messageSign an EIP-191 personal messageWrite
sign_typed_dataSign EIP-712 typed structured dataWrite
sign_digestSign a raw 32-byte digest (blind signing, requires raw_signing_enabled)Write
lease_bankr_keyLease a short-lived Bankr wallet API keyWrite
spend_from_passkey_safeSpend from a passkey-owned Safe under an Allowance Module grantWrite
platform_list_appsList platform apps in the organizationRead
platform_create_appRegister a new platform appWrite
platform_bootstrap_userBootstrap resources for a connected user from a templateWrite
platform_reissue_claimReissue an expired claim URL for a connectionWrite
platform_rotate_keyRotate a platform app's API keyWrite
list_approvalsList pending approval requestsRead
get_approvalGet details of an approval requestRead
request_approvalSubmit an approval request (agent-only)Write
treasury_proposeCreate a treasury multisig proposalWrite
treasury_sign_proposalSign a treasury proposalWrite
treasury_list_proposalsList proposals for a treasuryRead
inspect_contentAnalyze text for prompt injection, command injection, PII, and moreRead

Resources​

URIDescription
vault://secretsBrowsable listing of all secret paths (metadata only, no values)

Next steps​