---
title: "Submit a new MCP server listing"
method: POST
path: "/api/v1/submit"
---

# Submit a new MCP server listing

`POST /api/v1/submit`

## Request

- Base URL: `https://allmcps.com`
- URL: `https://allmcps.com/api/v1/submit`
- Auth: none declared

Programmatic submission — no CAPTCHA (unlike the human /submit form). Public, unauthenticated; requires a contact email in the body.

## Request body

- object
  - `name` string, required
  - `url` string, uri, required
  - `description` string, required
  - `category` string, required
  - `email` string, email, required
  - `tags` string[]
  - `license` string
  - `authType` 'none' | 'api_key' | 'oauth' | 'other'
  - `pricingModel` 'free' | 'freemium' | 'paid' | 'byok'
  - `maintenanceStatus` 'active' | 'stable' | 'experimental' | 'archived'
  - `compatibleClients` string[]
  - `supportUrl` string, uri

## Response `200`

Listing accepted; queued for review (status "pending" until claimed or manually approved).

- object
  - `success` boolean
  - `message` string
  - `id` string: Assigned listing ID.
  - `name` string
  - `url` string, uri
  - `category` string
  - `status` 'pending'
  - `claim_url` string, uri: Human ownership-verification page — verifying auto-approves the listing.
  - `badge_markdown` string: Ready-to-paste public README badge; earns a dofollow backlink once detected. It does not prove ownership — claiming uses the personalized badge from claim_url.

## Other responses

- `400`: Missing or invalid required fields.

---

[API](https://skmtc.dev/allmcps/apis/allmcps-directory-api.md) · [All operations](https://skmtc.dev/allmcps/apis/allmcps-directory-api/llms.txt) · [OpenAPI document](https://skmtc.dev/allmcps/apis/allmcps-directory-api/revisions/0a42338f0f1e?raw)
