Model Context Protocol (MCP)
Connect AI coding agents to seenode with the hosted MCP server. Deploy apps, manage databases, and operate your stack from Cursor, Claude Code, and more.
Last updated September 18, 2026
The seenode Model Context Protocol (MCP) server lets AI coding agents deploy and operate your stack from the editor: static sites, web, worker, and private apps (from Git or a Docker image), managed databases, storage, domains, projects, registry credentials, and billing.
Server URL
https://mcp.seenode.com/mcpTransport is Streamable HTTP. Authentication is OAuth 2.1 with PKCE against seenode. Do not put API keys or Authorization headers in MCP client config.
Connect to seenode’s MCP server
Click the button to add the seenode MCP server in Cursor, then complete OAuth when prompted.
Or add this to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{ "mcpServers": { "seenode": { "url": "https://mcp.seenode.com/mcp" } }}Reload Cursor if needed, then complete the seenode OAuth consent when prompted.
Add the remote MCP server, then complete OAuth when prompted:
claude mcp add --scope user --transport http seenode https://mcp.seenode.com/mcpClick the button to add the seenode MCP server in VS Code, then complete OAuth when prompted.
Or add this to .vscode/mcp.json in your workspace:
{ "servers": { "seenode": { "type": "http", "url": "https://mcp.seenode.com/mcp" } }}Complete OAuth when VS Code prompts you.
Add this to ~/.codex/config.toml, then complete OAuth when prompted:
[mcp_servers.seenode]url = "https://mcp.seenode.com/mcp"Create a custom connector with:
| Setting | Value |
|---|---|
| Server URL | https://mcp.seenode.com/mcp |
| Auth | OAuth |
ChatGPT custom connectors require a Pro, Plus, Business, Enterprise, or Education account. Follow the OpenAI developer mode documentation.
Point your MCP client at:
| Setting | Value |
|---|---|
| Server URL | https://mcp.seenode.com/mcp |
| Transport | Streamable HTTP |
| Auth | OAuth 2.1 + PKCE |
Authorization is issued by https://api.seenode.com.
After you connect
- Sign in to a seenode account if you do not have one yet.
- Complete the OAuth consent when your client opens the browser.
- For Git deploys, connect GitHub or GitLab on seenode (the agent can call
get_git_connections/connect_git_providerand give you a browser URL). - Smoke-test with a read-only prompt, for example:
- “What is my current seenode team? Use
get_current_team.” - “List my seenode web applications.”
- “List my static sites.”
- “What is my current seenode team? Use
- Only then run mutating flows (create app or database, set secrets, add domains, billing).
Enable human confirmation for mutating tools in your client when available.
Authentication
The MCP server uses OAuth so agents act as you on your seenode team, with browser consent, refresh tokens, and no long-lived secrets in plugin manifests.
| Detail | Value |
|---|---|
| Resource | https://mcp.seenode.com/mcp |
| Authorization server | https://api.seenode.com |
| Grant types | Authorization code, refresh token |
| PKCE | S256 required |
REST API keys (Getting an API Key) are for the HTTP API and CI. They are not used in the recommended MCP client configuration.
What you can do
Agents can:
- Deploy a GitHub or GitLab repository as a static, web, worker, or private application
- Deploy a Docker / OCI image to web, worker, or private (with team registry credentials when the image is private)
- Create and link managed MySQL / PostgreSQL databases (without pasting passwords into chat)
- Inspect builds, wait on or cancel deployments, read logs and metrics
- Manage environment variables, custom domains (web and static), projects, storage volumes, and billing/credits
Typical full-stack recipe
- Optional:
create_project create_database→ pollget_database_stateuntil ready- Git:
inspect_repository→create_application. Image:resolve_registry_image(andcreate_registry_credentialif private) →create_applicationwithsource_type='image'. Static SPA:create_application(application_type='static', build_command, publish_directory, …)— no database, run command, or port link_database_to_application(skip for static)create_deployment/wait_for_deployment
Check get_credit_balance before paid creates. After rotate_database_user_password, call link_database_to_application again with overwrite=true.
Example prompts
- “Deploy this repository to seenode as a static site.”
- “Deploy this repository as a web app, create Postgres, and link them.”
- “Deploy
ghcr.io/org/app:1.2.3as a private service.” - “Why did my latest seenode deployment fail?”
- “What’s my seenode credit balance in USD?”
- “Add
example.comto my seenode web app and show the DNS records.”
Money in responses
Billing and package tools return USD-first fields (for example pricePerMonthUsd, totalAmountUsd) plus exact ledger amounts as *Cents. Prefer *Usd when talking to users. Checkout price input is in dollars.
Tools
The hosted server exposes 70+ tools. Grouped by area:
Team and projects
| Tool | Description |
|---|---|
list_teams | List teams you belong to |
get_current_team | Team context for the OAuth session |
get_team_limits | Plan / capacity limits |
get_team_services_brief | Brief inventory of team services |
list_projects / get_project / get_project_resources | Project grouping |
create_project / update_project | Create or update a project |
assign_project_services | Assign apps or databases to a project |
Git and repository inspection
| Tool | Description |
|---|---|
get_git_connections | Connected GitHub / GitLab providers |
connect_git_provider | Start provider OAuth; returns authorizationUrl for the user to open |
list_git_repositories / list_git_branches | Discover repos and branches |
inspect_repository | Build/run hints for a repo |
list_images | Available language runtime images |
Applications and deployments
| Tool | Description |
|---|---|
list_applications / get_application | Discover apps (web, worker, private, or static — one type per list call) |
create_application / update_application | Create or update; Git or image source; static routes/headers on update |
duplicate_application / restart_application | Clone settings or restart instances (restart is not for static) |
list_application_packages | Capacity / package tiers |
get_build_settings / update_build_settings | Runtime, commands, port, branch, root dir, publish directory, image fields |
get_deployments / create_deployment | List or trigger deploys |
wait_for_deployment / cancel_deployment | Wait for success/failure or cancel in-flight builds |
get_application_logs / get_application_metrics | Runtime diagnostics |
Container registry
| Tool | Description |
|---|---|
list_registry_credentials / create_registry_credential | Team credentials for Docker Hub, GHCR, GitLab, or custom hosts |
update_registry_credential / verify_registry_credential | Rotate or re-check auth |
delete_registry_credential | Remove a credential unused by any app |
search_registry_images / list_registry_tags / resolve_registry_image | Find images and confirm a tag before create_application with source_type='image' |
Environment variables
| Tool | Description |
|---|---|
list_environment_variables | List keys (secrets masked) |
set_environment_variables | Set values; mark secrets with secret_keys |
reveal_environment_variables | Reveal non-secret values when explicitly needed |
delete_environment_variables | Remove keys (confirm for production) |
Databases
| Tool | Description |
|---|---|
list_databases / get_database / get_database_state | Inventory and readiness |
list_database_packages | Database package tiers |
create_database / update_database | Provision or resize (mysql / postgresql) |
link_database_to_application | Wire credentials as secret env vars (preferred) |
rotate_database_user_password | Rotate password, then re-link with overwrite=true |
get_database_metrics | Database metrics |
Storage
| Tool | Description |
|---|---|
list_storage_packages / list_application_storage | Packages and attached volumes |
create_application_storage / update_application_storage | Attach or resize (app scale must be 1; not for static) |
get_application_storage_metrics | Volume metrics |
Domains
| Tool | Description |
|---|---|
list_domains / add_domain / update_domain | Custom domains on web and static apps |
check_domain_status | DNS / TLS / routing (ready: true before claiming live) |
Billing
| Tool | Description |
|---|---|
get_credit_balance / get_team_usage / get_spending / get_bonus_credit_rate | Credits and spend (USD fields) |
list_billing_orders / list_credit_ledger / get_billing_information | Orders and ledger |
get_billing_portal_url / create_checkout_session / create_setup_intent | Portal and top-up flows |
pay_now | Settle unbilled usage against credits (confirm first) |
Warning (Safety)
There are no delete/destroy tools for apps, databases, domains, projects, or storage via MCP. Tear those down in the dashboard. MCP can remove environment variables (delete_environment_variables) and unused registry credentials (delete_registry_credential). Prefer link_database_to_application over pasting database passwords into chat. Confirm before billing mutations.
Agent Plugin
The seenode Agent Plugin packages skills and client adapters for Cursor, Claude Code, and OpenAI / Codex on top of the same hosted MCP URL. Until marketplace plugins are published, install skills manually from that repo. See Agent Skills.
Related
Agent Skills
Install seenode workflow skills manually in Cursor, Claude Code, and other agents.Getting an API Key
REST API keys for CI and programmatic access (separate from MCP OAuth).Your First Deploy
Deploy from the dashboard if you prefer the UI over an agent.Deploy from a Docker image
Image-backed web, worker, and private apps (registry credentials in the dashboard or via MCP).