[{"data":1,"prerenderedAt":705},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fmcp\u002Fsetup":3},{"id":4,"title":5,"body":6,"description":696,"extension":697,"meta":698,"navigation":699,"path":700,"redirect":701,"seo":702,"stem":703,"__hash__":704},"docs\u002Fdocs\u002Fmcp\u002Fsetup.md","MCP setup",{"type":7,"value":8,"toc":688},"minimark",[9,13,23,26,38,43,51,123,137,141,214,218,221,264,270,310,327,347,351,354,360,365,368,374,404,408,432,437,450,476,481,505,514,618,635,646,650,684],[10,11,5],"h1",{"id":12},"mcp-setup",[14,15,16,17,22],"p",{},"This page covers wiring an MCP-compatible AI client to the DBConvert Streams MCP server. For what the integration gives you and what it can do, see ",[18,19,21],"a",{"href":20},"\u002Fdocs\u002Fmcp","AI Assistants via MCP",".",[14,24,25],{},"See it in action — Claude explores a PostgreSQL database and finds suspicious payments, in plain English (1:10):",[14,27,28],{},[18,29,33],{"href":30,"rel":31},"https:\u002F\u002Fyoutube.com\u002Fshorts\u002FCGUedx6UNS0",[32],"nofollow",[34,35],"img",{"alt":36,"src":37},"Talk to your database — DBConvert Streams MCP","https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FCGUedx6UNS0\u002F0.jpg",[39,40,42],"h2",{"id":41},"which-transport-to-use","Which transport to use",[14,44,45,46,50],{},"The MCP server speaks two transports. Pick by ",[47,48,49],"strong",{},"where DBConvert Streams runs relative to your AI client"," — the rest of this page is organized the same way.",[52,53,54,73],"table",{},[55,56,57],"thead",{},[58,59,60,64,67,70],"tr",{},[61,62,63],"th",{},"Your setup",[61,65,66],{},"Transport",[61,68,69],{},"How to connect",[61,71,72],{},"Who runs the server",[74,75,76,98],"tbody",{},[58,77,78,85,88,95],{},[79,80,81,84],"td",{},[47,82,83],{},"Desktop app"," (local)",[79,86,87],{},"stdio",[79,89,90,94],{},[18,91,93],{"href":92},"#the-fast-path-ai-assistants-panel","AI Assistants panel"," — one click",[79,96,97],{},"your AI client launches the binary on demand",[58,99,100,106,109,120],{},[79,101,102,105],{},[47,103,104],{},"Docker \u002F server"," (local or remote)",[79,107,108],{},"HTTP",[79,110,111,115,116],{},[18,112,114],{"href":113},"#connect-a-remote-ai-client-http","Connect a remote AI client"," — ",[117,118,119],"code",{},"http(s):\u002F\u002F\u003Chost>\u002Fmcp",[79,121,122],{},"the Docker stack runs it as a service (behind nginx)",[14,124,125,126,129,130,133,134,22],{},"Rule of thumb: ",[47,127,128],{},"desktop app → stdio (the AI Assistants panel does it for you); Docker or a remote host → HTTP."," With Docker, ",[117,131,132],{},"stream-mcp"," already runs as part of the deployment — your client just points at ",[117,135,136],{},"\u002Fmcp",[39,138,140],{"id":139},"prerequisites","Prerequisites",[142,143,144,171,206],"ol",{},[145,146,147,150],"li",{},[47,148,149],{},"DBConvert Streams installed and launched at least once.",[151,152,153,156,163],"ul",{},[145,154,155],{},"First launch generates the secrets master key in your OS keyring; the MCP server reads it from there automatically.",[145,157,158,159,162],{},"MCP reads the ",[47,160,161],{},"same workspace your Data Explorer shows"," — same connections, same streams.",[145,164,165,166,170],{},"It can only read connections, not create them — so add at least one in ",[18,167,169],{"href":168},"\u002Fdocs\u002Fconnections\u002Fconnection-management","Data Explorer"," first, or the AI has nothing to inspect.",[145,172,173,176,177],{},[47,174,175],{},"An MCP-compatible AI client",":\n",[151,178,179,182,185,188,191,200,203],{},[145,180,181],{},"Cursor",[145,183,184],{},"VS Code with GitHub Copilot agent mode",[145,186,187],{},"Windsurf (Codeium)",[145,189,190],{},"Claude Code (CLI)",[145,192,193,194,199],{},"Claude Desktop (macOS \u002F Windows; on Linux only via the community build ",[18,195,198],{"href":196,"rel":197},"https:\u002F\u002Fgithub.com\u002Faaddrick\u002Fclaude-desktop-debian",[32],"aaddrick\u002Fclaude-desktop-debian",")",[145,201,202],{},"Gemini CLI (Google)",[145,204,205],{},"Codex CLI (OpenAI)",[145,207,208,213],{},[47,209,210,212],{},[117,211,132],{}," binary."," Ships with the desktop installer next to the other backend services. You don't need to know its location for the UI flow below.",[39,215,217],{"id":216},"the-fast-path-ai-assistants-panel","The fast path: AI Assistants panel",[14,219,220],{},"The DBConvert Streams desktop app exposes a one-click setup panel for every supported AI client.",[142,222,223,226,233],{},[145,224,225],{},"Open DBConvert Streams.",[145,227,228,229,232],{},"In the left sidebar, click the ",[47,230,231],{},"✨ AI Assistants"," icon (in the bottom utility group, next to Settings and Account Overview).",[145,234,235,236],{},"You'll see one card per client with a status badge:\n",[151,237,238,248,258],{},[145,239,240,243,244,247],{},[47,241,242],{},"Connected"," — already wired up, click ",[47,245,246],{},"Disconnect"," to remove",[145,249,250,253,254,257],{},[47,251,252],{},"Available"," — installed but not yet registered, click ",[47,255,256],{},"Connect"," to wire it up",[145,259,260,263],{},[47,261,262],{},"Not installed"," — the client wasn't detected on this machine; the card shows where to download it",[265,266],"themed-image",{"alt":267,"dark":268,"light":269},"AI Assistants panel showing seven clients with status badges and Connect\u002FDisconnect buttons","\u002Fimages\u002Fdocs\u002Fmcp\u002Fai-assistants-panel-dark.png","\u002Fimages\u002Fdocs\u002Fmcp\u002Fai-assistants-panel-light.png",[142,271,273,279,286,296],{"start":272},4,[145,274,275,276,278],{},"Click ",[47,277,256],{}," on the client you want to use.",[145,280,281,282,285],{},"The desktop app spawns ",[117,283,284],{},"stream-mcp install"," under the hood, passing the same workspace database and master key that powers Data Explorer. The output shows up under \"Last action output\" with the registered configuration.",[145,287,288,291,292,295],{},[47,289,290],{},"Restart the AI client"," so it picks up the new server entry. The exact step for your client (e.g. \"Restart Cursor\", \"Open a new claude session\") is printed in the ",[47,293,294],{},"Last action output"," box, which expands automatically right after you Connect.",[145,297,298,299,309],{},"Open a new chat in the client and ask:\n",[300,301,306],"pre",{"className":302,"code":304,"language":305},[303],"language-text","List my DBConvert connections.\n","text",[117,307,304],{"__ignoreMap":308},"","\nYou should see the same connections that appear in Data Explorer.",[14,311,312,313,315,316,319,320,322,323,326],{},"To remove the integration later: click ",[47,314,246],{}," on the same card, then ",[47,317,318],{},"restart the AI client"," so it actually drops the server. Just like connecting, a client that's already running keeps the MCP server alive until you restart it — so right after Disconnect, ",[117,321,136],{}," (or the client's server list) will still show ",[117,324,325],{},"dbconvert-streams"," connected until the restart.",[328,329,330,336],"blockquote",{},[14,331,332,335],{},[47,333,334],{},"✅ That's it."," The AI Assistants panel handles everything: detecting\nyour clients, pointing them at the right workspace, the master key, and\nthe restart instructions.",[14,337,338,339,342,343,346],{},"Running DBConvert Streams in ",[47,340,341],{},"Docker or on a server"," instead? Skip the\npanel and use the ",[18,344,345],{"href":113},"HTTP transport"," below.",[39,348,350],{"id":349},"verify","Verify",[14,352,353],{},"Two checks, easiest first.",[14,355,356,359],{},[47,357,358],{},"1. Ask it something — the real test."," Open a new chat in your AI client and send:",[300,361,363],{"className":362,"code":304,"language":305},[303],[117,364,304],{"__ignoreMap":308},[14,366,367],{},"You should get back the same connections Data Explorer shows.",[14,369,370,373],{},[47,371,372],{},"2. Confirm the server is registered."," Where you look depends on the client:",[151,375,376,384,395],{},[145,377,378,380,381,383],{},[47,379,93],{}," (desktop app) — the client's card shows a ",[47,382,242],{}," badge.",[145,385,386,389,390,392,393,22],{},[47,387,388],{},"Claude Code"," — run ",[117,391,136],{}," and look for ",[117,394,325],{},[145,396,397,400,401,403],{},[47,398,399],{},"Claude Desktop, Cursor, VS Code, Windsurf, Gemini, Codex"," — open the client's MCP server picker and check that ",[117,402,325],{}," shows a connected status.",[39,405,407],{"id":406},"connect-a-remote-ai-client-http","Connect a remote AI client (HTTP)",[14,409,410,411,414,415,417,418,420,421,423,424,427,428,431],{},"When DBConvert Streams runs in ",[47,412,413],{},"Docker"," — whether on a remote server or locally on your machine — use the ",[47,416,345],{},", not stdio. The Docker stack already runs ",[117,419,132],{}," as a service behind the same nginx that serves the UI, so there's nothing to install on either side. The endpoint is your host plus ",[117,422,136],{},": ",[117,425,426],{},"http:\u002F\u002Flocalhost\u002Fmcp"," for a local Docker stack, ",[117,429,430],{},"https:\u002F\u002F\u003Cyour-host>\u002Fmcp"," for a server.",[265,433],{"alt":434,"dark":435,"light":436},"AI Assistants panel in the web UI: MCP endpoint, API key and Install ID, a client picker, and a one-click Add button for Cursor","\u002Fimages\u002Fdocs\u002Fmcp\u002Fai-assistants-remote-dark.png","\u002Fimages\u002Fdocs\u002Fmcp\u002Fai-assistants-remote-light.png",[14,438,439,442,443,445,446,449],{},[47,440,441],{},"It's the same host as the UI."," nginx routes ",[117,444,136],{}," to the MCP service internally, so there is ",[47,447,448],{},"no extra port to open"," — the MCP container's port stays inside the Docker network; you only need the standard 443.",[14,451,452,455,456,459,460,463,464,467,468,471,472,475],{},[47,453,454],{},"Authentication"," is your ",[47,457,458],{},"API key"," + ",[47,461,462],{},"Install ID",", sent as request headers (",[117,465,466],{},"X-API-Key"," \u002F ",[117,469,470],{},"X-Install-ID",", or ",[117,473,474],{},"Authorization: Bearer \u003Capi-key>","). The server resolves your account from them per request — no master key, no local secrets file.",[14,477,478],{},[47,479,480],{},"Easiest path — the web UI:",[142,482,483,488,502],{},[145,484,485,486,22],{},"Open the DBConvert Streams UI in your browser → ",[47,487,231],{},[145,489,490,491,493,494,497,498,501],{},"Pick your client. ",[47,492,181],{}," and ",[47,495,496],{},"VS Code"," have a one-click ",[47,499,500],{},"Add"," button (a deeplink — the client adds the server itself); the others give a copy-paste config (or one command) in that client's format.",[145,503,504],{},"The panel fills in the endpoint, your API key, and Install ID automatically.",[14,506,507],{},[47,508,509,510,513],{},"Manual example (Cursor ",[117,511,512],{},"~\u002F.cursor\u002Fmcp.json","):",[300,515,519],{"className":516,"code":517,"language":518,"meta":308,"style":308},"language-json shiki shiki-themes github-light github-dark","{\n  \"mcpServers\": {\n    \"dbconvert-streams\": {\n      \"url\": \"https:\u002F\u002Fyour-host\u002Fmcp\",\n      \"headers\": {\n        \"X-API-Key\": \"\u003Cyour-api-key>\",\n        \"X-Install-ID\": \"\u003Cyour-install-id>\"\n      }\n    }\n  }\n}\n","json",[117,520,521,530,540,548,562,570,583,594,600,606,612],{"__ignoreMap":308},[522,523,526],"span",{"class":524,"line":525},"line",1,[522,527,529],{"class":528},"sVt8B","{\n",[522,531,533,537],{"class":524,"line":532},2,[522,534,536],{"class":535},"sj4cs","  \"mcpServers\"",[522,538,539],{"class":528},": {\n",[522,541,543,546],{"class":524,"line":542},3,[522,544,545],{"class":535},"    \"dbconvert-streams\"",[522,547,539],{"class":528},[522,549,550,553,555,559],{"class":524,"line":272},[522,551,552],{"class":535},"      \"url\"",[522,554,423],{"class":528},[522,556,558],{"class":557},"sZZnC","\"https:\u002F\u002Fyour-host\u002Fmcp\"",[522,560,561],{"class":528},",\n",[522,563,565,568],{"class":524,"line":564},5,[522,566,567],{"class":535},"      \"headers\"",[522,569,539],{"class":528},[522,571,573,576,578,581],{"class":524,"line":572},6,[522,574,575],{"class":535},"        \"X-API-Key\"",[522,577,423],{"class":528},[522,579,580],{"class":557},"\"\u003Cyour-api-key>\"",[522,582,561],{"class":528},[522,584,586,589,591],{"class":524,"line":585},7,[522,587,588],{"class":535},"        \"X-Install-ID\"",[522,590,423],{"class":528},[522,592,593],{"class":557},"\"\u003Cyour-install-id>\"\n",[522,595,597],{"class":524,"line":596},8,[522,598,599],{"class":528},"      }\n",[522,601,603],{"class":524,"line":602},9,[522,604,605],{"class":528},"    }\n",[522,607,609],{"class":524,"line":608},10,[522,610,611],{"class":528},"  }\n",[522,613,615],{"class":524,"line":614},11,[522,616,617],{"class":528},"}\n",[328,619,620],{},[14,621,622,625,626,629,630,634],{},[47,623,624],{},"Use HTTPS."," The API key travels in a header, so plain HTTP would expose it. Install with ",[117,627,628],{},"--secure"," to enable TLS (the installer generates a self-signed certificate for your host's IP or domain). With a self-signed cert, some AI clients reject the connection — prefer a real domain with a trusted certificate, or configure the client to trust the cert. See ",[18,631,633],{"href":632},"\u002Fdocs\u002Fdeployment\u002Fdocker","Docker deployment"," for cert and IP handling.",[14,636,637,638,641,642,645],{},"The HTTP endpoint is ",[47,639,640],{},"read-only"," like stdio, and serves a ",[47,643,644],{},"single workspace"," (the first authenticated account); a request for a different account is rejected.",[39,647,649],{"id":648},"what-you-can-do-next","What you can do next",[151,651,652,663,670,677],{},[145,653,654,655,493,659,22],{},"See real end-to-end sessions: ",[18,656,658],{"href":657},"\u002Fdocs\u002Fmcp\u002Fexamples\u002Fsql-exploration","plain-English SQL",[18,660,662],{"href":661},"\u002Fdocs\u002Fmcp\u002Fexamples\u002Ffederated-validation","federated validation",[145,664,665,666,22],{},"Browse the full read-only toolset in the ",[18,667,669],{"href":668},"\u002Fdocs\u002Fmcp\u002Ftools","Tools reference",[145,671,672,673,22],{},"Understand what the AI can and cannot see in ",[18,674,676],{"href":675},"\u002Fdocs\u002Fmcp\u002Fsafety-and-privacy","Safety & privacy",[145,678,679,680,22],{},"If anything goes wrong, see ",[18,681,683],{"href":682},"\u002Fdocs\u002Fmcp\u002Ftroubleshooting","Troubleshooting",[685,686,687],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":308,"searchDepth":532,"depth":532,"links":689},[690,691,692,693,694,695],{"id":41,"depth":532,"text":42},{"id":139,"depth":532,"text":140},{"id":216,"depth":532,"text":217},{"id":349,"depth":532,"text":350},{"id":406,"depth":532,"text":407},{"id":648,"depth":532,"text":649},"Connect Cursor, VS Code Copilot, Windsurf, Claude Code, Claude Desktop, Gemini CLI, or Codex CLI to your DBConvert Streams workspace — one click from the desktop app, or over HTTP for Docker and server deployments.","md",{},false,"\u002Fdocs\u002Fmcp\u002Fsetup",null,{"title":5,"description":696},"docs\u002Fmcp\u002Fsetup","CR9pGT5SJ5NY6THCLVH3psKmwzss_7rcS51cjKqious",1781271516554]