Update Listing
Update an existing listing.
Authorization: caller must own the listing, or be an admin/owner of
the listing's organisation (enforced by _get_owned_listing);
returns 403 if neither, 404 if it does not exist.
Published public listings are immutable here - changes must go through a new version submission instead of a direct patch. Private and org-scoped listings remain directly editable after publishing since they skip the review queue entirely.
If this patch flips block_private_bundle_mixing from False to
True, every existing BundleEntry for this listing sitting in a
personal (non-org) bundle is deleted in the same transaction as the
field update - see BundleProvider.remove_from_personal_bundles.
Args: listing_id: UUID of the listing to update. body: Partial update; only fields explicitly set are applied.
Authorization
OAuth2AuthorizationCodeBearer In: header
Path Parameters
uuidQuery Parameters
trueRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "https://example.com/v1/mcp/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "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" } ]}