---
title: "Publish an owner edit"
method: PATCH
path: "/api/v1/mcp-directory/servers/{id}"
tags: ["mcp-directory"]
---

# Publish an owner edit

`PATCH /api/v1/mcp-directory/servers/{id}`

## Request

- Base URL: `https://koskamo.com`
- URL: `https://koskamo.com/api/v1/mcp-directory/servers/{id}`
- Auth: HTTP bearer

Send only the fields to change (plus an optional note); they are merged over the listing and validated. With a verified, non-lapsed proof the edit publishes at once; changing the endpoint, access, or documentation re-runs the live check first (422 and no change on failure). Moving the endpoint to a host the proof does not cover, or editing a hidden listing, is queued for review (202). Owners cannot hide, unhide, rename the id, or delete. Rate limit: 30 requests per minute per IP.

## Path parameters

- `id` string, required

## Request body

- object
  - `id` string: Page id; the listing lives at /explore/{id}
  - `name` string
  - `operator` string: Company that runs the server
  - `endpoint` string, uri: Streamable HTTP endpoint, https
  - `category` 'docs-reference' | 'developer-tools' | 'cloud-infrastructure' | 'data-analytics' | 'ai-ml' | 'commerce' | 'payments' | 'productivity' | 'project-management' | 'crm-marketing' | 'design'
  - `auth` 'none' | 'oauth-optional' | 'oauth' | 'api-key'
  - `description` string
  - `useCases` string[]
  - `requirements` string[]: Optional prerequisites a user must already have (vendor account, subscription, issued key), beyond endpoint sign-in
  - `docsUrl` string, uri: Your documentation page for this server
  - `companyUrl` string: Optional https company website; an empty string clears it on edits
  - `tools` string[]: Replaced by the live tool list on every passing check
  - `note` string

## Response `200`

Published

- object
  - `status` 'published'
  - `server` object

## Other responses

- `202`: Queued for review
- `400`: Invalid fields
- `401`: Missing, wrong, or lapsed owner key for this listing
- `403`: Access denied (trusted ingress required)
- `404`: No listed server has this id
- `422`: The edited listing failed the live check; nothing changed
- `429`: Rate limited (30 requests per minute per IP)

---

[API](https://skmtc.dev/koskamo/apis/koskamo-agent-api.md) · [All operations](https://skmtc.dev/koskamo/apis/koskamo-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/koskamo/apis/koskamo-agent-api/revisions/c7761a377e7b?raw)
