npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

supersendtx-mcp

v0.6.47

Published

SuperSend TX MCP server — mail tools plus Ranla agent-first tools for Cursor and Claude

Readme

supersendtx-mcp

MCP server for SuperSend TX — send email and manage domains, webhooks, suppressions, and templates from Cursor, Claude Code, and other MCP clients, and talk to Ranla, the agent in the same account.

Install: npx -y supersendtx-mcp@latest · Docs: https://docs.ranla.ai/ai/mcp

Transports

| Mode | Command / URL | Auth | |------|---------------|------| | stdio (default) | npx -y supersendtx-mcp@latest | SUPERSENDTX_API_KEY=stx_… or rnl_… | | HTTP (local) | npx -y supersendtx-mcp@latest --http --port 3000 | Authorization: Bearer stx_… or rnl_… on each request | | HTTP (hosted) | https://mcp.ranla.ai/mcp | OAuth (default) or Authorization: Bearer stx_… or rnl_… |

Create API keys on the dashboard API keys page. RANLA_API_KEY works in place of SUPERSENDTX_API_KEY. Optional: SUPERSENDTX_API_URL sets the mail API base URL (default https://api.supersendtx.com). Over HTTP the server reads only the Authorization header.

Local HTTP endpoint: http://127.0.0.1:3000/mcp · health: GET /health
Hosted health: GET https://mcp.ranla.ai/health

Hosted OAuth: add only "url": "https://mcp.ranla.ai/mcp". The client opens a browser to sign in on app.ranla.ai; click Allow access. https://mcp.supersendtx.com/mcp is the same server, and existing configs keep working. A Bearer key still works for advanced setups.


Cursor (stdio)

.cursor/mcp.json:

{
  "mcpServers": {
    "supersendtx": {
      "command": "npx",
      "args": ["-y", "supersendtx-mcp@latest"],
      "env": {
        "SUPERSENDTX_API_KEY": "stx_your_key_here"
      }
    }
  }
}

Keep @latest in the args: without it npx reuses whatever version it downloaded first. When the local stdio server is out of date it logs one line to stderr and tells your agent once (in its instructions and on one tool result), so the agent can ask you to restart. It checks npm at most once a day; turn it off with SUPERSENDTX_MCP_NO_UPDATE_CHECK=1.

Cursor (local HTTP)

npx -y supersendtx-mcp@latest --http --port 3000
{
  "mcpServers": {
    "supersendtx": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer stx_your_key_here"
      }
    }
  }
}

Cursor (hosted)

OAuth (default) — no key in config:

{
  "mcpServers": {
    "supersendtx": {
      "url": "https://mcp.ranla.ai/mcp"
    }
  }
}

Bearer (advanced):

{
  "mcpServers": {
    "supersendtx": {
      "url": "https://mcp.ranla.ai/mcp",
      "headers": {
        "Authorization": "Bearer stx_your_key_here"
      }
    }
  }
}

Claude Code

# HTTP (hosted, OAuth — run /mcp in Claude Code to sign in)
claude mcp add --transport http supersendtx https://mcp.ranla.ai/mcp

# stdio
claude mcp add --transport stdio supersendtx -- npx -y supersendtx-mcp@latest

# HTTP (local — after starting --http server)
claude mcp add --transport http supersendtx http://127.0.0.1:3000/mcp --header "Authorization: Bearer stx_your_key_here"

Export SUPERSENDTX_API_KEY for stdio.


Tools

Mail tools

These call the public API through the supersendtx SDK.

| Tool | Purpose | |------|---------| | send_email | Send now, or later with scheduled_at | | list_emails / get_email | List or fetch sends | | cancel_email | Cancel a scheduled send | | list_received_emails / get_received_email | Inbound mail | | list_domains / get_domain / create_domain | Domains; get_domain returns DNS records | | apply_domain_dns / verify_domain | Apply DNS (cloudflare, godaddy, vercel) and verify | | list_webhooks / create_webhook / delete_webhook | Webhook endpoints | | list_suppressions / add_suppression / remove_suppression | Suppression list | | list_templates / get_template / create_template / publish_template | Templates | | send_test_webhook_event | Test webhook event (outbound email events) | | get_deliverability | Best-effort metrics (7d / 30d) |

send_email takes from, to, and either subject with html / text or template_id / template_alias with variables. Optional: cc, bcc, reply_to, scheduled_at, category (transactional, product, newsletter), tags, headers, idempotency_key, unsubscribe. Recipient fields take one address, several separated by commas, or an array.

Ranla agent tools

These call the app host and need a full-access key (OAuth sign-in and dashboard keys have one; a sending-scope key gets a 403).

| Tool | Purpose | |------|---------| | arc_ensure_thread / arc_list_threads | Durable thread for this client; list threads a page at a time | | arc_get_thread | Read a thread's messages, artifacts and waiting approvals | | arc_message | Send text to Ranla and wait for the turn — returns text, artifacts, and pendingApproval | | arc_list_approvals / arc_approve / arc_reject | Answer approvals | | arc_ranla | Run one of Ranla's commands (campaign list, page propose, connection request). The description lists them from the account; help <noun> gives every field. What needs sign-off comes back as pendingApproval |

Flow: arc_ensure_thread, then arc_message or arc_ranla, and if a step needs approval, arc_list_approvals, then arc_approve or arc_reject.

An SEO page approval also carries actionId: run arc_ranla with page get and that actionId to read the draft, for example to build the page in your own repo.

Every tool has a title and readOnlyHint / destructiveHint annotations, so clients can run reads without asking and confirm writes.

Full reference: https://docs.ranla.ai/ai/mcp

License

MIT