MCP in this app
MCP in this app
Section titled “MCP in this app”Client-side MCP
Section titled “Client-side MCP”MCP servers you add in the app are connected from the browser. So:
- The server URL must be reachable by the user’s browser (e.g. a public HTTPS URL or
http://localhost:PORTwhen running locally). - Cursor/IDE-only MCPs do not affect the app: the browser cannot talk to Cursor’s MCP. Use HTTP (or SSE) MCP servers that expose a URL.
Servers are configured in the MCP config modal (chat toolbar), stored in localStorage, and passed to TamboProvider via useMcpServers().
MCP types
Section titled “MCP types”1. Prompts (/ in the message input)
Section titled “1. Prompts (/ in the message input)”- What: MCP server exposes prompts (templates). User types
/and picks one; the prompt text is inserted or submitted. - In this app: The app merges MCP prompts with built-in ones (e.g. “Summarize dataset”, “I uploaded a file in Jupyter (work folder)”).
2. Resources (@ in the message input)
Section titled “2. Resources (@ in the message input)”- What: MCP server exposes resources (e.g. URIs to files, datasets, or docs). User types
@and attaches a resource; the model can use it in the turn. - In this app: Pairs with built-in tools like
getDatasetByUrland data tools.
3. Tools (AI-callable)
Section titled “3. Tools (AI-callable)”- What: MCP server exposes tools. The model can call them during the conversation (e.g. query a DB, call an API, or — with Jupyter MCP — edit and run notebook cells).
- In this app: Built-in data tools (summarize, filter, SQL, charts,
getUploadedDataset,getDatasetByUrl) are registered insrc/lib/tambo.ts. Jupyter MCP adds tools likeinsert_execute_code_cell,read_cell,get_notebook_infoso the AI can drive a real Jupyter notebook.
4. Elicitations (forms mid-conversation)
Section titled “4. Elicitations (forms mid-conversation)”- A tool can request an elicitation (e.g. “Which column should I plot?”). The app shows a small form; the user’s answer is sent back and the tool continues. The app already supports Tambo elicitations.
Adding an MCP server
Section titled “Adding an MCP server”- In chat, open the MCP config (toolbar button in the message area).
- Enter the Server URL (must be reachable from the browser, e.g.
http://localhost:3002/mcp). - Optionally set Server Name and Transport (HTTP or SSE).
- Click Add Server. The list is saved to
localStorageand used on the next message.
Cursor config vs app config
Section titled “Cursor config vs app config”- Cursor (IDE) config — The JSON in Cursor’s MCP settings is used only by Cursor. It does not affect the DataViz app in the browser.
- DataViz app — MCP servers are configured in the app’s MCP config modal, stored in localStorage. Only HTTP (or SSE) server URLs work (e.g.
http://localhost:3002/mcpfor Jupyter MCP).
Jupyter MCP (optional)
Section titled “Jupyter MCP (optional)”Keep the in-app notebook and Run button for users who don’t use Docker. Add Jupyter MCP Server as an optional MCP when you run it (e.g. npm run jupyter-mcp). The AI then gets tools to edit and run cells in a real Jupyter notebook (full kernel, any package, persistent state). See Jupyter & MCP for setup.