|
| 1 | +# Publishing @instanode/mcp |
| 2 | + |
| 3 | +End-to-end checklist for pushing a new version out to every registry we |
| 4 | +care about. Do steps in order — smithery + the MCP registry both pull |
| 5 | +from npm, so npm must land first. |
| 6 | + |
| 7 | +## 0. Pre-flight |
| 8 | + |
| 9 | +From `mcp/`: |
| 10 | + |
| 11 | +```bash |
| 12 | +# Make sure TypeScript builds cleanly. |
| 13 | +npm run build |
| 14 | + |
| 15 | +# Make sure server.json still validates against the live registry schema. |
| 16 | +mcp-publisher validate server.json |
| 17 | + |
| 18 | +# Inspect exactly what will be published to npm. |
| 19 | +npm pack --dry-run |
| 20 | +``` |
| 21 | + |
| 22 | +Expected: build is silent, `server.json is valid`, and the pack dry-run lists |
| 23 | +`dist/`, `README.md`, `LICENSE`, and `package.json` — no stray files. |
| 24 | + |
| 25 | +Bump `version` in both `package.json` and `server.json` if this is a real |
| 26 | +release. Commit the bump so the git tree is clean before publishing. |
| 27 | + |
| 28 | +## 1. npm (blocking — all other registries pull from here) |
| 29 | + |
| 30 | +You should be logged in as `instanode`: |
| 31 | + |
| 32 | +```bash |
| 33 | +npm whoami # should print: instanode |
| 34 | +npm publish --access public |
| 35 | +``` |
| 36 | + |
| 37 | +The `--access public` flag is required for scoped packages (`@instanode/...`) |
| 38 | +that start life private by default on npm. |
| 39 | + |
| 40 | +Verify it landed: |
| 41 | + |
| 42 | +```bash |
| 43 | +npm view @instanode/mcp version |
| 44 | +``` |
| 45 | + |
| 46 | +## 2. MCP Registry (registry.modelcontextprotocol.io) |
| 47 | + |
| 48 | +The modern MCP registry is API-based, not a PR to |
| 49 | +`modelcontextprotocol/servers`. You authenticate with GitHub (the |
| 50 | +`io.github.instanode-dev/mcp` namespace in `server.json` proves |
| 51 | +org ownership automatically) and then push. |
| 52 | + |
| 53 | +```bash |
| 54 | +mcp-publisher login github |
| 55 | +# Follow the device-code prompt. Opens your browser, confirms the GitHub |
| 56 | +# org membership, writes ~/.mcpregistry_token. |
| 57 | + |
| 58 | +mcp-publisher publish |
| 59 | +# Reads ./server.json, submits to the registry. Response includes the |
| 60 | +# listing URL on modelcontextprotocol.io/registry. |
| 61 | +``` |
| 62 | + |
| 63 | +If you need to retract or mark a version deprecated later: |
| 64 | + |
| 65 | +```bash |
| 66 | +mcp-publisher status --version 0.7.1 deprecated |
| 67 | +``` |
| 68 | + |
| 69 | +## 3. smithery.ai |
| 70 | + |
| 71 | +smithery scans the repo at `InstaNode-dev/mcp` on push; the `smithery.yaml` |
| 72 | +at the repo root is the source of truth for install UX. There's also a |
| 73 | +one-time connection step to claim the listing. |
| 74 | + |
| 75 | +1. Visit https://smithery.ai/ |
| 76 | +2. Sign in with GitHub (use the `InstaNode-dev` org account). |
| 77 | +3. Go to "New Server" → enter the GitHub URL `InstaNode-dev/mcp`. |
| 78 | +4. smithery picks up `smithery.yaml` and publishes the listing. |
| 79 | + |
| 80 | +After the first connection, subsequent pushes to the mcp repo trigger |
| 81 | +automatic re-index within ~15 minutes. |
| 82 | + |
| 83 | +## 4. mcp.so |
| 84 | + |
| 85 | +mcp.so is a community-indexed directory; they either pick up new servers |
| 86 | +automatically from npm + the MCP registry, or via a submission form. |
| 87 | + |
| 88 | +- Auto-pickup path: once published on both npm and the MCP registry, the |
| 89 | + listing typically appears within 24 hours with no action required. |
| 90 | +- Manual submit (faster): https://mcp.so/submit — paste the GitHub URL. |
| 91 | + |
| 92 | +## 5. Cursor's MCP directory |
| 93 | + |
| 94 | +Cursor indexes from the MCP registry. After step 2 lands, the server will |
| 95 | +appear at https://cursor.com/mcp within ~24 hours. No separate action. |
| 96 | + |
| 97 | +## Post-publish verification |
| 98 | + |
| 99 | +```bash |
| 100 | +# Regular user install path (what a dev finds in Claude Code docs) |
| 101 | +npx -y @instanode/mcp@latest --version |
| 102 | + |
| 103 | +# Registry URL (should resolve to a listing page) |
| 104 | +open https://registry.modelcontextprotocol.io/v0/servers/io.github.instanode-dev/mcp |
| 105 | +``` |
| 106 | + |
| 107 | +If either fails, roll forward: bump the patch version, fix the bug, re-run |
| 108 | +from step 1. npm doesn't allow overwriting published versions. |
0 commit comments