# io.github.InstaNode-dev/mcp (npm · @instanode/mcp)

Provision Postgres databases + webhooks from AI coding agents in one HTTP call.

- Trust score: 68/100 (medium)
- Change this week: +22
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@instanode/mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/instanode-dev-mcp/instanode-mcp.md), [page](https://verifymcp.io/servers/instanode-dev-mcp/instanode-mcp)

## Channel facts

- Registry: `npm`
- Package: `@instanode/mcp`
- Version: `0.7.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 106 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 701 tokens (~116/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add instanode-dev-mcp -- npx -y @instanode/mcp
```

### Codex

```bash
codex mcp add instanode-dev-mcp -- npx -y @instanode/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "instanode-dev-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@instanode/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add instanode-dev-mcp --command npx --arg -y --arg @instanode/mcp
```

### Hermes

```yaml
mcp_servers:
  instanode-dev-mcp:
    command: "npx"
    args: ["-y", "@instanode/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "instanode-dev-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@instanode/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 67, +62)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-08-01 (score 5, −23)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 28, +3)

- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-29 (score 25, −21)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (6)

### `create_postgres` (~178 tokens)

Provision a fresh Postgres database on instanode.dev. pgvector is pre-installed.

Returns a standard postgres:// connection URL that any driver can use directly
as DATABASE_URL — no wrapper SDK, no setup. The 'name' field is required (the
human label surfaced on the dashboard).

Without INSTANODE_TOKEN: free tier — 10 MB, 2 connections, expires in 24h,
capped at 5 provisions/day per /24 subnet.
With INSTANODE_TOKEN (paid): 500 MB, 5 connections, permanent, no subnet cap.

Store the connection_url in an env var (DATABASE_URL); do not hardcode it.

Input parameters:

- `name` (string, required): Human-readable label for this database (1–64 chars). Example: 'prospector-agent' or 'test-pgpid-123'.

### `create_webhook` (~158 tokens)

Provision an inbound webhook receiver URL on instanode.dev.

Returns a receive_url that accepts any HTTP method from any sender and stores
each request (method, headers, body, received_at). GET the same URL to pull
back the stored log. The 'name' field is required.

Useful for: testing Stripe/GitHub/Slack webhooks locally, inspecting payloads
during development, building integrations without exposing a local port.

Without INSTANODE_TOKEN: free tier — up to 100 requests stored, 24h TTL.
With INSTANODE_TOKEN (paid): 1000 stored, permanent.

Input parameters:

- `name` (string, required): Human-readable label for this receiver (1–64 chars). Example: 'stripe-sandbox'.

### `list_resources` (~60 tokens)

List resources on the caller's instanode.dev account, newest first.

Requires INSTANODE_TOKEN to be set. Mint one at https://instanode.dev/dashboard.

Returns each resource's type, token, tier, status, name, and expiry.

### `claim_token` (~117 tokens)

Attach an anonymous token (returned by create_postgres / create_webhook) to
the authenticated caller's account. Idempotent — re-claiming a token you
already own returns the same payload.

For paid callers, the resource's tier is upgraded to 'paid' and its expiry is
cleared. For free callers, the resource stays anonymous-tier but is now
visible on the dashboard.

Requires INSTANODE_TOKEN.

Input parameters:

- `token` (string, required): Resource token (UUID) returned by create_postgres or create_webhook.

### `delete_resource` (~93 tokens)

Permanently delete one of the caller's resources. Drops the underlying
Postgres database (or clears the webhook's request log), then marks the row
status='deleted'.

Paid tier only. Free-tier resources auto-expire in 24h and cannot be deleted
manually — the tool will surface the upgrade URL.

Requires INSTANODE_TOKEN.

Input parameters:

- `token` (string, required): Resource token (UUID) to delete.

### `get_api_token` (~95 tokens)

Mint a fresh 30-day bearer JWT for the authenticated caller and return it
as plain text. The user should paste the returned token into their MCP
server config as INSTANODE_TOKEN (or export it as an env var for CLI use).

Requires an existing INSTANODE_TOKEN (or a session cookie, though session
cookies aren't available in this transport). This is primarily useful for
rotating an expiring token.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/instanode-dev-mcp/instanode-mcp#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 67
- 2026-08-01: 5
- 2026-07-31: 28
- 2026-07-29: 25
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@instanode/mcp
- Socket report: https://socket.dev/npm/package/@instanode/mcp
- Repository: https://github.com/InstaNode-dev/mcp
- Website: https://instanode.dev/
- Changelog RSS feed: https://verifymcp.io/servers/instanode-dev-mcp/instanode-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/instanode-dev-mcp/instanode-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/instanode-dev-mcp/instanode-mcp
