Browse docs

Get started

MCP server

Connect Claude Code, Codex, Cursor, VS Code and other AI editors to CloudHike.dev with the Model Context Protocol.

What it is

CloudHike.dev runs an MCP (Model Context Protocol) server. Once you add it to your AI editor, the agent gets CloudHike.dev tools it can call by itself: find or create a project, deploy Postgres, Auth, Storage and Redis, wait until they are ready, put the .env into your app, look at your tables and files, and read these docs. No prompt to paste and no curl.

SettingValue
Server URLhttps://cloudhike.dev/api/mcp
TransportStreamable HTTP (remote). Nothing to install.
AuthenticationAuthorization: Bearer <workspace API key>
Server namecloudhike

Set it up in 3 steps

  1. Open Connect MCP in the dashboard sidebar (https://cloudhike.dev/dashboard/coding-agent).
  2. Pick your editor and click Copy with key. This creates your workspace API key the first time.
  3. Paste the snippet where the card says (a terminal command or a config file), then restart or reload your editor. Ask it: "Use the cloudhike tools to set up the backend for this app."

It uses your workspace API key. Revoke on that page disconnects every editor at once, and New key means pasting the new snippet again.

Editor configuration

Replace icu_your_api_key with your key, or use Copy with key in the dashboard, which fills it in.

Claude Code

Run in a terminal
Shell
claude mcp add --transport http --scope user cloudhike https://cloudhike.dev/api/mcp \
  --header "Authorization: Bearer icu_your_api_key"

Then run /mcp inside Claude Code to check it is connected.

Codex

~/.codex/config.toml
TOML
# 1. Add this line to your shell profile (~/.zshrc or ~/.bashrc):
#    export CLOUDHIKE_API_KEY="icu_your_api_key"
# 2. Add this to ~/.codex/config.toml:
[mcp_servers.cloudhike]
url = "https://cloudhike.dev/api/mcp"
bearer_token_env_var = "CLOUDHIKE_API_KEY"

Open a new terminal so the variable is set, then run codex mcp list to check it.

Cursor

~/.cursor/mcp.json
JSON
{
  "mcpServers": {
    "cloudhike": {
      "url": "https://cloudhike.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer icu_your_api_key"
      }
    }
  }
}

Open Cursor Settings → MCP to check it shows a green dot.

VS Code

.vscode/mcp.json
JSON
{
  "inputs": [
    {
      "type": "promptString",
      "id": "cloudhike-key",
      "description": "CloudHike.dev API key",
      "password": true
    }
  ],
  "servers": {
    "cloudhike": {
      "type": "http",
      "url": "https://cloudhike.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:cloudhike-key}"
      }
    }
  }
}

VS Code asks for the API key the first time and keeps it in its secret storage. Use Copilot Chat in Agent mode.

Windsurf

~/.codeium/windsurf/mcp_config.json
JSON
{
  "mcpServers": {
    "cloudhike": {
      "serverUrl": "https://cloudhike.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer icu_your_api_key"
      }
    }
  }
}

Gemini CLI

~/.gemini/settings.json
JSON
{
  "mcpServers": {
    "cloudhike": {
      "httpUrl": "https://cloudhike.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer icu_your_api_key"
      }
    }
  }
}

Claude Desktop

claude_desktop_config.json (Settings → Developer → Edit Config)
JSON
{
  "mcpServers": {
    "cloudhike": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://cloudhike.dev/api/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer icu_your_api_key"
      }
    }
  }
}

Needs Node.js. Restart Claude Desktop after saving.

Any other MCP client

Point it at https://cloudhike.dev/api/mcp with the header Authorization: Bearer <key>. Clients that only run local (stdio) servers can use npx -y mcp-remote https://cloudhike.dev/api/mcp --header "Authorization:Bearer <key>", as in the Claude Desktop example.

Tools

ToolWhat it doesChanges anything?
list_projectsLists your projects and their ids.No
create_projectCreates a project (2 to 40 characters). Follows your plan's project limit.Yes
get_projectA project and the status of each service.No
deploy_servicesDeploys postgres, auth, storage, redis, jobs or email, with the same plan and billing checks as the dashboard. Already deployed services come back as exists.Yes
wait_for_servicesWaits up to 50 seconds for services to become ready, then reports their status.No
get_environmentThe project's .env. format: "names" returns only the variable names, without secrets.No
list_tablesSchemas, and the tables and views in one schema.No
describe_tableA table's columns, types, primary key, nullability and defaults.No
query_databaseRuns one SQL statement in a read-only transaction, up to 500 rows, 10 second timeout.No
execute_sqlPro plan only. Runs SQL that changes data or schema, in one transaction.Yes
list_storage_filesLists folders and files in the project's bucket, or searches them.No
get_docsAny page of these docs as Markdown.No

The server also offers each docs page as a resource (cloudhike://docs/<page>) and a setup_backend prompt. In editors that show MCP prompts as slash commands, run it to set up the whole backend in one go.

Database access: read-only, with writes on Pro

  • On every plan, query_database runs in a READ ONLY transaction and accepts one statement at a time, so an agent cannot change data or tables with it.
  • On the Pro plan, the agent also sees execute_sql, which can insert, update, delete and change the schema. The whole script runs in one transaction that is only committed if every statement succeeds. Editors ask you before running it, because it is marked as destructive.
  • Every execute_sql run is written to the audit log as postgres.sql-write.
  • Database tools share a limit of 60 calls per 10 minutes.

Read the SQL before you approve execute_sql. For schema changes, prefer migrations in your app's code so they are reviewed and repeatable.

Security

  • The key can create projects, deploy services and read keys. Nothing can be deleted through MCP: deleting projects and services stays in the dashboard.
  • get_environment returns secrets so the agent can write your env file. The server tells agents to write them only to the git-ignored env file and never to repeat them in chat. Every fetch is written to the audit log as environment.agent-fetch.
  • All tools follow your plan limits and rate limits, exactly like the dashboard.
  • Keep the key out of files you commit. The VS Code example asks for the key and stores it in VS Code's secret storage, so .vscode/mcp.json is safe to commit. The other examples go in your home folder.

Treat the key like a password. If it leaks, click New key or Revoke on the Coding agent page.

Troubleshooting

ProblemFix
401 or "Invalid or revoked API key"The key was replaced or revoked. Copy the snippet again from the Coding agent page.
429 "Too many requests"Wait the time shown. Requests are limited to 120 per minute, database tools to 60 per 10 minutes.
The editor shows no cloudhike toolsRestart or reload the editor after saving the config. In Claude Code run /mcp, in Codex codex mcp list, in Cursor check Settings → MCP.
execute_sql is missingIt is only offered on the Pro plan. Reconnect the editor after upgrading.
A service stays provisioningCall wait_for_services again. If it shows failed, open the project in the dashboard for details.

To test the server yourself, run npx @modelcontextprotocol/inspector, choose Streamable HTTP, enter the server URL and add the Authorization header.

Use with AI

With the MCP server added to your editor, this prompt sets up the whole backend.

  1. 1

    Open a terminal in your app's folder and start Claude Code.

    Terminal
    Shell
    claude
  2. 2

    Paste the prompt below and press Enter. Approve the file edits and commands it asks about.

  3. 3

    Optional: save a short note about CloudHike.dev in CLAUDE.md so every session knows about it.

PROMPT
Use the cloudhike MCP tools to set up CloudHike.dev as the backend for this app.

Read the app first and deploy only the services it needs. Put the .env into the app's git-ignored env file without showing me the values, then read the matching docs with get_docs and write the code that connects each service.

Replace the placeholders in <angle brackets> before sending. Always review what the agent changes.