
stape-io/stape-mcp-server
Developer toolsInteract with the Stape API using AI assistants like Claude, or in AI-powered IDEs like Cursor.
Overview
This project implements an for the platform. The server wraps the Stape REST API. Full endpoint reference: - Global: https://api.app.stape.io/api/doc - EU: https://api.app.eu.stape.io/api/doc The Stape MCP Server is a remote, HTTP-based MCP endpoint at https://mcp.stape.io/mcp. Clients that speak HTTP directly (Claude Code, VS Code, Copilot CLI, Cursor, Antigravity, Lovable, and Claude Desktop's custom connectors where request headers are available) connect to it as is; stdio-only clients reach it through mcp-remote, a small bridge to remote HTTP MCP servers. A legacy /sse endpoint also exists for backward compatibility with older SSE-based MCP clients. It isn't part of any config below — use /mcp for new integrations. Get a Stape API key from your Stape account and use it instead of ${your_stape_api_key} below (learn how). Restart the client after changing its config. Using the Stape EU environment?
README
Stape MCP Server
This project implements an MCP (Model Context Protocol) server for the Stape platform.
Table of Contents
- API Documentation
- Prerequisites
- Installation
- EU Endpoint Support
- Available tools
- Troubleshooting
- Useful resources
API Documentation
The server wraps the Stape REST API. Full endpoint reference:
Prerequisites
- Node.js (v20 or higher)
Installation
The Stape MCP Server is a remote, HTTP-based MCP endpoint at https://mcp.stape.io/mcp. Clients that speak HTTP directly (Claude Code, VS Code, Copilot CLI, Cursor, Antigravity, Lovable, and Claude Desktop’s custom connectors where request headers are available) connect to it as is; stdio-only clients reach it through mcp-remote, a small bridge to remote HTTP MCP servers.
A legacy
/sseendpoint also exists for backward compatibility with older SSE-based MCP clients. It isn’t part of any config below — use/mcpfor new integrations.
Get a Stape API key from your Stape account and use it instead of ${your_stape_api_key} below (learn how). Restart the client after changing its config.
Using the Stape EU environment? Each client below ends with the one change EU accounts need — see EU Endpoint Support for why.
Claude Desktop
Claude Code
VS Code
Copilot CLI
GitHub Copilot
Cursor
Antigravity
ChatGPT
Lovable
Other MCP clients
EU Endpoint Support
If your Stape account is on the EU environment, the server needs to know so it calls the EU API. Each client in Installation ends with the change it needs, which is one of these:
| Option | Use it when |
|---|---|
X-Stape-Region: EU header |
Your client lets you set headers (Claude Desktop with mcp-remote, Claude Code, VS Code, Cursor, Antigravity, Copilot CLI) |
?region=eu on the server URL, i.e. https://mcp.stape.io/mcp?region=eu |
Your client takes only a URL and a key (Lovable, Claude Desktop custom connectors) |
If both are present, the header wins. Without either, requests go to the global API and an EU API key is rejected with 401 Unauthorized.
Available tools
Each tool takes an action parameter selecting the operation (list, get, create, update, delete, …). Destructive actions additionally require confirm: true.
Tools that mix reads with destructive or state-changing actions are split into a
_read tool (safe, read-only actions) and a _write tool (create/update/delete
actions); tools that were already all-read or already carried non-destructive
writes only are left as a single tool. The exceptions are
stape_container_proxy_files and stape_container_schedules: their update
replaces the whole collection (omitted entries are removed);
stape_container_power_ups: its proxy_files and schedule updates do the
same; and stape_container_subscription: it can transfer a container to a new
owner or cancel its subscription. All four are annotated
destructiveHint: true and not yet split.
| Area | Tools |
|---|---|
| Containers | stape_container_read, stape_container_write, stape_container_lifecycle, stape_container_domains_read, stape_container_domains_write, stape_container_schedules, stape_container_power_ups, stape_container_proxy_files, stape_container_connections_read, stape_container_connections_write, stape_container_resources |
| Monitoring & logs | stape_container_monitoring_read, stape_container_monitoring_write, stape_container_monitoring_logs, stape_container_logs_read, stape_container_logs_write, stape_container_analytics, stape_container_statistics |
| Billing | stape_billing, stape_consolidated_invoicing_read, stape_consolidated_invoicing_write, stape_invoices, stape_payment_links_read, stape_payment_links_write, stape_subscriptions, stape_container_subscription, stape_container_paddle |
| Account & access | stape_account_read, stape_account_write, stape_users_read, stape_users_write, stape_user_api_keys_read, stape_user_api_keys_write, stape_company_read, stape_company_write, stape_share_access_read, stape_share_access_write |
| Partners | stape_partner, stape_partner_payouts_read, stape_partner_payouts_write |
| Stape Score | stape_score_report — scan a website’s tracking setup with Stape Score (create a scan, fetch results) |
| Reference data | stape_container_resource, stape_domains_resource, stape_gateway_resource, stape_logs_resource, stape_monitoring_resource, stape_billing_resource, stape_partner_resource, stape_products, stape_calculator |
Troubleshooting
MCP Server Name Length Limit
Some MCP clients (like Cursor AI) have a 60-character limit for the combined MCP server name + tool name length. If you use a longer server name in your configuration (e.g., stape-mcp-server-your-additional-long-name), some tools may be filtered out.
To avoid this issue:
- Use shorter server names in your MCP configuration (e.g.,
stape-mcp-server)
Clearing MCP Cache
mcp-remote stores all the credential information inside ~/.mcp-auth (or wherever your MCP_REMOTE_CONFIG_DIR points to). If you’re having persistent issues, clear it and restart your MCP client:
rm -rf ~/.mcp-auth
Useful resources
Install
npx -y mcp-remote https://mcp.stape.io/mcp --header Authorization: ${your_stape_api_key}Configuration
{
"mcpServers": {
"stape-mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.stape.io/mcp",
"--header",
"Authorization: ${your_stape_api_key}"
]
}
}
}