Docs

MCP server

Training Pipes ships an MCP server so AI-native editors like Cursor can manage your projects, buckets, and mounts directly. Once installed, you can ask the agent to provision a bucket, list objects, stop a mount, or pull a usage report without leaving your editor.

The endpoint is https://api.trainingpipes.com/v1/mcp and speaks Streamable HTTP with JSON-RPC. Auth reuses the same bearer tokens as the REST API (see Authentication).

Install in Cursor (one click)

From your dashboard, open Settings → Editor integration and click Add to Cursor. This:

  1. Mints a fresh API key on your account, named Cursor MCP (YYYY-MM-DD).
  2. Opens a cursor:// deeplink that registers the Training Pipes MCP server in Cursor with that key pre-filled.

You can revoke the key any time from Settings → API Keys.

Install manually

If the deeplink can't reach Cursor (different machine, headless shell, etc.), add the server to ~/.cursor/mcp.json directly:

{
  "mcpServers": {
    "training-pipes": {
      "url": "https://api.trainingpipes.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}

Generate an API key from Settings → API Keys → Create API Key and paste it in place of <YOUR_API_KEY>. Restart or reload Cursor to pick up the new server.

What you can do

The server exposes 15 tools and 6 resources. Tools take action; resources return live data you can @-reference inline.

Tools

Read-only tools are safe to call without confirmation. Tools marked destructive provision or delete real cloud resources — Cursor will prompt for confirmation before invoking them.

ToolTypePurpose
list_projectsReadList projects you can access
get_projectReadFetch a single project
create_projectDestructiveCreate a new project
delete_projectDestructiveDelete an empty project
list_bucketsReadList buckets in a project
get_bucketReadFetch a single bucket
create_bucketDestructiveProvision a managed Wasabi bucket
delete_bucketDestructiveTear down a bucket and its IAM user. All stored objects are lost.
list_bucket_objectsReadList one page of S3 objects under a prefix
list_mountsReadList mounts in a project
get_mountReadFetch a single mount
create_mountDestructiveSpin up a regional mount (NFS / SMB / agent)
update_mountDestructiveSet desired status (running / stopped)
delete_mountDestructiveStop the gateway and remove the mount record
get_usageReadStorage and mount-hours over a window

Resources

Resources let editors pull live state into context. In Cursor, type @ in chat and search for one of these URIs:

URIReturns
tp://projectsAll projects you can access
tp://projects/{project_id}One project
tp://projects/{project_id}/bucketsBuckets in a project
tp://projects/{project_id}/mountsMounts in a project
tp://buckets/{bucket_id}One bucket including S3 endpoint and access key
tp://mounts/{mount_id}One mount including export endpoints

Authentication

The MCP endpoint accepts the same bearer tokens as the REST API:

  • API keys (tp_…) — what the “Add to Cursor” button mints. Long-lived, revocable from the dashboard.
  • Clerk session JWTs — used by the dashboard. Not appropriate for editor integrations because they expire on the order of minutes.

Tokens are scoped to a single user. Tools that act on a project or bucket id will only succeed if you're a member of that project.

Safety and confirmations

Every tool that creates, updates, or deletes resources carries a destructiveHint annotation. Cursor reads these annotations and will surface a confirmation prompt before invoking the tool. We recommend leaving auto-run disabled for the destructive set.

If a tool fails (for example, deleting a project that still contains buckets), it returns a structured error and makes no partial changes.

Other clients

Any client that speaks Streamable HTTP MCP works. Claude Desktop, Continue, and Zed all support remote MCP servers — point them at https://api.trainingpipes.com/v1/mcp with the same bearer token.

Troubleshooting

  • 401 Unauthorized — your API key was revoked or never set. Mint a new one from the dashboard.
  • Tools missing in Cursor — toggle the server off and on under Settings → Features → Model Context Protocol to reload.
  • Deeplink didn't open Cursor — install Cursor (it registers the cursor:// protocol handler) or copy the manual mcp.json snippet above.