SI

stape-io/stape-mcp-server

Developer tools
18 stars 9 forks Quality 79 Trend 36Apache-2.0

Interact 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

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 /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? 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

View the full README on GitHub

Install

npx -y mcp-remote https://mcp.stape.io/mcp --header Authorization: ${your_stape_api_key}
New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "stape-mcp-server": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.stape.io/mcp", "--header", "Authorization: ${your_stape_api_key}" ] } } }