API reference
The BusinessMCP platform API
Everything is one workspace behind one key. Call your hosted MCP server, read the registry feed, send analytics events, and manage tasks — all with real, copyable examples.
Base URL
https://businessmcp.comAuthentication
Authorization: Bearer mcph_...Create a Bearer mcph_* key in your dashboard Settings. The same key authenticates both the MCP endpoint and the REST tasks API. See expose your MCP endpoint for the full walkthrough.
Endpoints
/api/mcp/[transport]Bearer mcph_*Your company’s hosted MCP server. Speaks the Model Context Protocol over JSON-RPC (streamable HTTP). Use the "mcp" transport. The bearer key resolves your workspace and its access policy. Supports tools/list + tools/call, resources/list + resources/read (businessmcp://snapshot, ://sops, ://memory, ://brain/{query}), and prompts/list + prompts/get (weekly-growth-review, funnel-audit, and more). Output is scrubbed by the key’s policy.
Request
curl -X POST 'https://businessmcp.com/api/mcp/mcp' \
-H 'Authorization: Bearer mcph_your_key_here' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_analytics",
"arguments": { "range": "30d" }
}
}'Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"visitors\":1284,\"conversion_rate\":0.031,\"revenue_cents\":248900,\"range\":\"30d\"}"
}
]
}
}/api/registry/v0/serversPublicMCP Registry v0-shaped feed of servers in this registry, so the marketplace is machine-consumable by MCP clients and aggregators. Supports search, limit (max 200) and offset. Every entry advertises the streamable-HTTP remote.
Request
curl -X GET 'https://businessmcp.com/api/registry/v0/servers?search=stripe&limit=2&offset=0'Response
{
"servers": [
{
"name": "com.mcphosting/stripe",
"description": "Customers, payments and subscriptions",
"version": "1.0.0",
"status": "active",
"_meta": {
"com.mcphosting": {
"vendor": "Stripe",
"featured": true,
"listing_url": "https://businessmcp.com/mcp-servers/stripe"
}
},
"remotes": [
{ "type": "streamable-http", "url": "https://businessmcp.com/api/mcp/mcp" }
]
}
],
"metadata": { "count": 1, "total": 1, "next_offset": null }
}/api/analytics/eventPublic (origin-verified)The analytics beacon that track.js posts to. Cookieless and cross-origin; verifies the origin against your registered domain and responds fast so it never blocks page unload. You rarely call this by hand — the tracking script does — but the shape is public. Use type "identify" to stitch a visitor to an email (routed to the CRM, not the firehose).
Request
curl -X POST 'https://businessmcp.com/api/analytics/event' \
-H 'Content-Type: application/json' \
-d '{
"trackerId": "YOUR_TRACKER_ID",
"type": "goal",
"name": "purchase",
"url": "https://yoursite.com/checkout/success",
"referrer": "https://google.com",
"revenueCents": 4900,
"visitorId": "v_8f3a2c1b"
}'Response
HTTP/1.1 204 No Content/api/v1/runsBearer mcph_*Drive a full Assistant run from code. POST a prompt (optionally with a thread_id to continue a conversation, and mode "deep" for a bigger, verified analysis pass) to queue a run; it returns the thread_id. This is the same Head-of-BI agent, tools and access policy as the dashboard Assistant.
Request
curl -X POST 'https://businessmcp.com/api/v1/runs' \
-H 'Authorization: Bearer mcph_your_key_here' \
-H 'Content-Type: application/json' \
-d '{
"prompt": "How did conversions trend this month, and which channel drove them?",
"mode": "deep"
}'Response
{ "thread_id": "th_7b21" }/api/v1/runsBearer mcph_*Poll a run by thread_id. Returns the messages and the latest assistant reply once the run finishes. Poll every second or two until the reply is present.
Request
curl -X GET 'https://businessmcp.com/api/v1/runs?thread_id=th_7b21' \
-H 'Authorization: Bearer mcph_your_key_here'Response
{
"thread_id": "th_7b21",
"status": "done",
"reply": "Conversions rose 18% MoM to 312, led by Organic Search (…).",
"messages": [ /* full turn history */ ]
}/api/v1/meBearer mcph_*Return the calling key’s scope: whether it has full access, its label, whether it can take actions, and the data classes it is permitted. Use it to verify a scoped key before relying on it.
Request
curl -X GET 'https://businessmcp.com/api/v1/me' \
-H 'Authorization: Bearer mcph_your_key_here'Response
{
"full_access": false,
"label": "Analytics-only",
"can_act": false,
"data_classes": ["behavior"]
}/api/v1/tasksBearer mcph_*Public REST surface for the CLI and external automations. GET lists tasks (filter by status and dept); POST creates a task. Authenticated with the same mcph_* key as your MCP endpoint.
Request
curl -X GET 'https://businessmcp.com/api/v1/tasks?status=todo' \
-H 'Authorization: Bearer mcph_your_key_here'Response
{
"tasks": [
{
"id": "t_9c21",
"title": "Draft Q3 SEO plan",
"dept": "Marketing",
"status": "todo"
}
]
}/api/v1/tasksBearer mcph_*Create a task and optionally seed it with a first message that kicks off an agent run. Requires a title; dept defaults to Operations.
Request
curl -X POST 'https://businessmcp.com/api/v1/tasks' \
-H 'Authorization: Bearer mcph_your_key_here' \
-H 'Content-Type: application/json' \
-d '{
"title": "Summarize last week\u2019s revenue by channel",
"dept": "Marketing",
"message": "Pull the numbers and post a short summary."
}'Response
{
"id": "t_9c34",
"title": "Summarize last week\u2019s revenue by channel",
"status": "todo"
}Errors & limits
Status codes
401— missing or invalidmcph_*key400— malformed request (e.g. a task with no title)413— analytics beacon body over the 8KB cap204— analytics event accepted
Quotas
Metered actions are gated by your plan's monthly analytics-event quota, and agent runs are protected by a per-run cost ceiling. When you hit a limit you get a clear message — upgrade your plan or add an event top-up to raise it.
Prefer the terminal?
The mcphosting CLI wraps these APIs for one-command connect, search and list.