Skip to main content

Connecting to the Studio MCP

Synced from bicycle-studio-api

Source: 01-mcp-connection.md in the local directory context-collection (not yet on origin/platform), synced 2026-09-26. Do not edit this page here; change the source and run yarn sync:studio.

URLs (preview)​

URLCarries
https://preview.bicycle.ai/mcpevery enabled toolset except chat
https://preview.bicycle.ai/mcp/<toolset>one toolset: dataapp, query, design, analysis, workflow, agent, functions, function, notebook, chat

Prod is https://app.bicycle.ai/.... Build and test on preview.

Every path answers 401 with resource_metadata=https://preview.bicycle.ai/.well-known/oauth-protected-resource/mcp. Studio's MCP is stateless: each POST is its own connection. Long work returns an id at once and you poll (functions_result, workflow_run_describe, agent_result, analysis_result); fn_* calls stream progress when the client sends a progressToken.

Two ways to authenticate​

OAuth (Claude desktop connector, claude mcp add without a header)Platform API token
HowAuthorization server https://preview.bicycle.ai/api/oauth (authorization code + PKCE S256, Client ID Metadata Documents; no dynamic client registration)a person creates a token (role API) in Bicycle, then claude mcp add --transport http bicycle-preview https://preview.bicycle.ai/mcp --header "Authorization: Bearer $TOKEN"
Scopes todayapps:read apps:write apps:publish onlyeditor scopes including functions:*
You seedataapp_*, query_*, design_*, analysis_*, workflow_*, agent_*, notebook_*all of those plus function_*, functions_result, fn_*, wf_*

If you see no function_* or fn_* tools, you are on OAuth. The OAuth consent does not offer the functions:* scopes yet (pending decision, MCP-GITHUB-CHANGES.md Rank 1). Tell the person; do not try other routes.

tools/list is filtered per caller: a tool whose scope you lack is not listed, and the same scope is checked again when you call it.

Scopes​

ScopeLets you
apps:readread apps, run queries, read workflows, run Detect and Explain and registered agents (as you)
apps:writecreate apps and versions, create/patch/run workflows, schedules for others
apps:publishpublish apps and workflows (gated changes still need a person)
functions:read / functions:write / functions:publishlist, author and test, publish functions (widening publishes need a person)
functions:invokecall fn_* / wf_* tools, read results

Toolsets at a glance​

ToolsetPrefixFor
dataappdataapp_create, upload, validate, publish, share apps; schedules; ask an app's chat; dataapp_sdk (landing)
queryquery_the semantic catalog and cache-only semantic SQL
designdesign_compose an app from a spec by interview (skill studio://skill/ask-show-ship)
functionfunction_author, validate, test, publish functions (all kinds)
functionsfn_<name>, wf_<slug>, functions_resultcall published functions and workflows exposed to MCP
workflowworkflow_build, plan, publish, run workflows (skill studio://skill/workflow)
agentagent_run registered Bicycle agents (e.g. cause) and read results; agent functions are called as fn_<name>
analysisanalysis_ad hoc Detect and Explain
notebooknotebook_notebooks (not needed for data apps)
chatfn_<local>, chat_resultwhat a chat may call; used by Bicycle's own chat agents, not by you

Entry points today: resources studio://skill/ask-show-ship, studio://skill/semantic-query, studio://skill/workflow, studio://skill/notebook, studio://recipes, studio://templates; prompts design-data-app, build-workflow, build-notebook; tools workflow_guide, notebook_guide. There is no single start-here entry yet (Rank 3).