Overview
Connect an AI client to Data Hub over the Model Context Protocol, including OAuth sign-in, the read and write scopes, and per-client setup.
Data Hub exposes a Model Context Protocol (MCP) server at /mcp/v1 so AI clients can query instruments, runs, files, and watcher health. Clients authenticate by sending you through a browser sign-in.
Catalogs for tools, prompts, and resources are generated from the live server schema, so they match what your client discovers when it connects.
Authentication
The MCP server authenticates with OAuth. All you need to provide is the endpoint URL; for example, https://datahub.example.com/mcp/v1.
The first connection opens your browser:
Sign in to Data Hub with Google, unless you already have a session open.
Read the Authorize application screen. It names the client, the host it redirects to, and the access it’s asking for.
Click Allow.
Your client stores the access token it receives and renews it without asking again. Allow grants everything on the screen: there are no per-permission checkboxes, so click Deny if any line looks wrong.
Scopes
MCP uses two scopes rather than the <resource>:<action> scopes that gate REST requests:
read: required to connect at all, and covers every read-only tool, resource, and promptwrite: additionally required by tools that change something, including claiming runs, commenting, requesting uploads, reprocessing, and deleting
Most clients ask for both, because the server advertises both. A client granted only read still connects and still reads; its first mutating tool call fails with a message naming the missing scope.
Each entry in the tools catalog lists the scope its REST equivalent requires, which tells you what data the tool touches. Over MCP, only read and write are enforced.
Connect a client
Examples use https://datahub.example.com; substitute your deployment host.
Claude Code
Register the server with claude mcp add. Run this in your terminal, not inside a claude session:
claude mcp add --transport http --scope user data-hub https://datahub.example.com/mcp/v1Confirm that the server was added by running claude mcp list. Then, start a session with claude and run /mcp to authenticate.
Claude Desktop
Remote servers go through Settings → Connectors → Add custom connector. The claude_desktop_config.json file handles local servers only. Paste https://datahub.example.com/mcp/v1 as the URL, click Add, then click Connect to sign in. Leave the OAuth client fields under Advanced settings empty, since Data Hub registers clients on demand.
Claude reaches your server from Anthropic’s infrastructure rather than from your own machine, so the deployment has to be reachable from the public internet. A deployment running on localhost can’t be added this way; use Claude Code or Cursor for local work.
Cursor
Add the server to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project:
{
"mcpServers": {
"data-hub": {
"url": "https://datahub.example.com/mcp/v1"
}
}
}Open Settings → Tools & MCP. The server appears with a Needs authentication label; click it to start the browser flow. The tools show up once you approve the grant.
Other clients
Any client that speaks Streamable HTTP and the MCP authorization spec needs one setting, the URL https://datahub.example.com/mcp/v1. For local development, point at http://localhost:3000/mcp/v1 instead.
Clients that speak MCP but not OAuth can bridge through mcp-remote, which runs the browser flow on their behalf.
Machine-readable catalog
Fetch the same catalog these pages render from:
curl https://datahub.example.com/mcp/v1/schema.jsonIt lists every tool, prompt, and resource, with JSON Schema for arguments and each tool's response. The schema document needs no authentication.