Bambuser MCP Server
The Bambuser MCP server is a hosted Model Context Protocol endpoint that lets an AI client — Claude Code, Claude Desktop, Cursor, ChatGPT, the MCP Inspector, or anything else that speaks MCP — read data from your Bambuser workspace on your behalf.
Instead of writing REST calls, you connect the client once — by signing in with your API key, or by putting the key in the client's config — and then ask questions in natural language: "which shows featured SKU 12345?", "pull the chat transcript from last Thursday's stream", "what have our shows taught us about this product?". The model picks the right tool, calls it, and works with the result.
Everything the server returns is scoped to the organization that owns the API key. There is no tool argument that can point at another organization's data.
What the server can do
| Area | Tools |
|---|---|
| Shows | get_shows, get_show, get_show_highlights, get_show_play_url |
| Show content | get_show_transcript, get_show_chat_transcripts |
| Products | search_products, get_products, get_show_products, get_highlighted_product_shows, get_product_template_ids, get_product_ids_by_template_ids |
| Product knowledge | get_product_knowledge_statements, get_product_knowledge_statements_supporting_evidence, get_product_knowledge_org_library_sources |
| Feedback | send_feedback — sends a note to the Bambuser team when something you needed was missing |
Every tool above is read-only. send_feedback is the only one that writes
anything, and what it writes is your feedback.
Tool descriptions and input schemas are published by the server itself, so any
MCP client shows the current list once connected. Run tools/list (or your
client's equivalent) to see exactly what your API key has access to — that list,
not this page, is the authoritative answer.
Resources
Alongside tools, the server exposes three MCP resource templates for product knowledge. Clients that support resources can attach these directly to a conversation rather than going through a tool call.
| Resource | URI template |
|---|---|
product_knowledge_summary | bambuser://product-knowledge/{productId}{?feedId,attributeLimit} |
product_knowledge_statement | bambuser://product-knowledge/{productId}/statement/{statementId}{?feedId} |
product_knowledge_atom | bambuser://product-knowledge/{productId}/atom/{atomId}{?feedId} |
The summary is the orientation layer — top categories, category counts,
coverage and a preview of org-library sources. feedId scopes any of them to a
single feed; attributeLimit caps how many top categories the summary returns
(default 5).
Endpoints
Pick the endpoint that matches the servers your workspace runs on.
| Servers | Workspace login | MCP endpoint |
|---|---|---|
| Global | lcx.bambuser.com | https://mcp-prod-us.liveshopping.bambuser.com/mcp |
| EU | lcx-eu.bambuser.com | https://mcp-prod-eu.liveshopping.bambuser.com/mcp |
The two regions are separate deployments over separate data. An API key issued in one region does not work against the other.
The transport is Streamable HTTP over POST. The server is stateless:
every request carries its own credentials and is handled independently, so
there is no session to establish or keep alive.
Authentication
There are two ways to connect, and both end up acting as a workspace API key:
- Sign in with OAuth — for clients with a "Connect" button, such as claude.ai and ChatGPT. You paste your API key once on a Bambuser sign-in page; no header configuration is needed.
- API key in a header — for clients you configure yourself, such as Claude Code, Claude Desktop and Cursor. The MCP server authenticates exactly like the Bambuser REST API.
Sign in with OAuth
Clients that support MCP's OAuth flow discover everything they need from the
endpoint's 401 response, so in most cases you only enter the endpoint URL from
the table above.
- Add the server in your client using the MCP endpoint URL for your region, and choose to connect. The client opens a Bambuser page in your browser.
- The page shows which app is asking for access and the exact address you will be sent back to. Check that you recognise both.
- Paste your workspace API key and confirm. You are sent back to the client, which is now connected.
API key in a header
Send a workspace API key in the Authorization header.
Authorization: Bearer <YOUR_API_KEY>
Authorization: Token <YOUR_API_KEY> is accepted as well — use whichever your
client supports. Clients that don't let you customise the header prefix (such
as ChatGPT) should use Bearer.
Create the key in your Bambuser workspace under Settings, following Generating API Keys. Treat it like a password: it grants access to your workspace data, and anything you paste it into — a client config file, an environment variable — should be handled accordingly.
Scopes
The scopes you grant the API key decide which tools it can use. Tools whose scope is missing return an error when called; the rest keep working.
| Scope | Unlocks |
|---|---|
READ_SHOWS | get_shows, get_show, get_show_highlights, get_show_play_url, get_show_chat_transcripts, get_highlighted_product_shows |
READ_BROADCASTS | get_show_transcript |
READ_PRODUCTS | search_products, get_products, get_show_products, get_product_template_ids, get_product_ids_by_template_ids |
PRODUCT_CATALOG_READ | The three product knowledge tools and all three product knowledge resources |
send_feedback needs no scope beyond a valid key. PRODUCT_CATALOG_MANAGE
also unlocks the product knowledge reads, so a key that already has it needs
nothing extra.
Since the whole surface is read-only, a key carrying READ_SHOWS,
READ_BROADCASTS, READ_PRODUCTS and PRODUCT_CATALOG_READ covers
everything the server can do today.
Error responses
| Status | Meaning |
|---|---|
401 Unauthorized | Header missing, or the key is unknown, invalid or disabled. For an OAuth connection, the token is expired or revoked — the client should refresh it or ask you to sign in again |
| Tool error | The key is valid but lacks the scope for that specific tool |
Connecting a client
Clients with a Connect button (claude.ai, ChatGPT)
Add a custom connector, enter the endpoint for your region, and follow the
sign-in steps. You don't need to set an Authorization
header.
Clients configured with an API key
Replace <YOUR_API_KEY> with your key and use the endpoint for your region.
Claude Code
claude mcp add --transport http bambuser \
https://mcp-prod-eu.liveshopping.bambuser.com/mcp \
--header "Authorization: Bearer <YOUR_API_KEY>"
Claude Desktop, Cursor and other JSON-configured clients
{
"mcpServers": {
"bambuser": {
"type": "http",
"url": "https://mcp-prod-eu.liveshopping.bambuser.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
Config file locations differ per client — Cursor reads .cursor/mcp.json in
the project or ~/.cursor/mcp.json globally; Claude Desktop reads
claude_desktop_config.json. The block above goes inside whichever file your
client uses.