mcpField
S
Spotler Sendpro / Flowmailer Mcp Server

Spotler Sendpro / Flowmailer Mcp Server

Local
github.com/MestikaCommunication2Updated 23w ago

About Spotler Sendpro / Flowmailer Mcp Server

An unofficial MCP server for teams connecting AI agents to Spotler SendPro account data and message operations. It uses OAuth2 and defaults to read-only access, with message actions available when writes are enabled.

Key features

  1. 01OAuth2 client-credential authentication
  2. 02Read-only mode by default
  3. 03Message and recipient lookup
  4. 04Resource and endpoint listing
  5. 05Optional submit, simulate, and resend

Use cases

  1. 01Inspect messages and archived content
  2. 02Look up recipients and SendPro resources
  3. 03Enable controlled message submission or resend

MCP support

Exposes SendPro API operations as MCP tools over stdio. Read operations are enabled by default; write tools require disabling read-only mode.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"sendpro-flowmailer": {
"command": "npx",
"args": [
"-y",
"sendpro-flowmailer-mcp"
],
"env": {
"SENDPRO_ACCOUNT_ID": "<SENDPRO_ACCOUNT_ID>",
"SENDPRO_CLIENT_ID": "<SENDPRO_CLIENT_ID>",
"SENDPRO_CLIENT_SECRET": "<SENDPRO_CLIENT_SECRET>",
"SENDPRO_READ_ONLY": "<SENDPRO_READ_ONLY>"
}
}
}
}
Run commandnpx -y sendpro-flowmailer-mcp
Environment variables to set
SENDPRO_ACCOUNT_ID
SENDPRO_CLIENT_ID
SENDPRO_CLIENT_SECRETSecret
SENDPRO_READ_ONLY

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmsendpro-flowmailer-mcp

Tools

8

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
methodstringNo
pathstringYesRelative SendPro API path, e.g. /{account_id}/messages or /545/messages. Absolute URLs are rejected.
accountIdstringNoOverride FLOWMAILER_ACCOUNT_ID for this call.
matrixobjectNoMatrix parameters appended to the final path segment, e.g. daterange.
queryobjectNoQuery string parameters.
bodyanyNoJSON request body for mutating API calls.
rangestringNoRange header, e.g. items=:10 or items=0-10.

Details

From the project README

Spotler SendPro / FlowMailer MCP Server

GitHub Release npm version npm downloads CI OpenSSF Scorecard License: MIT Node.js TypeScript MCP Read-only default

Unofficial Model Context Protocol server for the Spotler SendPro API, formerly known as FlowMailer.

This project is not affiliated with, endorsed by, or maintained by Spotler. It is a community MCP server for teams that need controlled AI-agent access to SendPro account data and, when explicitly enabled, SendPro message operations.

What It Does

  • Connects to SendPro over OAuth2 client credentials.
  • Exposes SendPro operations as MCP tools over stdio.
  • Defaults to read-only mode.
  • Blocks mutating SendPro requests when read-only mode is enabled.
  • Supports current SendPro naming plus legacy FlowMailer environment variables.
  • Includes MCP Registry metadata in server.json.

Install

From npm:

npx -y sendpro-flowmailer-mcp

Directly from GitHub:

npx -y github:Mestika/sendpro-flowmailer-mcp

Local development:

git clone https://github.com/Mestika/sendpro-flowmailer-mcp.git
cd sendpro-flowmailer-mcp
npm install
npm run build
node dist/index.js

Configuration

Set credentials through your MCP client config, shell environment, or a local .env file.

VariableRequiredDefaultDescription
SENDPRO_ACCOUNT_IDYesSendPro account id.
SENDPRO_CLIENT_IDYesOAuth client id.
SENDPRO_CLIENT_SECRETYesOAuth client secret.
SENDPRO_READ_ONLYNotrueSafe-mode flag. When true, only SendPro read requests are allowed.
READ_ONLYNoGeneric override for SENDPRO_READ_ONLY; useful for shared MCP config conventions.
SENDPRO_API_BASE_URLNohttps://api.flowmailer.netSendPro API base URL.
SENDPRO_AUTH_BASE_URLNohttps://login.flowmailer.netOAuth base URL.
SENDPRO_API_MEDIA_TYPENoapplication/vnd.flowmailer.v1.12+jsonSendPro vendor media type.

Legacy aliases are supported:

CurrentSpotler aliasLegacy FlowMailer alias
SENDPRO_ACCOUNT_IDSPOTLER_SENDPRO_ACCOUNT_IDFLOWMAILER_ACCOUNT_ID
SENDPRO_CLIENT_IDSPOTLER_SENDPRO_CLIENT_IDFLOWMAILER_CLIENT_ID
SENDPRO_CLIENT_SECRETSPOTLER_SENDPRO_CLIENT_SECRETFLOWMAILER_CLIENT_SECRET
SENDPRO_READ_ONLYSPOTLER_SENDPRO_READ_ONLYFLOWMAILER_READ_ONLY

Precedence is: READ_ONLY, then SENDPRO_*, then SPOTLER_SENDPRO_*, then FLOWMAILER_*.

Creating SendPro API Credentials

SendPro uses OAuth2 client credentials. You need three values:

  • account id
  • client id
  • client secret

The public SendPro API docs state that the API uses OAuth2 client credentials, that the access token endpoint is https://login.flowmailer.net/oauth/token, and that the client_id, client_secret, grant_type=client_credentials, and optional scope=api form values are used to request a token. The same docs also expose source-system credential endpoints under /{account_id}/sources/{source_id}/users, including endpoints to list, create, get, update, and delete source credentials.

