[{"data":1,"prerenderedAt":1009},["ShallowReactive",2],{"navigation_docs":3,"-cookbook-mcp-query-data":388,"-cookbook-mcp-query-data-surround":1004},[4,82,147,173,202,259,298,355],{"title":5,"icon":6,"redirect":7,"path":8,"stem":9,"children":10,"page":73},"Start","i-lucide-compass","\u002Fintro\u002Fquickstart","\u002Fintro","1.intro",[11,14,18,22,74,78],{"title":12,"path":7,"stem":13},"Quickstart","1.intro\u002F0.quickstart",{"title":15,"path":16,"stem":17},"Pipeline Applications","\u002Fintro\u002Fpipeline-app-walkthrough","1.intro\u002F1.pipeline-app-walkthrough",{"title":19,"path":20,"stem":21},"How Redgold works","\u002Fintro\u002Foverview","1.intro\u002F2.overview",{"title":23,"icon":24,"visibility":25,"redirect":26,"path":27,"stem":28,"children":29,"page":73},"Comparison","i-lucide-scale","private","\u002Fintro\u002Fcomparison\u002Fpositioning","\u002Fintro\u002Fcomparison","1.intro\u002F3.comparison",[30,33,37,41,45,49,53,57,61,65,69],{"title":31,"path":26,"stem":32},"Positioning","1.intro\u002F3.comparison\u002F1.positioning",{"title":34,"path":35,"stem":36},"vs Lovable","\u002Fintro\u002Fcomparison\u002Fvs-lovable","1.intro\u002F3.comparison\u002F10.vs-lovable",{"title":38,"path":39,"stem":40},"vs Cloudflare OS","\u002Fintro\u002Fcomparison\u002Fvs-cloudflare-os","1.intro\u002F3.comparison\u002F11.vs-cloudflare-os",{"title":42,"path":43,"stem":44},"vs a backend-as-a-service","\u002Fintro\u002Fcomparison\u002Fvs-baas","1.intro\u002F3.comparison\u002F2.vs-baas",{"title":46,"path":47,"stem":48},"vs serverless compute","\u002Fintro\u002Fcomparison\u002Fvs-serverless-compute","1.intro\u002F3.comparison\u002F3.vs-serverless-compute",{"title":50,"path":51,"stem":52},"vs a do-it-yourself data stack","\u002Fintro\u002Fcomparison\u002Fvs-diy-data-stack","1.intro\u002F3.comparison\u002F4.vs-diy-data-stack",{"title":54,"path":55,"stem":56},"vs Rama","\u002Fintro\u002Fcomparison\u002Fvs-rama","1.intro\u002F3.comparison\u002F5.vs-rama",{"title":58,"path":59,"stem":60},"vs Apache Spark","\u002Fintro\u002Fcomparison\u002Fvs-spark","1.intro\u002F3.comparison\u002F6.vs-spark",{"title":62,"path":63,"stem":64},"vs Apache DataFusion","\u002Fintro\u002Fcomparison\u002Fvs-datafusion","1.intro\u002F3.comparison\u002F7.vs-datafusion",{"title":66,"path":67,"stem":68},"vs Heroku","\u002Fintro\u002Fcomparison\u002Fvs-heroku","1.intro\u002F3.comparison\u002F8.vs-heroku",{"title":70,"path":71,"stem":72},"vs AI model providers","\u002Fintro\u002Fcomparison\u002Fvs-ai-providers","1.intro\u002F3.comparison\u002F9.vs-ai-providers",false,{"title":75,"path":76,"stem":77},"Common tasks","\u002Fintro\u002Fstarting-points","1.intro\u002F4.starting-points",{"title":79,"path":80,"stem":81},"FAQ","\u002Fintro\u002Ffaq","1.intro\u002F5.faq",{"title":83,"icon":84,"redirect":85,"path":86,"stem":87,"children":88,"page":73},"Examples","i-lucide-chef-hat","\u002Fcookbook\u002Foverview","\u002Fcookbook","10.cookbook",[89,91,95,99,103,107,111,115,119,123,127,131,135,139,143],{"title":83,"path":85,"stem":90},"10.cookbook\u002F1.overview",{"title":92,"path":93,"stem":94},"One-shot task in CI","\u002Fcookbook\u002Fone-shot-ci","10.cookbook\u002F10.one-shot-ci",{"title":96,"path":97,"stem":98},"Rate-limit retries","\u002Fcookbook\u002Fretry-rate-limits","10.cookbook\u002F11.retry-rate-limits",{"title":100,"path":101,"stem":102},"Connect GitHub review automation","\u002Fcookbook\u002Fconnect-github-app","10.cookbook\u002F12.connect-github-app",{"title":104,"path":105,"stem":106},"Delegate a task to another agent","\u002Fcookbook\u002Fdelegate-agent-task","10.cookbook\u002F13.delegate-agent-task",{"title":108,"path":109,"stem":110},"Validate a pipeline application change","\u002Fcookbook\u002Fvalidate-pipeline-app","10.cookbook\u002F14.validate-pipeline-app",{"title":112,"path":113,"stem":114},"Verify a managed application deployment","\u002Fcookbook\u002Fverify-managed-deploy","10.cookbook\u002F15.verify-managed-deploy",{"title":116,"path":117,"stem":118},"First API call","\u002Fcookbook\u002Ffirst-api-call","10.cookbook\u002F2.first-api-call",{"title":120,"path":121,"stem":122},"Python client","\u002Fcookbook\u002Fmodel-api-python","10.cookbook\u002F3.model-api-python",{"title":124,"path":125,"stem":126},"Anthropic Messages","\u002Fcookbook\u002Fanthropic-messages","10.cookbook\u002F4.anthropic-messages",{"title":128,"path":129,"stem":130},"Check credits","\u002Fcookbook\u002Fcheck-credits","10.cookbook\u002F5.check-credits",{"title":132,"path":133,"stem":134},"Query data via MCP","\u002Fcookbook\u002Fmcp-query-data","10.cookbook\u002F6.mcp-query-data",{"title":136,"path":137,"stem":138},"Drive an agent via MCP","\u002Fcookbook\u002Fmcp-drive-agent","10.cookbook\u002F7.mcp-drive-agent",{"title":140,"path":141,"stem":142},"Install the client","\u002Fcookbook\u002Finstall-client","10.cookbook\u002F8.install-client",{"title":144,"path":145,"stem":146},"Use another API host","\u002Fcookbook\u002Fpoint-client-at-host","10.cookbook\u002F9.point-client-at-host",{"title":148,"icon":149,"redirect":150,"path":151,"stem":152,"children":153,"page":73},"Agent operations","i-lucide-network","\u002Ffleet\u002Foverview","\u002Ffleet","11.fleet",[154,157,161,165,169],{"title":155,"path":150,"stem":156},"Running agent work","11.fleet\u002F0.overview",{"title":158,"path":159,"stem":160},"Workstreams and issues","\u002Ffleet\u002Fworkstreams-and-issues","11.fleet\u002F1.workstreams-and-issues",{"title":162,"path":163,"stem":164},"Agent lifecycle","\u002Ffleet\u002Fagent-lifecycle","11.fleet\u002F2.agent-lifecycle",{"title":166,"path":167,"stem":168},"Supervision and recovery","\u002Ffleet\u002Fsupervision","11.fleet\u002F3.supervision",{"title":170,"path":171,"stem":172},"An application workstream from request to delivery","\u002Ffleet\u002Fapplication-workstream","11.fleet\u002F4.application-workstream",{"title":174,"icon":175,"redirect":176,"path":177,"stem":178,"children":179,"page":73},"Architecture","i-lucide-layers","\u002Finfrastructure\u002Foverview","\u002Finfrastructure","3.infrastructure",[180,182,186,190,194,198],{"title":174,"path":176,"stem":181},"3.infrastructure\u002F0.overview",{"title":183,"path":184,"stem":185},"A request through the platform","\u002Finfrastructure\u002Frequest-path","3.infrastructure\u002F11.request-path",{"title":187,"path":188,"stem":189},"Agent work and durable state","\u002Finfrastructure\u002Fagent-work","3.infrastructure\u002F12.agent-work",{"title":191,"path":192,"stem":193},"Data and pipelines","\u002Finfrastructure\u002Fdata","3.infrastructure\u002F3.data",{"title":195,"path":196,"stem":197},"AI and agents","\u002Finfrastructure\u002Fai","3.infrastructure\u002F4.ai",{"title":199,"path":200,"stem":201},"Managed deployment","\u002Finfrastructure\u002Fdeployment","3.infrastructure\u002F7.deployment",{"title":203,"icon":204,"redirect":205,"path":206,"stem":207,"children":208,"page":73},"API","i-lucide-book-marked","\u002Freference\u002Fauthentication","\u002Freference","4.reference",[209,212,216,220,224,228,232,236,240,244,248],{"title":210,"path":205,"stem":211},"Authentication","4.reference\u002F1.authentication",{"title":213,"path":214,"stem":215},"Security disclosure policy","\u002Freference\u002Fsecurity-disclosure","4.reference\u002F11.security-disclosure",{"title":217,"path":218,"stem":219},"Model API","\u002Freference\u002Fllm-api","4.reference\u002F2.llm-api",{"title":221,"path":222,"stem":223},"MCP server","\u002Freference\u002Fmcp","4.reference\u002F2.mcp",{"title":225,"path":226,"stem":227},"Data platform preview","\u002Freference\u002Fdata-platform-preview","4.reference\u002F3.data-platform-preview",{"title":229,"path":230,"stem":231},"Terminal client","\u002Freference\u002Fcli","4.reference\u002F6.cli",{"title":233,"path":234,"stem":235},"Pipeline manifest preview","\u002Freference\u002Fpipeline-preview","4.reference\u002F7.pipeline-preview",{"title":237,"path":238,"stem":239},"Limits and retries","\u002Freference\u002Flimits","4.reference\u002F8.limits",{"title":241,"path":242,"stem":243},"API contract details","\u002Freference\u002Fapi-contracts","4.reference\u002F9.api-contracts",{"title":245,"path":246,"stem":247},"Errors","\u002Freference\u002Ferrors","4.reference\u002F9.errors",{"title":249,"icon":250,"visibility":251,"path":252,"stem":253,"children":254,"page":73},"Public API","i-lucide-route","public","\u002Freference\u002Froutes","4.reference\u002Froutes",[255],{"title":256,"path":257,"stem":258},"V1 routes","\u002Freference\u002Froutes\u002Fv1","4.reference\u002Froutes\u002Fv1",{"title":260,"icon":261,"visibility":25,"redirect":262,"path":263,"stem":264,"children":265,"page":73},"Develop","i-lucide-code","\u002Fdevelop\u002Fpipeline-apps\u002Foverview","\u002Fdevelop","5.develop",[266,270,286,290,294],{"title":267,"path":268,"stem":269},"Author a batch transform","\u002Fdevelop\u002Fauthor-a-batch-transform","5.develop\u002F10.author-a-batch-transform",{"title":271,"visibility":251,"redirect":262,"path":272,"stem":273,"children":274,"page":73},"Pipeline Apps","\u002Fdevelop\u002Fpipeline-apps","5.develop\u002F11.pipeline-apps",[275,278,282],{"title":276,"path":262,"stem":277},"Pipeline apps","5.develop\u002F11.pipeline-apps\u002F1.overview",{"title":279,"path":280,"stem":281},"Collaborative board walkthrough","\u002Fdevelop\u002Fpipeline-apps\u002Fcollaborative-board","5.develop\u002F11.pipeline-apps\u002F2.collaborative-board",{"title":283,"path":284,"stem":285},"Release and security lifecycle","\u002Fdevelop\u002Fpipeline-apps\u002Frelease-lifecycle","5.develop\u002F11.pipeline-apps\u002F3.release-lifecycle",{"title":287,"path":288,"stem":289},"Build a vertical","\u002Fdevelop\u002Fbuild-a-vertical","5.develop\u002F5.build-a-vertical",{"title":291,"path":292,"stem":293},"Managed application artifacts","\u002Fdevelop\u002Fscaffold-a-narrow-app","5.develop\u002F7.scaffold-a-narrow-app",{"title":295,"path":296,"stem":297},"Import your data","\u002Fdevelop\u002Fimport-your-data","5.develop\u002F8.import-your-data",{"title":299,"icon":300,"redirect":301,"path":302,"stem":303,"children":304,"page":73},"Guides","i-lucide-layout-grid","\u002Fapplications\u002Fai-agents\u002Foverview","\u002Fapplications","7.applications",[305,309,329,341],{"title":306,"path":307,"stem":308},"Application maturity catalog","\u002Fapplications\u002Fcatalog","7.applications\u002F0.catalog",{"title":310,"visibility":251,"path":311,"stem":312,"children":313,"page":73},"AI Agents","\u002Fapplications\u002Fai-agents","7.applications\u002F1.ai-agents",[314,317,321,325],{"title":315,"path":301,"stem":316},"Coding agents","7.applications\u002F1.ai-agents\u002F01.overview",{"title":318,"path":319,"stem":320},"GitHub App automation","\u002Fapplications\u002Fai-agents\u002Fgithub-app-automation","7.applications\u002F1.ai-agents\u002F04.github-app-automation",{"title":322,"path":323,"stem":324},"agent-cli assistance","\u002Fapplications\u002Fai-agents\u002Fagent-cli-assistance","7.applications\u002F1.ai-agents\u002F05.agent-cli-assistance",{"title":326,"path":327,"stem":328},"Agent REST control","\u002Fapplications\u002Fai-agents\u002Frest-agent-control","7.applications\u002F1.ai-agents\u002F06.rest-agent-control",{"title":330,"visibility":251,"path":331,"stem":332,"children":333,"page":73},"Tickets","\u002Fapplications\u002Ftickets","7.applications\u002F2.tickets",[334,337],{"title":330,"path":335,"stem":336},"\u002Fapplications\u002Ftickets\u002Foverview","7.applications\u002F2.tickets\u002F01.overview",{"title":338,"path":339,"stem":340},"API walkthrough","\u002Fapplications\u002Ftickets\u002Fapi-walkthrough","7.applications\u002F2.tickets\u002F02.api-walkthrough",{"title":342,"icon":343,"visibility":251,"path":344,"stem":345,"children":346,"page":73},"Case studies","i-lucide-book-open-check","\u002Fapplications\u002Fcase-studies","7.applications\u002F6.case-studies",[347,351],{"title":348,"path":349,"stem":350},"Case study: owner-scoped tickets","\u002Fapplications\u002Fcase-studies\u002Ftickets","7.applications\u002F6.case-studies\u002F01.tickets",{"title":352,"path":353,"stem":354},"Case study: repository review and correction","\u002Fapplications\u002Fcase-studies\u002Frepository-review","7.applications\u002F6.case-studies\u002F02.repository-review",{"title":356,"icon":357,"redirect":358,"path":359,"stem":360,"children":361,"page":73},"Resources","i-lucide-library","\u002Fresources\u002Fglossary","\u002Fresources","9.resources",[362,365,369,373,377,380,384],{"title":363,"path":358,"stem":364},"Glossary","9.resources\u002F1.glossary",{"title":366,"path":367,"stem":368},"Terms of Service","\u002Fresources\u002Fterms","9.resources\u002F2.terms",{"title":370,"path":371,"stem":372},"Privacy Policy","\u002Fresources\u002Fprivacy","9.resources\u002F3.privacy",{"title":374,"path":375,"stem":376},"Acceptable Use Policy","\u002Fresources\u002Facceptable-use","9.resources\u002F4.acceptable-use",{"title":79,"path":378,"stem":379},"\u002Fresources\u002Ffaq","9.resources\u002F5.faq",{"title":381,"path":382,"stem":383},"Documentation feedback","\u002Fresources\u002Fdocs-feedback","9.resources\u002F6.docs-feedback",{"title":385,"path":386,"stem":387},"Refund and Cancellation Policy","\u002Fresources\u002Frefund-cancellation","9.resources\u002F7.refund-cancellation",{"id":389,"title":390,"access":391,"audience":392,"body":393,"description":994,"extension":995,"last_verified":996,"links":997,"maturity":998,"meta":999,"navigation":1001,"path":133,"seo":1002,"stem":134,"__hash__":1003},"docs\u002F10.cookbook\u002F6.mcp-query-data.md","Connect an MCP client and query your data","api-key","developer",{"type":394,"value":395,"toc":986},"minimark",[396,401,405,409,436,441,445,448,508,515,658,680,830,834,837,942,946,974,978,982],[397,398,400],"h2",{"id":399},"goal","Goal",[402,403,404],"p",{},"Connect an external MCP client to your Redgold datasets and run a read-only query, without writing any integration code.",[397,406,408],{"id":407},"prerequisites","Prerequisites",[410,411,412,430,433],"ul",{},[413,414,415,416,420,421,424,425,429],"li",{},"An ",[417,418,419],"code",{},"sk-rg-"," key in ",[417,422,423],{},"REDGOLD_API_KEY"," (see ",[426,427,428],"a",{"href":117},"Create an API key",").",[413,431,432],{},"An MCP client that speaks streamable HTTP (Claude Code is used below).",[413,434,435],{},"At least one dataset owned by your account.",[437,438,440],"note",{"icon":439},"i-lucide-flask-conical","The tenant MCP endpoint is a preview surface. Confirm availability for your account before wiring it into an automation.",[397,442,444],{"id":443},"steps","Steps",[402,446,447],{},"Add the server to Claude Code, sending the key as a bearer header:",[449,450,455],"pre",{"className":451,"code":452,"language":453,"meta":454,"style":454},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","claude mcp add --transport http redgold https:\u002F\u002Fapi.redgold.ai\u002Fapi\u002Fmcp \\\n  --header \"Authorization: Bearer $REDGOLD_API_KEY\"\n","bash","",[417,456,457,489],{"__ignoreMap":454},[458,459,462,466,470,473,476,479,482,485],"span",{"class":460,"line":461},"line",1,[458,463,465],{"class":464},"sBMFI","claude",[458,467,469],{"class":468},"sfazB"," mcp",[458,471,472],{"class":468}," add",[458,474,475],{"class":468}," --transport",[458,477,478],{"class":468}," http",[458,480,481],{"class":468}," redgold",[458,483,484],{"class":468}," https:\u002F\u002Fapi.redgold.ai\u002Fapi\u002Fmcp",[458,486,488],{"class":487},"sTEyZ"," \\\n",[458,490,492,495,499,502,505],{"class":460,"line":491},2,[458,493,494],{"class":468},"  --header",[458,496,498],{"class":497},"sMK4o"," \"",[458,500,501],{"class":468},"Authorization: Bearer ",[458,503,504],{"class":487},"$REDGOLD_API_KEY",[458,506,507],{"class":497},"\"\n",[402,509,510,511,514],{},"Or add it to ",[417,512,513],{},".mcp.json"," directly:",[449,516,520],{"className":517,"code":518,"language":519,"meta":454,"style":454},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mcpServers\": {\n    \"redgold\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Fapi.redgold.ai\u002Fapi\u002Fmcp\",\n      \"headers\": { \"Authorization\": \"Bearer sk-rg-...\" }\n    }\n  }\n}\n","json",[417,521,522,527,545,560,584,605,640,646,652],{"__ignoreMap":454},[458,523,524],{"class":460,"line":461},[458,525,526],{"class":497},"{\n",[458,528,529,532,536,539,542],{"class":460,"line":491},[458,530,531],{"class":497},"  \"",[458,533,535],{"class":534},"spNyl","mcpServers",[458,537,538],{"class":497},"\"",[458,540,541],{"class":497},":",[458,543,544],{"class":497}," {\n",[458,546,548,551,554,556,558],{"class":460,"line":547},3,[458,549,550],{"class":497},"    \"",[458,552,553],{"class":464},"redgold",[458,555,538],{"class":497},[458,557,541],{"class":497},[458,559,544],{"class":497},[458,561,563,566,570,572,574,576,579,581],{"class":460,"line":562},4,[458,564,565],{"class":497},"      \"",[458,567,569],{"class":568},"sbssI","type",[458,571,538],{"class":497},[458,573,541],{"class":497},[458,575,498],{"class":497},[458,577,578],{"class":468},"http",[458,580,538],{"class":497},[458,582,583],{"class":497},",\n",[458,585,587,589,592,594,596,598,601,603],{"class":460,"line":586},5,[458,588,565],{"class":497},[458,590,591],{"class":568},"url",[458,593,538],{"class":497},[458,595,541],{"class":497},[458,597,498],{"class":497},[458,599,600],{"class":468},"https:\u002F\u002Fapi.redgold.ai\u002Fapi\u002Fmcp",[458,602,538],{"class":497},[458,604,583],{"class":497},[458,606,608,610,613,615,617,620,622,626,628,630,632,635,637],{"class":460,"line":607},6,[458,609,565],{"class":497},[458,611,612],{"class":568},"headers",[458,614,538],{"class":497},[458,616,541],{"class":497},[458,618,619],{"class":497}," {",[458,621,498],{"class":497},[458,623,625],{"class":624},"swJcz","Authorization",[458,627,538],{"class":497},[458,629,541],{"class":497},[458,631,498],{"class":497},[458,633,634],{"class":468},"Bearer sk-rg-...",[458,636,538],{"class":497},[458,638,639],{"class":497}," }\n",[458,641,643],{"class":460,"line":642},7,[458,644,645],{"class":497},"    }\n",[458,647,649],{"class":460,"line":648},8,[458,650,651],{"class":497},"  }\n",[458,653,655],{"class":460,"line":654},9,[458,656,657],{"class":497},"}\n",[402,659,660,661,664,665,668,669,672,673,675,676,679],{},"Every tool call is scoped server-side to the account behind the key. List your datasets with ",[417,662,663],{},"list_storage_datasets",", inspect columns with ",[417,666,667],{},"query_schema",", then run read-only SQL with ",[417,670,671],{},"query_data",". In the tenant profile ",[417,674,671],{}," requires a ",[417,677,678],{},"dataset"," argument — it never falls back to \"the first loaded dataset\", so a query can only touch data you own:",[449,681,683],{"className":517,"code":682,"language":519,"meta":454,"style":454},"{\n  \"jsonrpc\": \"2.0\", \"id\": 2, \"method\": \"tools\u002Fcall\",\n  \"params\": {\n    \"name\": \"query_data\",\n    \"arguments\": { \"dataset\": \"tenant\u002Facme\u002Fprices\", \"sql\": \"SELECT symbol, close FROM prices ORDER BY ts DESC LIMIT 5\" }\n  }\n}\n",[417,684,685,689,742,755,774,822,826],{"__ignoreMap":454},[458,686,687],{"class":460,"line":461},[458,688,526],{"class":497},[458,690,691,693,696,698,700,702,705,707,710,712,715,717,719,722,724,726,729,731,733,735,738,740],{"class":460,"line":491},[458,692,531],{"class":497},[458,694,695],{"class":534},"jsonrpc",[458,697,538],{"class":497},[458,699,541],{"class":497},[458,701,498],{"class":497},[458,703,704],{"class":468},"2.0",[458,706,538],{"class":497},[458,708,709],{"class":497},",",[458,711,498],{"class":497},[458,713,714],{"class":534},"id",[458,716,538],{"class":497},[458,718,541],{"class":497},[458,720,721],{"class":568}," 2",[458,723,709],{"class":497},[458,725,498],{"class":497},[458,727,728],{"class":534},"method",[458,730,538],{"class":497},[458,732,541],{"class":497},[458,734,498],{"class":497},[458,736,737],{"class":468},"tools\u002Fcall",[458,739,538],{"class":497},[458,741,583],{"class":497},[458,743,744,746,749,751,753],{"class":460,"line":547},[458,745,531],{"class":497},[458,747,748],{"class":534},"params",[458,750,538],{"class":497},[458,752,541],{"class":497},[458,754,544],{"class":497},[458,756,757,759,762,764,766,768,770,772],{"class":460,"line":562},[458,758,550],{"class":497},[458,760,761],{"class":464},"name",[458,763,538],{"class":497},[458,765,541],{"class":497},[458,767,498],{"class":497},[458,769,671],{"class":468},[458,771,538],{"class":497},[458,773,583],{"class":497},[458,775,776,778,781,783,785,787,789,791,793,795,797,800,802,804,806,809,811,813,815,818,820],{"class":460,"line":586},[458,777,550],{"class":497},[458,779,780],{"class":464},"arguments",[458,782,538],{"class":497},[458,784,541],{"class":497},[458,786,619],{"class":497},[458,788,498],{"class":497},[458,790,678],{"class":568},[458,792,538],{"class":497},[458,794,541],{"class":497},[458,796,498],{"class":497},[458,798,799],{"class":468},"tenant\u002Facme\u002Fprices",[458,801,538],{"class":497},[458,803,709],{"class":497},[458,805,498],{"class":497},[458,807,808],{"class":568},"sql",[458,810,538],{"class":497},[458,812,541],{"class":497},[458,814,498],{"class":497},[458,816,817],{"class":468},"SELECT symbol, close FROM prices ORDER BY ts DESC LIMIT 5",[458,819,538],{"class":497},[458,821,639],{"class":497},[458,823,824],{"class":460,"line":607},[458,825,651],{"class":497},[458,827,828],{"class":460,"line":642},[458,829,657],{"class":497},[397,831,833],{"id":832},"expected-output","Expected output",[402,835,836],{},"The result comes back as MCP text content:",[449,838,840],{"className":517,"code":839,"language":519,"meta":454,"style":454},"{ \"jsonrpc\": \"2.0\", \"id\": 2, \"result\": { \"content\": [ { \"type\": \"text\", \"text\": \"\u003Cquery result rows>\" } ] } }\n",[417,841,842],{"__ignoreMap":454},[458,843,844,847,849,851,853,855,857,859,861,863,865,867,869,871,873,875,877,880,882,884,886,888,891,893,895,898,900,902,904,906,908,910,913,915,917,919,921,923,925,927,930,932,935,938,940],{"class":460,"line":461},[458,845,846],{"class":497},"{",[458,848,498],{"class":497},[458,850,695],{"class":534},[458,852,538],{"class":497},[458,854,541],{"class":497},[458,856,498],{"class":497},[458,858,704],{"class":468},[458,860,538],{"class":497},[458,862,709],{"class":497},[458,864,498],{"class":497},[458,866,714],{"class":534},[458,868,538],{"class":497},[458,870,541],{"class":497},[458,872,721],{"class":568},[458,874,709],{"class":497},[458,876,498],{"class":497},[458,878,879],{"class":534},"result",[458,881,538],{"class":497},[458,883,541],{"class":497},[458,885,619],{"class":497},[458,887,498],{"class":497},[458,889,890],{"class":464},"content",[458,892,538],{"class":497},[458,894,541],{"class":497},[458,896,897],{"class":497}," [",[458,899,619],{"class":497},[458,901,498],{"class":497},[458,903,569],{"class":568},[458,905,538],{"class":497},[458,907,541],{"class":497},[458,909,498],{"class":497},[458,911,912],{"class":468},"text",[458,914,538],{"class":497},[458,916,709],{"class":497},[458,918,498],{"class":497},[458,920,912],{"class":568},[458,922,538],{"class":497},[458,924,541],{"class":497},[458,926,498],{"class":497},[458,928,929],{"class":468},"\u003Cquery result rows>",[458,931,538],{"class":497},[458,933,934],{"class":497}," }",[458,936,937],{"class":497}," ]",[458,939,934],{"class":497},[458,941,639],{"class":497},[397,943,945],{"id":944},"when-it-breaks","When it breaks",[410,947,948,962],{},[413,949,950,951,954,955,958,959,961],{},"A JSON-RPC error ",[417,952,953],{},"unauthenticated: no verified caller"," — the key did not resolve to an account. Confirm the ",[417,956,957],{},"Authorization: Bearer"," header carries a valid ",[417,960,419],{}," key.",[413,963,964,967,968,970,971,973],{},[417,965,966],{},"Error: dataset '...' is not owned by the caller"," — the ",[417,969,678],{}," argument names a dataset outside your namespace. Use one from ",[417,972,663],{},".",[397,975,977],{"id":976},"source","Source",[402,979,980,973],{},[426,981,221],{"href":222},[983,984,985],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":454,"searchDepth":491,"depth":491,"links":987},[988,989,990,991,992,993],{"id":399,"depth":491,"text":400},{"id":407,"depth":491,"text":408},{"id":443,"depth":491,"text":444},{"id":832,"depth":491,"text":833},{"id":944,"depth":491,"text":945},{"id":976,"depth":491,"text":977},"Attach Claude Code (or any MCP client) to the tenant MCP endpoint and run read-only SQL against a dataset you own.","md","2026-08-10",null,"preview",{"toc":1000,"visibility":251},true,{"title":132},{"title":390,"description":994},"Hx2dNsEYLcx7AoSVMZO9PicTyk6BnuC6qVtWOFyUXk0",[1005,1007],{"title":128,"path":129,"stem":130,"description":1006,"children":-1},"Read \u002Fv1\u002Fcredits so a long run does not fail partway through on a 402.",{"title":136,"path":137,"stem":138,"description":1008,"children":-1},"Spawn an agent session and send it a prompt through the approval-gated MCP agent tools, then poll the result.",1789873213246]