MCP
MCP servers your repository declares: which agents may use each one, its approved tools and its credential.
curl -X GET "https://example.com/mcp/projects/string"{ "projectId": "string", "configPath": "string", "configPathSource": "ship.yml", "configRef": "string", "configStatus": "ok", "configError": "string", "warnings": [ "string" ], "servers": [ { "name": "string", "declared": { "name": "string", "transport": "http", "origin": "string", "path": "string", "command": "string", "displayArgs": [ "string" ], "headerNames": [ "string" ], "envNames": [ "string" ], "secretRefs": [ "string" ], "isolation": { "kind": "remote", "packageSpec": "string", "reason": "python" } }, "binding": { "transport": "remote", "status": "ready", "statusDetail": "string", "roles": [ "planner" ], "authKind": "none", "pinnedUrl": "string", "packageSpec": "string", "allowedEgressHosts": [ "string" ], "credentialFields": [ "string" ], "toolSnapshot": [ { "name": "string", "title": "string", "description": "string", "readOnlyHint": true, "destructiveHint": true } ], "approvedTools": [ { "name": "string", "attestedReadOnly": true } ], "toolsRefreshedAt": 0, "effectiveToolCounts": { "planner": 0, "builder": 0, "reviewer": 0, "qa": 0 }, "createdAt": 0, "updatedAt": 0 } } ]}Path Parameters
1 <= lengthRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/mcp/projects/string" \ -H "Content-Type: application/json" \ -d '{ "configPath": "string" }'{ "projectId": "string", "configPath": "string", "configPathSource": "ship.yml", "configRef": "string", "configStatus": "ok", "configError": "string", "warnings": [ "string" ], "servers": [ { "name": "string", "declared": { "name": "string", "transport": "http", "origin": "string", "path": "string", "command": "string", "displayArgs": [ "string" ], "headerNames": [ "string" ], "envNames": [ "string" ], "secretRefs": [ "string" ], "isolation": { "kind": "remote", "packageSpec": "string", "reason": "python" } }, "binding": { "transport": "remote", "status": "ready", "statusDetail": "string", "roles": [ "planner" ], "authKind": "none", "pinnedUrl": "string", "packageSpec": "string", "allowedEgressHosts": [ "string" ], "credentialFields": [ "string" ], "toolSnapshot": [ { "name": "string", "title": "string", "description": "string", "readOnlyHint": true, "destructiveHint": true } ], "approvedTools": [ { "name": "string", "attestedReadOnly": true } ], "toolsRefreshedAt": 0, "effectiveToolCounts": { "planner": 0, "builder": 0, "reviewer": 0, "qa": 0 }, "createdAt": 0, "updatedAt": 0 } } ]}Path Parameters
1 <= length^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$Response Body
application/json
application/json
application/json
curl -X DELETE "https://example.com/mcp/projects/string/servers/string"{ "deleted": true}Path Parameters
1 <= length^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/mcp/projects/string/servers/string" \ -H "Content-Type: application/json" \ -d '{ "roles": [ "planner" ] }'{ "transport": "remote", "status": "ready", "statusDetail": "string", "roles": [ "planner" ], "authKind": "none", "pinnedUrl": "string", "packageSpec": "string", "allowedEgressHosts": [ "string" ], "credentialFields": [ "string" ], "toolSnapshot": [ { "name": "string", "title": "string", "description": "string", "readOnlyHint": true, "destructiveHint": true } ], "approvedTools": [ { "name": "string", "attestedReadOnly": true } ], "toolsRefreshedAt": 0, "effectiveToolCounts": { "planner": 0, "builder": 0, "reviewer": 0, "qa": 0 }, "createdAt": 0, "updatedAt": 0}Path Parameters
1 <= length^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/mcp/projects/string/servers/string/tools/refresh"{ "transport": "remote", "status": "ready", "statusDetail": "string", "roles": [ "planner" ], "authKind": "none", "pinnedUrl": "string", "packageSpec": "string", "allowedEgressHosts": [ "string" ], "credentialFields": [ "string" ], "toolSnapshot": [ { "name": "string", "title": "string", "description": "string", "readOnlyHint": true, "destructiveHint": true } ], "approvedTools": [ { "name": "string", "attestedReadOnly": true } ], "toolsRefreshedAt": 0, "effectiveToolCounts": { "planner": 0, "builder": 0, "reviewer": 0, "qa": 0 }, "createdAt": 0, "updatedAt": 0}Response Body
application/json
application/json
curl -X GET "https://example.com/mcp/bindings"{ "bindings": [ { "projectId": "string", "projectName": "string", "serverName": "string", "transport": "remote", "status": "ready", "statusDetail": "string", "roles": [ "planner" ], "authKind": "none", "credentialFields": [ "string" ], "updatedAt": 0 } ]}Path Parameters
1 <= length^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/mcp/projects/string/servers/string/oauth/start" \ -H "Content-Type: application/json" \ -d '{}'{ "authorizeUrl": "string", "expiresAt": 0}Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/mcp/oauth/complete" \ -H "Content-Type: application/json" \ -d '{ "code": "string", "state": "stringstringstri" }'{ "projectId": "string", "serverName": "string", "returnTo": "string"}How is this page?