Create Draft Listing
Create a new MCP listing.
Authorization and lifecycle rules differ by body.visibility:
private: owned by the caller; namespace must be unique among the caller's own private listings. Skips the review queue and is published immediately.org: requiresbody.org_idand caller membership in that organisation; namespace must be unique within the organisation. Skips the review queue and is published immediately.public(default): namespace must be globally unique; created inDRAFTstatus and must go throughsubmit_for_reviewbefore it becomes visible in the marketplace.
If body.initial_version is supplied, a matching McpVersion row
is created and marked as the latest version.
Returns: The newly created listing in draft/summary form.
Authorization
OAuth2AuthorizationCodeBearer AuthorizationBearer <token>
In: header
Query Parameters
verify_locally?Verify Locally
Default
trueRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/mcp" \ -H "Content-Type: application/json" \ -d '{ "title": "string", "namespace": "string", "short_description": "string", "transport": "string" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "namespace": "string", "visibility": "public", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "block_private_bundle_mixing": false, "title": "string", "short_description": "string", "status": "string", "transport": "string", "pricing": "string", "icon_bg_color": "string", "icon_text_color": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "category": { "id": 0, "name": "string", "slug": "string", "description": "string", "icon": "string", "mcp_count": 0 }}{ "detail": [ { "loc": [ "string" ], "msg": "string", "type": "string" } ]}