{"componentChunkName":"component---content-pages-mcp-server-js","path":"/mcp-server/","result":{"data":{"markdownRemark":{"rawMarkdownBody":"# MCP Server\n\nThe SparkPost MCP server lets AI agents work in your SparkPost account over the\n[Model Context Protocol](https://modelcontextprotocol.io/). They can send\ntransmissions, manage templates and sending domains, pull deliverability metrics,\nand much more.\n\nIt is a remote server, so there is nothing to install and no API key to create.\nPoint a supported host at the endpoint for your region, sign in to SparkPost, and\napprove the connection.\n\n## Endpoints\n\n| Account | MCP endpoint |\n|---|---|\n| **SparkPost** | `https://mcp.sparkpost.com/mcp` |\n| **SparkPost EU** | `https://mcp.eu.sparkpost.com/mcp` |\n\nUse the endpoint that matches the region your account is in. An account on\n[app.sparkpost.com](https://app.sparkpost.com) uses the first; an account on\n[app.eu.sparkpost.com](https://app.eu.sparkpost.com) uses the second.\n\n<!-- Keep the Banner tags on their own lines. Inline, the banner parses as\n     phrasing content and its <div> ends up inside a <p>. -->\n\n<Banner status=\"info\">\nThe server speaks Streamable HTTP. Most hosts need nothing but the endpoint URL and\nwork out the rest themselves.\n</Banner>\n\n## Connecting\n\n### Claude\n\nIn [Claude](https://claude.ai) on the web or in the desktop app, open **Settings →\nConnectors → Add custom connector**, name it `SparkPost`, and paste the endpoint\nURL for your region. Claude opens a SparkPost sign-in window; approve the\nconnection and the tools become available in your conversations.\n\n### Claude Code\n\nAdd the server from your terminal:\n\n```bash\nclaude mcp add --transport http sparkpost https://mcp.sparkpost.com/mcp\n```\n\nFor an EU account, use `https://mcp.eu.sparkpost.com/mcp` instead. Then run `/mcp`\ninside Claude Code and choose to authenticate. Your browser opens for SparkPost\nsign-in and consent.\n\n## Signing in\n\nAuthorization uses OAuth 2.1 with PKCE. The first time a host connects:\n\n1. It sends you to SparkPost to sign in.\n2. SparkPost shows a consent screen where you choose what the connection can do.\n3. Approving it returns you to the host with the connection ready to use.\n\nYou sign in with your ordinary SparkPost credentials. No API key is created, and\nnone is pasted into the host.\n\n## Permissions\n\nYou select the permissions a connection holds on the consent screen. You may grant\nall of your own permissions, or any narrower subset of them.\n\nA connection cannot be granted a permission you do not hold. The available set is\nbounded by your role on the account.\n\n## What the server can do\n\n| Family | What it covers | Tools |\n|---|---|---|\n| Transmissions | Send email. | `transmissions_send` |\n| Templates | Create, list, retrieve, update, delete, and preview templates. | `templates_create`, `templates_list`, `templates_get`, `templates_update`, `templates_delete`, `templates_preview` |\n| Suppression lists | Search the suppression list; retrieve, add, update, and remove entries. | `suppression_search`, `suppression_get`, `suppression_upsert_bulk`, `suppression_upsert`, `suppression_delete` |\n| Recipient lists | Create, list, retrieve, update, and delete recipient lists. | `recipient_lists_create`, `recipient_lists_list`, `recipient_lists_get`, `recipient_lists_update`, `recipient_lists_delete` |\n| Sending domains | Create, list, retrieve, update, delete, and verify sending domains. | `sending_domains_create`, `sending_domains_list`, `sending_domains_get`, `sending_domains_update`, `sending_domains_delete`, `sending_domains_verify` |\n| Tracking domains | Create, list, retrieve, update, delete, and verify tracking domains. | `tracking_domains_create`, `tracking_domains_list`, `tracking_domains_get`, `tracking_domains_update`, `tracking_domains_delete`, `tracking_domains_verify` |\n| Webhooks | Create, list, retrieve, update, delete, and validate webhooks. | `webhooks_create`, `webhooks_list`, `webhooks_get`, `webhooks_update`, `webhooks_delete`, `webhooks_validate` |\n| Metrics | Deliverability metrics overall and over time, broken out by domain, campaign, or template, plus bounce and rejection reasons. | `metrics_deliverability`, `metrics_deliverability_time_series`, `metrics_deliverability_by_domain`, `metrics_deliverability_by_campaign`, `metrics_deliverability_by_template`, `metrics_bounce_reasons`, `metrics_rejection_reasons` |\n| Message events | Search message events, and fetch sample events. | `events_search_message`, `events_samples_message` |\n| Subaccounts | List, create, retrieve, and update subaccounts. | `subaccounts_list`, `subaccounts_create`, `subaccounts_get`, `subaccounts_update` |\n"}},"pageContext":{}},"staticQueryHashes":["1428769721"]}