In the SendPro dashboard, the exact labels can vary by account, but the usual path is:

  1. Sign in to Spotler SendPro.
  2. Go to Setup.
  3. Open Sources or Source systems.
  4. Select the source system that should be used for API access, or create a dedicated source for MCP/automation usage.
  5. Open the source credentials/users section.
  6. Create new credentials with a clear description such as MCP read-only.
  7. Copy the generated client id and client secret, and store them in your MCP client environment.
  8. Use the SendPro account id from your account URL, dashboard context, or API settings as SENDPRO_ACCOUNT_ID.

For AI-agent usage, prefer credentials that are limited to the minimum access needed. Keep this MCP server in read-only mode unless you explicitly need submit, simulate, or resend operations.

Official references:

Codex

Add this to ~/.codex/config.toml:

[mcp_servers.sendpro_flowmailer]
command = "npx"
args = ["-y", "sendpro-flowmailer-mcp"]
startup_timeout_sec = 20.0

[mcp_servers.sendpro_flowmailer.env]
SENDPRO_ACCOUNT_ID = "your-account-id"
SENDPRO_CLIENT_ID = "your-client-id"
SENDPRO_CLIENT_SECRET = "your-client-secret"
SENDPRO_READ_ONLY = "true"

To run directly from GitHub:

[mcp_servers.sendpro_flowmailer]
command = "npx"
args = ["-y", "github:Mestika/sendpro-flowmailer-mcp"]
startup_timeout_sec = 20.0

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "sendpro-flowmailer": {
      "command": "npx",
      "args": ["-y", "sendpro-flowmailer-mcp"],
      "env": {
        "SENDPRO_ACCOUNT_ID": "your-account-id",
        "SENDPRO_CLIENT_ID": "your-client-id",
        "SENDPRO_CLIENT_SECRET": "your-client-secret",
        "SENDPRO_READ_ONLY": "true"
      }
    }
  }
}

Read-Only Mode

SENDPRO_READ_ONLY defaults to true.

When read-only mode is enabled:

  • MCP schemas only allow GET for the generic request tool.
  • Mutating helper tools are not registered.
  • The low-level client rejects POST, PUT, PATCH, and DELETE SendPro API requests before requesting an OAuth token.

OAuth itself still uses POST https://login.flowmailer.net/oauth/token, because SendPro requires OAuth2 client credentials before any resource can be read. The read-only guard applies to SendPro API resource calls against the configured API base URL.

Tools

Read tools:

ToolDescription
flowmailer_requestGeneric relative SendPro API request. In read-only mode, only GET is accepted.
flowmailer_endpoint_catalogLists SendPro endpoints known by this server.
flowmailer_list_messagesLists messages using SendPro reference-range paging.
flowmailer_get_messageGets one message by id.
flowmailer_get_message_archiveGets archived content metadata for a message.
flowmailer_get_message_error_archiveGets archived error content for a message.
flowmailer_get_recipientGets recipient information.
flowmailer_list_resourceLists common resources such as flows, templates, sender domains, sources, and stats.

Write tools, only when SENDPRO_READ_ONLY=false:

ToolDescription
flowmailer_submit_messageSubmits an email or SMS message.
flowmailer_simulate_messageSimulates an email or SMS message.
flowmailer_resend_messageResends a message by id.

The tool names currently retain the FlowMailer prefix because the public SendPro API and media types still use FlowMailer naming in several places. Package names and documentation use both SendPro and FlowMailer for discoverability.

Examples

List messages:

{
  "method": "GET",
  "path": "/{account_id}/messages",
  "matrix": {
    "daterange": "2026-05-01T00:00:00Z,2026-05-20T00:00:00Z"
  },
  "query": {
    "addevents": true,
    "sortfield": "INSERTED",
    "sortorder": "ASC"
  },
  "range": "items=:10"
}

List flows through the convenience tool:

{
  "resource": "flows"
}

Submit a message, only with SENDPRO_READ_ONLY=false:

{
  "body": {
    "messageType": "EMAIL",
    "headerFromAddress": "[email protected]",
    "headerToAddress": "[email protected]",
    "subject": "Hello",
    "text": "Message body"
  }
}

Development

npm install
npm run check

Useful commands:

npm run dev
npm run build
npm run typecheck
npm test
npm run inspect

For repository structure, badges, release hygiene, and maintenance settings, see docs/repository-health.md.

Publishing

This package is published to npm as sendpro-flowmailer-mcp, and the repository includes MCP Registry metadata for registry submission.

For npm:

npm publish --access public

For the official MCP Registry, publish server.json after the npm package exists. The npm package includes:

{
  "mcpName": "io.github.mestika/sendpro-flowmailer-mcp"
}

Releases and Versions

This project uses semantic version tags such as v0.1.0, v0.1.1, and v1.0.0.

Use:

npm run version:patch  # bug fixes and small documentation-only release updates
npm run version:minor  # new backwards-compatible tools or features
npm run version:major  # breaking changes
git push origin main --follow-tags

Then create a GitHub Release from the new tag. The GitHub Release is the public changelog entry; the Git tag is the exact source snapshot. See docs/releasing.md for the full checklist.

Security

Never commit real SendPro credentials. Use MCP client environment variables, shell environment variables, or a local .env file.

See SECURITY.md for vulnerability reporting and operational notes.

License

MIT. See LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.