Publishing
Project Structure
Your MCP server directory needs these files:
my-mcp-server/
├── package.json ← name, version, entry point
├── server.js ← your MCP server code
├── mcpm.json ← client config (recommended)
└── README.md ← docs for your users
package.json
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"my-awesome-mcp"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"version"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"1.0.0"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"description"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Does something amazing"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"main"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"server.js"</span>
<span class="hljs-punctuation">}</span>
mcpm.json (recommended)
This file tells MCP clients how to run your server. It maps directly to the mcpServers entry users paste into their client config:
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"mcp"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"transport"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"stdio"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"command"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"node"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"args"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"server.js"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"env"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"API_KEY"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"your-default-here"</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
| Field |
Description |
transport |
Protocol transport — almost always "stdio" |
command |
The command to run your server (node, python, uv, etc.) |
args |
Arguments passed to the command |
env |
Environment variables your server needs (API keys, etc.) |
Without mcpm.json, the registry falls back to npx -y <package-name> as the default client config.
Publish
<span class="hljs-built_in">cd</span> my-tool
mcpm-dev publish
Update
npm version patch
mcpm-dev publish
Delete
Visit your dashboard to manage packages.
Publishing
Project Structure
Your MCP server directory needs these files:
package.json
<span class="hljs-punctuation">{</span> <span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"my-awesome-mcp"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"version"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"1.0.0"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"description"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Does something amazing"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"main"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"server.js"</span> <span class="hljs-punctuation">}</span>mcpm.json (recommended)
This file tells MCP clients how to run your server. It maps directly to the
mcpServersentry users paste into their client config:<span class="hljs-punctuation">{</span> <span class="hljs-attr">"mcp"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"transport"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"stdio"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"command"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"node"</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"args"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"server.js"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span> <span class="hljs-attr">"env"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"API_KEY"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"your-default-here"</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span> <span class="hljs-punctuation">}</span>transport"stdio"commandnode,python,uv, etc.)argsenvWithout
mcpm.json, the registry falls back tonpx -y <package-name>as the default client config.Publish
<span class="hljs-built_in">cd</span> my-tool mcpm-dev publishUpdate
Delete
Visit your dashboard to manage packages.