How to submit an MCP server to Kilo Marketplace

By Jonah EasePublished Last checked
An MCP server enters Kilo's marketplace as a folder with a single file in it, mcps/<id>/MCP.yaml. The file is both the listing and the install recipe: it holds the JSON config a Kilo user will paste, with a placeholder for every secret[1]. The marketplace also lists skills, agents and plugins, and the contributing guide covers those at more length than it covers MCP servers, so read the MCP section and no further[2].
One folder, one file
id: weather
name: Weather
description: Forecasts and alerts for any city.
author: example-user
url: https://github.com/example-user/weather-mcp
category: search
prerequisites:
- A Weather API key
content:
- name: NPX
prerequisites:
- Node.js
content: |
{
"command": "npx",
"args": ["-y", "weather-mcp"],
"env": { "WEATHER_API_KEY": "{{WEATHER_API_KEY}}" }
}
parameters:
- name: Weather API Key
key: WEATHER_API_KEY
placeholder: your_api_key_hereThe folder name is lowercase with hyphens and matches the id[1]. An existing entry is the easiest model to copy, since it shows two install options side by side[4].
The properties
| Property | Required | What it holds |
|---|---|---|
| id, name, description, author, url | Yes | The kebab-case id, a display name, what it provides, who wrote it, and the repository link. |
| category | Yes | One of business, data, development, observability, productivity, search or web-automation. |
| content | Yes | One or more install configurations, each a named block with its own prerequisites. |
| prerequisites, parameters | No | Software or accounts needed, and the values a user must fill in. |
| suggest_for, requirements, skills | No | When Kilo should suggest the server, what it depends on, and companion skills. |
The guide asks for a single best category and says to propose a new one only when several servers share a purpose that none of the seven fits[1].
A command or an address
A local server's content is a command with arguments and an env block. A remote one is a Streamable HTTP address, with headers if it needs a token. Give several install options when you can, such as NPX, Docker and UVX, each with its own prerequisites[1].
content: |
{
"type": "streamable-http",
"url": "https://weather.example.com/mcp",
"headers": { "Authorization": "Bearer {{API_TOKEN}}" }
}Credentials are always a placeholder such as {{API_TOKEN}}, listed under parameters, never a real value. Handling authentication through environment variables is one of the guide's four requirements for an MCP server[1].
Run the generator before you push
The catalog is generated from the folders. The guide's validation steps are run from bin/: install with pnpm, run the MCP marketplace generator, then the tests and the MCP type check[1]. Test the real endpoint in a client as well, since the generator only reads your YAML.
What gets sent back
- Editing the generated catalog.
mcps/marketplace.yamlsits beside the folders and is produced by the generator. The guide says not to edit generated catalogs by hand[1][3]. - An id that is not lowercase kebab-case, or that differs from its folder name; the template uses the same name for both. With companion skills, the id must also avoid reserved device names and names such as constructor and prototype[1].
- A category outside the seven.
- A secret written into the file. Use the placeholder and a parameter.
Doing it by hand
- Fork the repository and make
mcps/your-id/. - Write
MCP.yamlfrom the example above, with one install option per way to run the server. - Run the generator and tests from
bin/. - Open a pull request. The guide says contributions are accepted through pull requests.
Current status,
The mcps folder held 128 server folders on this date, plus the generated marketplace.yaml[3]. On the repository had 163 open pull requests[5].
How long merges took
1 outside pull request merged in the 90 days to : too few for a median. The merged pull requests are on GitHub.
| Window ending | Rolling median | Merges in window |
|---|
Measured . Pull requests merged on each list's GitHub repo, timed from opened to merged, read from GitHub's REST pulls list. Bot accounts ([bot]), the repo's owners, members and collaborators, and pull requests from a branch inside the list's own repo are left out. A past figure, not a promise. All 10 directories side by side: how long MCP directories take to merge.
Sources
- kilo-marketplace: CONTRIBUTING.md · checked
- kilo-marketplace: README · checked
- kilo-marketplace: the mcps folder · checked
- kilo-marketplace: mcps/brave-search/MCP.yaml, an existing entry · checked
- kilo-marketplace: open pull requests · checked
ManyCP is not affiliated with, endorsed by or sponsored by any directory, Docker, OpenAI, Anthropic or GitHub named here. Names are used to say which service a fact is about.
Or skip all of that
Or let ManyCP do it in one click
ManyCP forks Kilo-Org/kilo-marketplace, adds your entry in the exact format, and opens the pull request from your GitHub account. It tracks the PR until it is merged.