Search DevTools

Jump to any tool or page

CloudCrane workspace

Read and build a CloudCrane workspace: datasets, field contracts, review queue, receipts, runs.

cloudcrane-dev0 stars0 forksDesign & UX
View source

Install

mcp_config.json

{
  "mcpServers": {
    "ai-cloudcrane-workspace": {
      "url": "https://cloudcrane.ai/api/build/mcp",
      "type": "streamable-http"
    }
  }
}

Documentation

CloudCrane MCP

Connect your AI agent to CloudCrane over MCP.

In Claude: find CloudCrane in the connectors directory and connect.

CloudCrane turns a messy catalog into data an agent can be trusted with. Rules run before any model, the model may only answer from values you allowed, and every value carries a receipt saying how it was decided. Safety exclusions are enforced in the database query, so a record whose value is unknown is left out rather than assumed safe.

There are two MCP endpoints. Both speak Streamable HTTP (stateless, no SSE stream).

EndpointSigns in withWhat it opens
https://cloudcrane.ai/api/build/mcpYour CloudCrane account (OAuth), or a build key cc_build_…Your workspace, for your own agent while you build
https://cloudcrane.ai/api/mcp/<tool>A tool key cc_live_…One deployed tool, for your end users' agents

The workspace MCP

Let your own agent read what you are building and, if you allow it, help build it.

Connect with OAuth

In an MCP client that supports OAuth sign-in, add the URL with no key:

https://cloudcrane.ai/api/build/mcp

The client opens a CloudCrane page where a workspace owner picks the workspace and what the agent may do, then signs you in. Or install it from Smithery.

Tested with Claude, ChatGPT, Cursor, Cline and Smithery. Exact settings for each are in llms-install.md, which an agent can follow to set it up.

Claude: connect from the connectors directory, or Settings → Connectors → Add custom connector with the URL above, keeping Sign in now and Register automatically.

ChatGPT: add a custom MCP server with the URL above and choose OAuth.

Cursor (~/.cursor/mcp.json):

{ "mcpServers": { "cloudcrane": { "url": "https://cloudcrane.ai/api/build/mcp" } } }

Cline (cline_mcp_settings.json):

{ "mcpServers": { "cloudcrane": { "transport": { "type": "streamableHttp", "url": "https://cloudcrane.ai/api/build/mcp" } } } }

The page shows where it will send you back before anything else, because an app's name is only what it calls itself. It starts on read only. Each app you approve shows up in the dashboard under Developers, where you can revoke it.

Or with a build key

For a client without OAuth, an owner makes a build key under Developers and sends it as a header:

claude mcp add --transport http cloudcrane https://cloudcrane.ai/api/build/mcp \
  --header "Authorization: Bearer $CLOUDCRANE_BUILD_KEY"

What it can do

Every connection reads (17 tools): list_datasets, get_dataset, list_contracts, get_readiness, list_review_items, get_receipts, list_value_sets and get_run to find its way around; list_tools, list_scenarios, get_tool_insights, list_drift_alerts, get_usage and get_next_actions to watch what is deployed and what needs doing; list_approvals, get_approval and list_events to follow up. They run inside a read-only database transaction.

A connection allowed to build also gets 13: create_dataset, create_field, update_field, create_value_set, import_value_set_version, start_run, publish_release and request_approval to build; deploy_tool, update_tool, create_tool_key, create_scenario and run_scenarios to put it in front of users. Each goes through the same checks as the dashboard, is recorded as made by that connection, and is marked as changing data, so clients such as Claude ask you before each call.

What no connection can do: publish past the accuracy gate, decide a review item, edit a stored value, withhold a record, delete anything, or remove a value from a safety field. Those stay with a person, because a receipt names who decided.

Imported record contents stay hidden unless the owner turns them on. The workspace MCP is included in every CloudCrane plan, Free too.

Full reference: cloudcrane.ai/docs/build-mcp.

A deployed tool

Each tool you deploy is its own MCP server. Your agent sees search_<tool> and get_<tool>, plus find_values when the tool has value set fields. Their input schema is generated from your contracts, so the agent picks values from an enum of your list and cannot ask for one you never defined.

Claude Code

claude mcp add --transport http catalog https://cloudcrane.ai/api/mcp/catalog \
  --header "Authorization: Bearer $CLOUDCRANE_TOOL_KEY"

Claude Desktop, Cursor, Windsurf

{
  "mcpServers": {
    "catalog": {
      "url": "https://cloudcrane.ai/api/mcp/catalog",
      "headers": { "Authorization": "Bearer cc_live_..." }
    }
  }
}

Some clients call the block servers instead of mcpServers, and some want "type": "http" next to the url.

  • n8n: MCP Client Tool node, transport HTTP Streamable, Bearer authentication.
  • LangChain: MultiServerMCPClient with transport streamable_http and a headers dict.
  • OpenAI Agents SDK: MCPServerStreamableHttp with the url and headers.

The same tool also answers plain REST at POST /api/v1/tools/<tool>/search. Full reference: cloudcrane.ai/docs/deploy.

Things that look like a broken server

  • 406: MCP requires Accept: application/json, text/event-stream on every POST, even though these endpoints never send a stream.
  • 405 on GET: the endpoints are stateless and offer no SSE stream, so only POST is allowed. A client that silently falls back to SSE connects but lists no tools.
  • 403 on the workspace MCP: it opens a whole workspace, so a request from a browser (any request with an Origin header) is refused. Call it from a server or a desktop client.

Links

This repository holds documentation and the registry entry (server.json), not the server's source.

Sourced from the repository README.

More in Design & UX