Skip to content

Commit adc4deb

Browse files
mcp: rename package from @instanode/mcp to instanode-mcp (#2)
The publish workflow has been 404-ing on every release because the @instanode npm org was never registered. npm rejects PUTs to a scope that doesn't exist with HTTP 404, regardless of NPM_TOKEN validity. Two options were on the table: A. Switch to an unscoped name (this PR) B. Keep the scope and have the operator run `npm org create instanode` (paid org, or claim it via npm support if available) Chose A. Unscoped removes the org-setup blocker entirely, and there's no product reason to keep the scope — agents install via `npx -y instanode-mcp@latest` rather than discovering the package by scope. The MCP registry's `name` field stays as `io.github.InstaNode-dev/mcp` (org namespace there is GitHub, not npm) so the registry listing is unaffected. Changes: - package.json: name → "instanode-mcp" - server.json: npm identifier → "instanode-mcp", version → 0.8.0 - README.md: every install command + heading - PUBLISHING.md: heading, npm view command, post-publish verification; added a top-of-file note explaining the rename for posterity - smithery.yaml: command args - src/index.ts: file header comment - test.sh: shell echoes Test gate: npm run build — clean npm test — 6/6 pass (still resolves serverInfo, tools/list, list_resources auth message, validation, claim helper) After merge, the next push to master triggers the publish workflow. Operator verification: npm view instanode-mcp version # should print 0.8.0 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent c1b8ead commit adc4deb

7 files changed

Lines changed: 28 additions & 19 deletions

File tree

PUBLISHING.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
# Publishing @instanode/mcp
1+
# Publishing instanode-mcp
2+
3+
> **Note (2026-05-12):** the package name moved from the scoped
4+
> `@instanode/mcp` to unscoped `instanode-mcp` because the `@instanode`
5+
> npm org was never registered and the publish workflow was 404-ing on
6+
> every release. The unscoped name removes the org-setup blocker; the
7+
> install commands below reflect the new name. Historical references in
8+
> downstream READMEs / launch posts that still say `@instanode/mcp` should
9+
> be migrated when they're next touched.
210
311
End-to-end checklist for pushing a new version out to every registry we
412
care about. Do steps in order — smithery + the MCP registry both pull
@@ -34,13 +42,14 @@ npm whoami # should print: instanode
3442
npm publish --access public
3543
```
3644

37-
The `--access public` flag is required for scoped packages (`@instanode/...`)
38-
that start life private by default on npm.
45+
`--access public` is harmless on an unscoped package (the flag was originally
46+
required when the name was scoped `@instanode/mcp`; kept here so the publish
47+
workflow doesn't have to branch on the name).
3948

4049
Verify it landed:
4150

4251
```bash
43-
npm view @instanode/mcp version
52+
npm view instanode-mcp version
4453
```
4554

4655
## 2. MCP Registry (registry.modelcontextprotocol.io)
@@ -98,7 +107,7 @@ appear at https://cursor.com/mcp within ~24 hours. No separate action.
98107

99108
```bash
100109
# Regular user install path (what a dev finds in Claude Code docs)
101-
npx -y @instanode/mcp@latest --version
110+
npx -y instanode-mcp@latest --version
102111

103112
# Registry URL (should resolve to a listing page)
104113
open https://registry.modelcontextprotocol.io/v0/servers/io.github.instanode-dev/mcp

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# @instanode/mcp
1+
# instanode-mcp
22

33
MCP server for [instanode.dev](https://instanode.dev). Lets AI coding agents
44
(Claude Code, Cursor, Windsurf, Continue, etc.) provision the full bundle of
@@ -27,15 +27,15 @@ get the dashboard claim URL.
2727
### Claude Code
2828

2929
```bash
30-
claude mcp add instanode -- npx -y @instanode/mcp@latest
30+
claude mcp add instanode -- npx -y instanode-mcp@latest
3131
```
3232

3333
To authenticate (unlock paid-tier limits and the account-management tools):
3434

3535
```bash
3636
claude mcp add instanode \
3737
--env INSTANODE_TOKEN=<paste from https://instanode.dev/dashboard> \
38-
-- npx -y @instanode/mcp@latest
38+
-- npx -y instanode-mcp@latest
3939
```
4040

4141
### Cursor
@@ -47,7 +47,7 @@ Add to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):
4747
"mcpServers": {
4848
"instanode": {
4949
"command": "npx",
50-
"args": ["-y", "@instanode/mcp@latest"],
50+
"args": ["-y", "instanode-mcp@latest"],
5151
"env": {
5252
"INSTANODE_TOKEN": "<optional — paste from dashboard for paid tier>"
5353
}
@@ -65,7 +65,7 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
6565
"mcpServers": {
6666
"instanode": {
6767
"command": "npx",
68-
"args": ["-y", "@instanode/mcp@latest"],
68+
"args": ["-y", "instanode-mcp@latest"],
6969
"env": {
7070
"INSTANODE_TOKEN": "<optional>"
7171
}
@@ -82,7 +82,7 @@ Add to your `~/.continue/config.yaml`:
8282
mcpServers:
8383
- name: instanode
8484
command: npx
85-
args: ["-y", "@instanode/mcp@latest"]
85+
args: ["-y", "instanode-mcp@latest"]
8686
env:
8787
INSTANODE_TOKEN: "<optional>"
8888
```

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@instanode/mcp",
2+
"name": "instanode-mcp",
33
"version": "0.8.0",
44
"description": "MCP server for instanode.dev \u2014 lets AI coding agents provision ephemeral Postgres, Redis, MongoDB, NATS queues, S3-compatible object storage, and webhook receivers over HTTPS, with optional bearer-token auth for paid users.",
55
"keywords": [

server.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
"url": "https://github.com/InstaNode-dev/mcp",
77
"source": "github"
88
},
9-
"version": "0.7.2",
9+
"version": "0.8.0",
1010
"websiteUrl": "https://instanode.dev",
1111
"packages": [
1212
{
1313
"registryType": "npm",
14-
"identifier": "@instanode/mcp",
15-
"version": "0.7.2",
14+
"identifier": "instanode-mcp",
15+
"version": "0.8.0",
1616
"transport": {
1717
"type": "stdio"
1818
},

smithery.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ startCommand:
2323
commandFunction: |-
2424
(config) => ({
2525
command: 'npx',
26-
args: ['-y', '@instanode/mcp@latest'],
26+
args: ['-y', 'instanode-mcp@latest'],
2727
env: {
2828
...(config.instanodeToken ? { INSTANODE_TOKEN: config.instanodeToken } : {}),
2929
...(config.instanodeApiBase ? { INSTANODE_API_BASE: config.instanodeApiBase } : {})

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env node
22
/**
3-
* @instanode/mcp — MCP server for instanode.dev
3+
* instanode-mcp — MCP server for instanode.dev
44
*
55
* Exposes tools to AI coding agents (Claude Code, Cursor, Windsurf, etc.):
66
*

test.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
# Integration test for @instanode/mcp
2+
# Integration test for instanode-mcp
33
# Usage: INSTANODE_API_URL=http://localhost:30080 ./test.sh
44
set -euo pipefail
55

@@ -12,7 +12,7 @@ pass() { echo "PASS: $*"; }
1212
# Build first
1313
npm run build --silent
1414

15-
echo "Testing @instanode/mcp against $BASE_URL"
15+
echo "Testing instanode-mcp against $BASE_URL"
1616
echo ""
1717

1818
# Test 1: initialize

0 commit comments

Comments
 (0)