MCP Integration
kubbi ships an MCP-compatible tool server. Install it once and every agent in your stack can create, claim, inspect, and delete temporary encrypted handoffs, including multi-file packages, with no SDK wiring required.
What is MCP?
The Model Context Protocol (MCP) is an open standard that lets AI agents discover and call tools at runtime. Instead of hard-coding integrations, agents connect to MCP servers and use whatever tools they expose. kubbi's MCP server exposes six tools that any MCP-compatible agent can use immediately.
Why pair MCP with kubbi
MCP routes tool calls between agents. It carries control. It is awkward for payloads: tool results sit in agent context, get logged across hops, and can balloon prompts.
kubbi takes the payload off the MCP channel. The producer's kubbi_send returns a claim URL. The MCP tool result carries only the URL. Another vendor's agent calls kubbi_claim when ready. Neither side exposes a bucket. See the side-channel pattern for the general framing, and cross-vendor MCP handoff for concrete examples.
Installation
The server runs via npx. No global install needed. Add the config to your MCP client and replace the API key with your own.
{
"mcpServers": {
"kubbi": {
"command": "npx",
"args": ["-y", "@kubbi.ai/mcp"],
"env": {
"KUBBI_API_KEY": "kb_..."
}
}
}
}Add this config to the file your MCP client reads from:
- Claude Desktop:
claude_desktop_config.json - Cursor:
.cursor/mcp.json
Get your API key from the dashboard.
Available tools
kubbi_send
Create a kubbi, an ephemeral, encrypted payload with a unique claim URL. Share the claim URL with any consumer (agent, service, human) who can retrieve the content with no API key.
Parameters
contentcontentTypettlSecondsmaxRetrievalsmetadataReturns: claim URL, kubbi ID, status, content type, max retrievals, expires-at, and metadata if set
kubbi_send_files
Create a multi-file kubbi package: multiple files encrypted together with a single claim URL. For text files, pass content as a string. For binary files, base64-encode the content and set encoding to ‘base64’.
Note: the MCP tool currently accepts 1 to 5 files with a 5 MB total cap, regardless of plan tier. To send up to 10 files or 25 MB on the Enterprise tier, use the REST API or SDK directly.
Parameters
filesttlSecondsmaxRetrievalsmetadataReturns: claim URL + kubbi ID + file count
kubbi_claim
Claim a kubbi and retrieve its decrypted content. This counts as a retrieval. If max retrievals is reached, the content is permanently destroyed afterward. Works for both single-content and multi-file kubbis.
Parameters
claimUrlReturns: decrypted content (or all files for packages)
kubbi_inspect
Inspect a kubbi without consuming it. Returns metadata (status, content type, retrieval count, expiry). For multi-file kubbis, also shows the file manifest. Does not count as a retrieval, so it is safe to call repeatedly.
Parameters
claimUrlReturns: metadata (status, content type, retrieval count, expiry, file manifest for packages)
kubbi_get
Get detailed metadata for a kubbi you created (by ID). Shows status, retrieval count, timestamps, and whether it has been claimed.
Parameters
idReturns: full kubbi detail JSON
kubbi_delete
Delete (burn) a kubbi you created. Immediately wipes the encrypted payload. Any subsequent claim attempts will receive 410 Gone.
Parameters
idReturns: confirmation
Example flow
Once kubbi is connected, the agent discovers the tools automatically. Describe what you need in plain language:
Tool call: kubbi_send({
content: "analysis result...",
contentType: "application/json",
ttlSeconds: 600,
maxRetrievals: 1
})
Tool result: {
"claimUrl": "https://api.kubbi.ai/r/abc123xyz",
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851"
}Tool call: kubbi_send_files({
files: [
{ name: "report.json", content: "{...}", contentType: "application/json", role: "data" },
{ name: "summary.md", content: "# Summary...", contentType: "text/markdown", role: "instructions" }
],
ttlSeconds: 3600
})
Tool result: {
"claimUrl": "https://api.kubbi.ai/r/pkg456xyz",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"fileCount": 2
}Tool call: kubbi_claim({
claimUrl: "https://api.kubbi.ai/r/abc123xyz"
})
Tool result: {
"content": "analysis result...",
"contentType": "application/json"
}Example prompts
- 1
“Create a kubbi with this analysis result and send me the claim URL.”
- 2
“Claim the payload at this URL and summarize what’s inside.”
- 3
“Store this API response as a kubbi with max_retrievals: 1 and a 1-hour TTL.”
- 4
“Bundle these three files into a package kubbi and give me the claim link.”
- 5
“Inspect the kubbi at this claim URL before I claim it.”
- 6
“Delete the kubbi I just created. I changed my mind.”