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:
- Mints a fresh API key on your account, named
Cursor MCP (YYYY-MM-DD). - 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.
| Tool | Type | Purpose |
|---|---|---|
list_projects | Read | List projects you can access |
get_project | Read | Fetch a single project |
create_project | Destructive | Create a new project |
delete_project | Destructive | Delete an empty project |
list_buckets | Read | List buckets in a project |
get_bucket | Read | Fetch a single bucket |
create_bucket | Destructive | Provision a managed Wasabi bucket |
delete_bucket | Destructive | Tear down a bucket and its IAM user. All stored objects are lost. |
list_bucket_objects | Read | List one page of S3 objects under a prefix |
list_mounts | Read | List mounts in a project |
get_mount | Read | Fetch a single mount |
create_mount | Destructive | Spin up a regional mount (NFS / SMB / agent) |
update_mount | Destructive | Set desired status (running / stopped) |
delete_mount | Destructive | Stop the gateway and remove the mount record |
get_usage | Read | Storage 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:
| URI | Returns |
|---|---|
tp://projects | All projects you can access |
tp://projects/{project_id} | One project |
tp://projects/{project_id}/buckets | Buckets in a project |
tp://projects/{project_id}/mounts | Mounts 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 manualmcp.jsonsnippet above.