InstaNode-dev/mcp
Provision Postgres databases + webhooks from AI coding agents in one HTTP call.
Connector by InstaNode-dev · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying InstaNode-dev/mcp?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/instanode-dev-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 7 read · 15 write · 2 delete · 7 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 31
Read from the source code; the running server may list different tools.
Read 7 · Look things up without changing anything.
claim_tokenget_capabilitiesget_deploymentget_deployment_eventsget_stacklist_deploymentslist_resources
Write 15 · Create, change, send or run things.
create_cachecreate_deploycreate_leadcreate_nosqlcreate_postgrescreate_queuecreate_stackcreate_storagecreate_vectorcreate_webhookpresign_storageredeploy
Show 3 more tools
set_vault_keyupdate_deploy_envupdate_stack_env
Delete 2 · Delete, drop, revoke or wipe things.
delete_deploymentdelete_resource
Not yet classified 7 · We could not tell from the name and description.
claim_resourceget_api_tokenpause_resourceresume_resourcerotate_credentialsrotate_vault_keywake_deployment
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
INSTANODE_TOKEN
Other settings (environment variables or headers).
INSTANODE_API_BASE
Tools (31)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
claim_resourceTurn an anonymous resource's upgrade JWT into the API claim URL the agent should direct the user to. NO API call — pure helper: builds https://api.instanode.dev/start?t=<jwt> from the JWT the create_* tools return in the 'upgrade_jwt' field. /start issues a 302 redirect to the dashboard's /claim page, which drives the email login. Use this when: 1. You just provisioned an anonymous resource via create_postgres / create_cache / etc. 2. The user wants to keep it past 24h (upgrade to a paid plan, or just claim it on a free authenticated account so it's visible on their dashboard). …
claim_tokenConvert an anonymous upgrade JWT into a claimed team programmatically (POST /claim). Same flow the dashboard's /claim page drives — but lets an agent that already knows the user's email skip the browser round-trip. The 'upgrade_jwt' is the JWT returned in the upgrade_jwt field of any create_* tool response (NOT the per-resource UUID token). It can also be extracted from the 't=' query param of the upgrade URL. On success the API creates (or attaches to) the user's team, links every anonymous resource issued under that JWT, and returns a 24h session token. The session token isn't returned to …
create_cacheProvision a fresh Redis cache on instanode.dev (POST /cache/new). Returns a redis:// connection URL backed by a per-resource ACL user with a scoped key namespace — multiple tenants share the same Redis cluster safely. Drop in as REDIS_URL with any Redis client (ioredis, node-redis, go-redis, etc.). Without INSTANODE_TOKEN: anonymous tier — 5 MB, 24h TTL. The response carries 'note' + 'upgrade' (claim URL) — surface both verbatim. With INSTANODE_TOKEN (paid): hobby 50 MB / hobby_plus 50 MB / pro 512 MB / growth 1024 MB / team 1536 MB (per api/plans.yaml), permanent. Cleanup: anonymous resour…
create_deployCreate a new deploy — OR set `redeploy: true` to update an existing deployment with the same name (preserves app_id + URL). Optionally set `private: true` + `allowed_ips: ['1.2.3.4', '10.0.0.0/8']` to restrict access to specific IPs. Deploying requires a paid plan: Hobby tier or higher (Hobby = 1 app, Hobby Plus = 2, Pro = 10, Growth = 50, Team = 100 — per api/plans.yaml deployments_apps); anonymous and free tiers cannot deploy and get HTTP 402. The PRIVATE-deploy option (private: true + allowed_ips) additionally requires Pro tier or higher. Useful when an agent is asked to deploy a CRM, inter…
create_leadSubmit an enterprise contact / interest form to instanode.dev (POST /api/v1/leads). Use this when the user needs capacity or features beyond the Pro tier — dedicated infrastructure, SAML/SSO, SOC 2 compliance, a custom SLA, or any other Enterprise-tier requirement. It directly reaches the instanode.dev team and is faster than a cold email. Only 'email' is required. Providing 'company' and 'use_case' gives the team context to respond with an accurate quote without a back-and-forth. No INSTANODE_TOKEN needed — anonymous callers are accepted. When called with a valid bearer token the lead is a…
create_nosqlProvision a fresh MongoDB database on instanode.dev (POST /nosql/new). Returns a mongodb:// connection URL backed by a per-resource Mongo user with a role scoped to that single database. Drop in as MONGODB_URI with the official mongodb driver (mongoose, pymongo, etc.). Without INSTANODE_TOKEN: anonymous tier — 5 MB, 2 connections, 24h TTL. 'note' + 'upgrade' fields in the response surface the claim URL. With INSTANODE_TOKEN (paid): hobby 100 MB / hobby_plus 1 GB / pro 5 GB / growth 20 GB / team 40 GB (per api/plans.yaml), permanent. Cleanup: anonymous resources auto-expire after 24h — there…
create_postgresProvision a fresh Postgres database on instanode.dev (POST /db/new). 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: anonymous tier — 10 MB, 2 connections, expires in 24h, capped at 5 provisions/day per /24 subnet. The response includes a 'note' and 'upgrade' (claim) URL; surface both to the user so they know how to keep it. With INSTANODE_TOKEN (paid): hobby/pro/team limits per the user's plan…
create_queueProvision a fresh NATS JetStream queue on instanode.dev (POST /queue/new). Returns a nats:// connection URL backed by a per-resource NATS user with a scoped subject namespace. JetStream is enabled — use it for durable streams, pub/sub, or work queues. Drop in as NATS_URL with the nats.js / nats.go / nats.py client. Without INSTANODE_TOKEN: anonymous tier — 24h TTL, basic message quotas. With INSTANODE_TOKEN (paid): tier-scaled quotas, permanent. Cleanup: anonymous resources auto-expire after 24h — there is no on-demand delete for anonymous tokens, by design. On a paid tier, call delete_reso…
create_stackDeploy a multi-service bundle from a single MCP call (POST /stacks/new). The wedge: one tool call → a live URL on *.deployment.instanode.dev for an `instant.yaml`-shaped manifest declaring 1..N services. Each service has its own build context (tarball), Dockerfile, port, optional Ingress (`expose: true`), and resource deps (`needs: [postgres, redis]` to auto-provision and bind, or `kind: postgres` blocks inline). Cross-service references use `service://<name>` in env values — these resolve to cluster-internal `http://<name>:<port>` URLs at deploy time. ANONYMOUS-FRIENDLY: no INSTANODE_TOKEN …
create_storageProvision a fresh S3-compatible object storage bucket prefix on instanode.dev (POST /storage/new). Backed by DigitalOcean Spaces with a per-resource access key, secret key, and prefix isolation under a shared bucket. Returns endpoint, access_key_id, secret_access_key, prefix, and a public connection_url. Drop in to the AWS SDK (any language) by setting: AWS_ACCESS_KEY_ID=<access_key_id> AWS_SECRET_ACCESS_KEY=<secret_access_key> AWS_ENDPOINT_URL=<endpoint> AWS_REGION=us-east-1 (or whatever the endpoint requires) and uploading under the returned prefix. Without INSTANODE_TOKEN: anonym…
create_vectorProvision a pgvector-enabled Postgres database on instanode.dev (POST /vector/new). Underlying storage IS Postgres (tier limits mirror Postgres exactly), with the pgvector extension already loaded via CREATE EXTENSION vector at provisioning time. Use for embedding stores (OpenAI text-embedding-ada-002 / 3-small = 1536 dims; text-embedding-3-large = 3072). Returns a standard postgres:// connection URL — drop in as DATABASE_URL with any pg driver. Note: create_postgres ALSO ships with pgvector pre-installed today, so this tool is functionally equivalent for embedding workloads. Use create_vect…
create_webhookProvision an inbound webhook receiver URL on instanode.dev (POST /webhook/new). 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: anonymous tier — up to 100 requests stored, 24h TTL. 'note' + 'upgrade' fields in the response carry the claim URL — surface both. With …
delete_deploymentTear down a running deployment (DELETE /deploy/:id). Stops the container, releases compute, removes the public URL, and marks the deployment row deleted. Irreversible. Requires INSTANODE_TOKEN.
delete_resourcePermanently delete one of the caller's resources (DELETE /api/v1/resources/{id}, where the {id} path param is the resource token). Drops the underlying Postgres/Mongo database, Redis ACL user, NATS user, storage prefix, or clears the webhook's request log, then marks the row status='deleted'. Paid tier only (hobby/pro/team). Anonymous and free tiers cannot be deleted manually BY DESIGN — they auto-expire 24h after creation. This is the documented platform contract (see CLAUDE.md "anonymous = 24h TTL"): the free surface is throwaway-by-construction, which is why there's no auth required to pro…
get_api_tokenMint a fresh API key for the authenticated caller and return it as plain text (POST /api/v1/auth/api-keys). The user should paste the returned key into their MCP server config as INSTANODE_TOKEN (or export it as an env var for CLI use). API keys are revocation-based (not time-bound) — they live until revoked in the dashboard. IMPORTANT — PATs cannot mint other PATs (BugBash B16 F5 / task #171): The api enforces a one-step trust chain. A PAT (Personal Access Token, the standard INSTANODE_TOKEN format) can only be created by a logged-in user session, NOT by another PAT. So this tool will retur…
Show 16 more tools
get_capabilitiesRead the live per-tier capability matrix (GET /api/v1/capabilities). Use this BEFORE a provision/deploy call to plan around tier limits instead of provisioning-to-discover them and eating a 402 mid-flow. The api iterates its live plans registry, so the response is always current — tiers today are anonymous and free (both no-cost, 24h-TTL), then the paid tiers hobby ($9/mo), hobby_plus ($19/mo), pro ($49/mo), growth ($99/mo) and team ($199/mo). The exact numbers come from the api, not this description, so they never drift. Per tier you get: - storage_limit_mb — per-service storage cap (…
get_deploymentFetch one deployment by its app id (GET /api/v1/deployments/:id). Use this after create_deploy to poll until status="running" (typically ~30s after the initial 202). Returns the same shape as list_deployments for a single record. Requires INSTANODE_TOKEN.
get_deployment_eventsRead the failure-timeline autopsy for a deployment (GET /api/v1/deployments/:id/events). This is the rule-27 self-correction surface: when a deploy is stuck in "building" or flips to "failed", get_deployment only shows the LATEST error string — this tool returns the full chronological autopsy the platform's worker captured (Kaniko build failures, k8s pod events, OOM kills, image-pull errors). Each event carries: - kind (e.g. "failure_autopsy") - reason (e.g. "BackoffLimitExceeded", "OOMKilled", "ImagePullBackOff") - exit_code (process exit code, or null when not an exit) - …
get_stackFetch a stack by id (GET /stacks/{stack_id}). Use this after create_stack to poll until every service is "healthy" (~30s typical). Anonymous-friendly: the public /stacks/{slug} route mirrors the StackResponse shape returned by POST /stacks/new (services array, expires_in, etc.) and does not require INSTANODE_TOKEN — anonymous callers can poll their own stacks. The dashboard-only GET /api/v1/stacks/{slug} returns a flatter summary and requires auth; this tool uses the public route. Returns the same shape as create_stack: stack_id, status, tier, env, per-service { name, port, expose, url, stat…
list_deploymentsList deployments on the caller's team (GET /api/v1/deployments). Returns each deployment's app_id, tier, status (building/running/failed/...), live URL, port, and the deploy env scope (production/staging/...). Requires INSTANODE_TOKEN.
list_resourcesList resources on the caller's instanode.dev account, newest first (GET /api/v1/resources). Requires INSTANODE_TOKEN to be set. Mint one at https://instanode.dev/dashboard. Returns each resource's type (postgres/cache/nosql/queue/storage/webhook/vector), token, tier, status, name, and expiry.
pause_resourceSuspend a resource WITHOUT deleting it (POST /api/v1/resources/:id/pause). Storage is preserved and the connection URL is unchanged — the resource just stops accepting new connections (the provider-side credential is revoked) until you resume it. Use this to park a staging database overnight, freeze a resource during an incident, or temporarily cut access without losing data. Pro tier or higher only (anonymous/free/hobby get 402 with an upgrade prompt). Pausing an already-paused resource returns 409. Resume with resume_resource; the same connection URL works again immediately after resume. …
presign_storageMint a short-lived presigned S3 URL for an object in a storage bucket prefix (POST /storage/:token/presign). Use this to upload (PUT) or download/inspect (GET/HEAD) an object without handing out long-lived credentials. The signed URL is scoped to the storage resource's tenant prefix and expires in ≤1h (default 10 min). Auth is the storage TOKEN in the path (the value create_storage returned) — so this works for anonymous-tier storage you just provisioned, no INSTANODE_TOKEN needed. Then use the returned 'url' with any plain HTTP client: - PUT → upload the object body to that URL - GET …
redeployPush updated code to an existing deployment by app id. Same URL, new build (POST /deploy/:id/redeploy). Use this when you already know the deploy_id and want to ship a code change without touching the URL or app_id. For the more common "I have the name, I want to update the app I just shipped" path, prefer create_deploy({ name, tarball_base64, redeploy: true }) — that resolves the deployment by name and is the AGENT-UX-recommended path. The api REQUIRES a fresh tarball — there is no server-side tarball reuse (the earlier tool description claiming reuse was wrong and caused every real call to…
resume_resourceUn-pause a previously-paused resource (POST /api/v1/resources/:id/resume). Flips the resource back to 'active' and re-grants the provider credential. The connection URL is preserved unchanged (same password, host, database name) so your existing config keeps working — no reconnection-string change needed. Pro tier or higher only (symmetric with pause_resource). Resuming a resource that isn't paused returns 409. Requires INSTANODE_TOKEN. A token not on your team returns a clean 404.
rotate_credentialsRotate a resource's password and get the NEW connection URL (POST /api/v1/resources/:id/rotate-credentials). The host and database name are unchanged; only the credential rotates. An attacker holding a leaked OLD connection URL is locked out, while the freshly- returned URL keeps working. Use this after a suspected leak, on a key-rotation schedule, or before handing a resource off. The response includes the new connection_url IN PLAINTEXT (the one place besides create_* that exposes it) — treat it as a secret, store it (e.g. with set_vault_key), and update any app/deploy that references the …
rotate_vault_keyRotate a vault secret's value (POST /api/v1/vault/:env/:key/rotate). Functionally a vault write that mints a new version, but recorded under a distinct audit action so the vault audit log distinguishes an intentional rotation (e.g. a leaked credential, scheduled key rotation) from a routine update. Use this when you're replacing a compromised or expiring secret; use set_vault_key for a first write or a normal value change. After rotating, redeploy any app that references vault://<env>/<key> so the new value is injected (the running container keeps the old value until its next deploy). Requi…
set_vault_keyWrite a secret to the team vault (PUT /api/v1/vault/:env/:key). This is the WRITE side of the vault:// references create_deploy advertises. Store a secret here, then reference it from a deploy as vault://<env>/<key> in env_vars (or resource_bindings) — the api decrypts it at deploy time so the plaintext never sits in your tool params or the deploy record. Closes the gap where create_deploy could point at vault://env/KEY but there was no MCP tool to populate it. Every write creates a NEW version (v1 on first create, v2+ on updates), so the returned 'version' tells you which generation this ca…
update_deploy_envMerge environment variables into an existing deployment (PATCH /deploy/:id/env). The supplied keys are MERGED into the deployment's current env (incoming wins on collision) — you don't have to resend the full set. The response echoes the full merged map with secret values redacted. A redeploy is required to apply the change: the running container keeps its current env until its next build, so finish with create_deploy({ name, redeploy: true }) or redeploy({ id }). Values can be plaintext or vault://env/KEY references (write the secret first with set_vault_key). Requires INSTANODE_TOKEN. A de…
update_stack_envMerge environment variables into an existing stack (PATCH /stacks/:slug/env). Same merge semantics as update_deploy_env but for a multi-service stack, and transactionally row-locked server-side so concurrent updates don't clobber each other. An EMPTY-STRING value deletes that key. The response echoes the merged map with secret values redacted. Redeploy the stack (POST /stacks/:slug/redeploy) to apply the change. Auth required — anonymous stacks cannot be mutated (claim the stack first). A slug not on your team returns a clean 404. Requires INSTANODE_TOKEN.
wake_deploymentExplicitly wake a scaled-to-zero deployment (POST /deploy/:id/wake). When scale-to-zero is enabled, an idle app is descheduled to 0 replicas to save compute; its URL then returns 502/503 (no pod) until woken. This tool scales it back to 1 replica and refreshes its activity stamp. The pod still needs its normal cold-start time before it serves traffic, so retry the app URL a few seconds after waking. This endpoint is FLAG-GATED on the platform: when scale-to-zero is disabled the api returns 501 'scale_to_zero_disabled' and nothing is scaled. That's expected on a deploy where the feature isn't…
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 12
- Last commit
- Jul 5, 2026 (3 months ago)
- Last release
- Apr 19, 2026 (6 months ago)
- Last package publish
- Apr 19, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.InstaNode-dev/mcp- Version
- 0.7.2
- Auth
- API key
- Packages
- npm @instanode/mcp
- License
- MIT
- Repository
- github.com/InstaNode-dev/mcp
- Website
- instanode.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get InstaNode-dev/mcp running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
InstaNode-dev/mcp. Agent Mart. https://agentmart.dev/connectors/instanode-dev-mcp (last updated 2026-10-24)