How to Publish Your First MCP Tool on mcpm
You've built an MCP server. Now share it with the world. This guide walks you through publishing to mcpm — the central registry for MCP tools.
Prerequisites
- Node.js 18+
- An MCP server project (even a minimal one)
- A GitHub account
- mcpm-dev CLI installed:
npm i -g mcpm-dev
Step 1: Prepare Your Project
Your project needs at minimum:
my-mcp-server/
├── package.json
├── README.md
└── index.js (or src/index.ts)
Your package.json should have at least name, version, and description:
{
"name": "my-weather-mcp",
"version": "1.0.0",
"description": "Get weather data for any city via MCP",
"main": "index.js"
}
Step 2: Write a Killer README
Your README is your storefront on mcpm.dev. Include:
- What the tool does (first paragraph — this becomes your description)
- Installation — how to install via mcpm
- Available tools — each MCP tool with parameters
- Examples — show real usage
# My Weather MCP
Get real-time weather data for any city worldwide.
## Install
\`\`\`bash
mcpm-dev add my-weather-mcp
\`\`\`
## Tools
### get_weather
| Parameter | Type | Description |
|-----------|------|-------------|
| city | string | City name |
| units | string | celsius or fahrenheit |
## Example
\`\`\`
> What's the weather in Tokyo?
Agent calls get_weather({ city: "Tokyo", units: "celsius" })
→ 22°C, partly cloudy
\`\`\`
Step 3: Authenticate
mcpm-dev login
Follow the browser prompt to authorize with GitHub.
Step 4: Publish
cd my-mcp-server
mcpm-dev publish
The CLI auto-detects your package.json, reads your README, and publishes to mcpm.dev. Your tool is now live at:
https://www.mcpm.dev/packages/my-weather-mcp
Step 5: Verify
mcpm-dev search "my weather"
mcpm-dev info my-weather-mcp
Pro Tips
- Semantic versioning:
mcpm-dev publish bumps the patch version by default. Use --major or --minor for breaking changes.
- Verified badge: After 100 weekly downloads, apply for verification at mcpm.dev/settings.
- Update your README: The CLI reads your README on every publish. Keep it fresh.
Troubleshooting
| Problem |
Solution |
| "Package name taken" |
Choose a unique name or namespace it: @yourname/tool |
| "Not authenticated" |
Run mcpm-dev login |
| "Invalid package.json" |
Ensure name and version are set |
Congratulations — you're an MCP publisher! 🎉
#MCP #Tutorial #Publishing #mcpm #DevTools
How to Publish Your First MCP Tool on mcpm
You've built an MCP server. Now share it with the world. This guide walks you through publishing to mcpm — the central registry for MCP tools.
Prerequisites
npm i -g mcpm-devStep 1: Prepare Your Project
Your project needs at minimum:
Your
package.jsonshould have at leastname,version, anddescription:{ "name": "my-weather-mcp", "version": "1.0.0", "description": "Get weather data for any city via MCP", "main": "index.js" }Step 2: Write a Killer README
Your README is your storefront on mcpm.dev. Include:
# My Weather MCP Get real-time weather data for any city worldwide. ## Install \`\`\`bash mcpm-dev add my-weather-mcp \`\`\` ## Tools ### get_weather | Parameter | Type | Description | |-----------|------|-------------| | city | string | City name | | units | string | celsius or fahrenheit | ## Example \`\`\` > What's the weather in Tokyo? Agent calls get_weather({ city: "Tokyo", units: "celsius" }) → 22°C, partly cloudy \`\`\`Step 3: Authenticate
Follow the browser prompt to authorize with GitHub.
Step 4: Publish
cd my-mcp-server mcpm-dev publishThe CLI auto-detects your
package.json, reads your README, and publishes to mcpm.dev. Your tool is now live at:Step 5: Verify
mcpm-dev search "my weather" mcpm-dev info my-weather-mcpPro Tips
mcpm-dev publishbumps the patch version by default. Use--majoror--minorfor breaking changes.Troubleshooting
@yourname/toolmcpm-dev loginnameandversionare setCongratulations — you're an MCP publisher! 🎉
#MCP #Tutorial #Publishing #mcpm #DevTools