MCP Server

Connect PromptShip to your AI coding tool via the Model Context Protocol.

What is MCP?

The Model Context Protocol (MCP) lets AI tools like Claude Code, Cursor, and Codex call external tools. PromptShip provides an MCP server that gives your AI tool the ability to deploy apps, manage databases, set secrets, and more — all through natural conversation.

Setup

Claude Code

Run this command to add PromptShip as an MCP server:

claude mcp add --transport http promptship https://mcp.promptship.dev/mcp

Cursor

In Cursor settings, add a remote MCP server with URL:

https://mcp.promptship.dev/mcp

Codex / Other MCP Tools

Any MCP-compatible tool can connect to the remote MCP server at https://mcp.promptship.dev/mcp using HTTP transport.

Authentication

On first use, the MCP server opens a browser window for Google OAuth sign-in. Your session is managed automatically.

Available Tools

Account

ToolDescription
create_tokenCreate a new API token for CLI or programmatic access
list_tokensList all API tokens for your account
delete_tokenDelete an API token
install_githubInstall the PromptShip GitHub App on your account
list_reposList GitHub repos accessible to PromptShip

Teams

ToolParametersDescription
create_teamname: strCreate a new team
list_teamsList your teams
invite_memberteam_id: str, email: str, role: strInvite a team member
remove_memberteam_id: str, user_id: strRemove a team member
update_member_roleteam_id: str, user_id: str, role: strUpdate a team member's role

Apps

ToolParametersDescription
create_appname: str, github_repo: str, app_tier: strCreate a new app
list_appsteam_id: str?List all apps
get_appapp_name: strGet app details and platform env vars
configure_appapp_name: str, app_type: str?, runtime: str?, port: int?, root_dir: str?, android_package_name: str?Configure build settings, runtime (python:3.12, node:22, etc.), and port
get_app_configapp_name: strGet build config for an app
create_environmentapp_name: str, env_name: str, app_tier: str?Add a new environment to an app
delete_environmentapp_name: str, env_name: strDelete an environment and all its resources
configure_processapp_name: str, process_name: str, process_type: str, command: str, min_replicas: int?, max_replicas: int?, cron_schedule: str?, health_check_path: str?Add/update a process with its run command
remove_processapp_name: str, process_name: strRemove a process from an app
grant_app_permissionapp_name: str, user_id: str, environment: str, role: strGrant per-environment permissions
revoke_app_permissionapp_name: str, user_id: strRevoke per-environment permissions
list_app_permissionsapp_name: strList all permission grants
delete_appapp_name: strDelete an app and all resources

Deploys

ToolParametersDescription
deploy_appapp_name: str, branch: str?, env: str?Deploy from a branch (default: main, dev)
get_deploy_statusapp_name: strCheck latest deploy status
get_logsapp_name: str, environment: str?View app logs
rollback_appapp_name: str, environment: str?Rollback to previous deploy

Databases

ToolParametersDescription
attach_postgresapp_name: str, environment: str, tier: str, version: str?Start an attach job for a Postgres database. Returns immediately with a pending job. Poll get_db_attach_status. Default version: 17.
detach_postgresapp_name: str, environment: strDetach Postgres. Data is retained for 1 hour — reattach within the window to recover, otherwise data is permanently deleted.
query_postgresapp_name: str, environment: str, sql: strRun a read-only SQL query
reset_postgresapp_name: str, environment: strDrop and recreate the database
attach_valkeyapp_name: str, environment: str, tier: str, version: str?Start an attach job for a Valkey (Redis) instance. Returns immediately with a pending job. Poll get_db_attach_status. Default version: 8.
detach_valkeyapp_name: str, environment: strDetach Valkey. Data is retained for 1 hour — reattach within the window to recover, otherwise data is permanently deleted.
query_valkeyapp_name: str, environment: str, command: strRun a Valkey command
reset_valkeyapp_name: str, environment: strFlush all keys in the cache
attach_clickhouseapp_name: str, environment: str, tier: str, version: str?Start an attach job for a ClickHouse analytics database. Returns immediately with a pending job; ClickHouse can take a few minutes to come up. Poll get_db_attach_status. Default version: 24.8. Injects CLICKHOUSE_URL (HTTP, port 8123) and CLICKHOUSE_NATIVE_URL (native protocol, port 9000) on next deploy.
detach_clickhouseapp_name: str, environment: strDetach ClickHouse. Data is retained for 1 hour — reattach within the window to recover, otherwise data is permanently deleted.
query_clickhouseapp_name: str, environment: str, sql: strRun a SQL query against ClickHouse (HTTP interface)
reset_clickhouseapp_name: str, environment: strDrop and recreate the ClickHouse database (including views and materialized views)
get_db_attach_statusapp_name: str, environment: str, db_type: strPoll the latest attach job's status (pending / provisioning / succeeded / failed). Call every ~10s after attach_*.
get_db_stateapp_name: str, environment: str, db_type: strCompare stored tier vs running pod for drift detection (db_type: postgres, valkey, clickhouse)

Secrets

ToolParametersDescription
set_secretapp_name: str, environment: str, key: str, value: strSet a secret (encrypted at rest). Available as an environment variable on next deploy.
list_secretsapp_name: str, environment: strList secret keys (values hidden)
delete_secretapp_name: str, environment: str, key: strDelete a secret

Domains

ToolParametersDescription
set_domainapp_name: str, environment: str, domain: strSet a custom domain (HTTPS auto-provisioned)
remove_domainapp_name: str, environment: strRemove custom domain
verify_domainapp_name: str, environment: strCheck if domain DNS is verified

Tier Management

ToolParametersDescription
change_app_tierapp_name: str, environment: str, tier: strChange app compute tier
change_postgres_tierapp_name: str, environment: str, tier: strChange Postgres tier. Storage can't shrink; pod rolls with new resources.
change_valkey_tierapp_name: str, environment: str, tier: strChange Valkey tier. Storage can't shrink; pod rolls with new resources.
change_clickhouse_tierapp_name: str, environment: str, tier: strChange ClickHouse tier. Storage can't shrink; pod rolls with new resources.
reapply_db_tierapp_name: str, environment: str, db_type: strReconcile the running pod to the stored tier. Idempotent; call after a partial failure.
change_team_planteam_id: str, plan: strChange team subscription plan

Usage & Billing

ToolParametersDescription
get_team_usageteam_id: str, start: str?, end: str?Per-team usage breakdown for a date range. Returns compute (replica-intervals, max replicas, projected $), bandwidth (gb_in/gb_out), per-process metrics (avg/max CPU, memory, disk for stateful DBs), team-level builds, and total_us_dollars. Defaults: last 30 days.
get_team_usage_summaryteam_id: str, month: strWhole-month projected bill including platform fee. month is YYYY-MM.
get_app_usageapp_name: str, team_id: str?, start: str?, end: str?Same shape as get_team_usage but scoped to one app.

Mobile

ToolParametersDescription
submit_appapp_name: str, play_track: str?, branch: str?, release_notes: str?, environment: str?Build APK and submit to Google Play (play_track: internal, production)
get_submit_app_statusapp_name: strGet submission history for a mobile app
get_android_keystoreapp_name: str, environment: str?Download the Android signing keystore (PKCS12, base64-encoded)