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.xyz│
└──────────────┘
  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.xyz/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"
}
}
}
}

Tools

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
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
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