MCP
Give any AI client instant access to your tools, knowledge, and prompts — one MCP endpoint, zero backend code
MCP Server
Your Claude Desktop assistant needs to search your company's docs. Your Cursor agent needs to call your internal order API. Your custom agent needs reusable prompt templates. Each of these normally means building and hosting a backend service.
Protobox gives every workspace a managed MCP endpoint that handles all of it:
https://{workspace-slug}.protobox.app/mcpConnect any MCP-compatible client and your assistant instantly gets your tools, knowledge search, and prompts over the Model Context Protocol (Streamable HTTP). No backend code. No infrastructure. No RAG pipeline to build.
What Your Client Gets
One MCP connection, served from your workspace:
| Without Protobox | With Protobox |
|---|---|
| Build a tool execution runtime | Call any HTTP endpoint, JavaScript function, or code tool you define |
| Build a RAG pipeline (chunk, embed, retrieve) | Upload docs and get semantic search exposed as MCP resources |
| Build a prompt versioning system | Reusable prompt templates exposed as MCP prompts |
| Manage credentials securely | Encrypted secret storage, referenced by name in tool configs |
Quick Start
In the dashboard, go to Connect → MCP (or Manage → API Keys) and create a workspace API key. You'll send it in the X-API-Key header.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"protobox": {
"type": "streamablehttp",
"url": "https://acme.protobox.app/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}Restart Claude Desktop. Your Protobox tools appear in the tools menu.
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"protobox": {
"type": "streamablehttp",
"url": "https://acme.protobox.app/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}Add to .mcp.json in your project root:
{
"mcpServers": {
"protobox": {
"type": "streamablehttp",
"url": "https://acme.protobox.app/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const transport = new StreamableHTTPClientTransport(
new URL('https://acme.protobox.app/mcp'),
{
requestInit: {
headers: { 'X-API-Key': process.env.PROTOBOX_API_KEY! },
},
},
);
const client = new Client({ name: 'my-app', version: '1.0.0' });
await client.connect(transport);
// List the tools your workspace exposes
const { tools } = await client.listTools();
console.log(tools.map((t) => t.name));
// Call one of them
const result = await client.callTool({
name: 'lookup_order',
arguments: { order_id: 'ORDER-12345' },
});
console.log(result.content);
await client.close();Replace acme with your workspace slug and YOUR_API_KEY with a key from that workspace.
From the CLI, run the protocol test to confirm your client can connect, list tools, and list prompts:
protobox mcp testWhat's Exposed
Your MCP endpoint surfaces everything you've configured in the workspace:
| MCP capability | Backed by |
|---|---|
| Tools | The enabled tools in your workspace (or a scoped toolset) |
| Resources | Your knowledge base entries, searchable by the client |
| Prompts | Your reusable prompt templates |
Enable a tool and it shows up over MCP. Disable it and it disappears. Upload a knowledge entry and it becomes searchable. There's no separate "publish" step.
Scoped Toolsets
By default the endpoint exposes your workspace's enabled tools. For production you'll usually want a toolset — a curated collection of tools — so each client gets exactly the capabilities it needs and nothing more.
# Create a toolset, seeding it with tools
protobox toolsets create "Support" --tool lookup_order --tool check_warranty
# Add tools to it later
protobox toolsets add <toolset> <tool-slug-1> <tool-slug-2>A support client doesn't need your billing tools — give it a support toolset with just lookup_order, check_warranty, and create_ticket.
Use {{secret:name}} references in tool configs to inject credentials. Protobox's secret store keeps them encrypted — they never appear in logs, tool definitions, or MCP responses. Manage secrets in Connect → Secrets.
How MCP Fits In
Tool and prompt definitions and your knowledge live in Protobox. The MCP runtime authenticates the request, routes by workspace subdomain, and executes tools by calling the platform API plus a sandbox for JavaScript tools.
Authentication & URLs
| Environment | URL Pattern |
|---|---|
| Production | https://{workspace-slug}.protobox.app/mcp |
All requests require the X-API-Key header. Keys are workspace-scoped — acme.protobox.app only accepts keys issued for the acme workspace.
| Header | Required | Value |
|---|---|---|
X-API-Key | Yes | Your workspace API key |
Content-Type | Yes | application/json |
Accept | Yes | application/json, text/event-stream |
Troubleshooting
What's Next
Knowledge Base
Upload your docs and policies — clients search them in real time
Tools
Create custom functions your clients can call — API lookups, code, transforms
Toolsets
Group tools into collections for specific clients or use cases
CLI: MCP Integration
Connect Claude, Cursor, and other clients from the terminal