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

@sendinel/mcp-server

v1.0.157

Published

AI-controlled email operations control plane for campaigns, contacts, segments, analytics, and multi-provider sending via MCP.

Readme

@sendinel/mcp-server

Sendinel's published MCP server package for local stdio clients such as Claude Desktop, Claude Code, Cursor, and Codex CLI.

AI-controlled email operations control plane for campaigns, contacts, segments, templates, analytics, deliverability, and multi-provider sending across the Sendinel portfolio.

  • Categories: email, marketing, crm, automation, analytics
  • Official registry name: ai.sendinel/mcp-server
  • Hosted remote endpoint: https://sendinel.ai/mcp
  • npm package: @sendinel/mcp-server
  • Source: https://github.com/kmdesle/sendinel-ai/tree/main/packages/mcp-server

Tool groups

emit_contact_event (contacts, write scope) records an event and can enroll contacts into active sending campaigns. It requires standard human approval, preserves REST outcomes, and redacts failures. See the event-triggered campaign guide for inputs, idempotency, subscription requirements, and conditional step examples.

Sendinel currently exposes 35 tool groups and 346 tools (gateway mode exposes 4 meta-tools, sharing how_to with full mode). These counts are checked against the tool registry in CI, so this table matches what ships.

| Group | Count | Purpose | |-------|-------|---------| | ab-testing | 4 | A/B test creation, listing, significance checks, winner promotion | | agent-mailboxes | 6 | Bound inbox, threads, status and always-approved replies/provisioning | | advisor | 6 | Campaign advisor: recommendations, benchmarks, subject/content/send-time guidance | | ai-work | 9 | AI work items, recommended segments, context events, agent proposals | | analytics | 15 | Stats, portfolio analytics, project switching, domain health, engagement, deliverability, revenue analytics | | approvals | 5 | Poll/list approvals, person OAuth approval, write-scoped cancellation, opted-in chat confirmation | | automations | 7 | Automation triggers, previews, and response-gated escalation ladders | | brand_kit | 6 | Brand Core text import, media library upload/URL ingest, asset-context reads, project logo selection | | campaigns | 44 | Full campaign lifecycle: create, edit, approve, launch, enroll, schedule, sequence templates, convert imported campaigns | | cloud-import | 6 | Cloud storage import | | compound | 4 | Higher-level campaign/template/site setup and delivery diagnosis workflows | | connector | 6 | BYOD connector status, table discovery, schema/view setup, mapping, resync | | contacts | 40 | Subscriber CRUD, saved views, tags, email log, suppression, merge, timeline | | content | 14 | Content blocks, gated asset links, blog ingest and auto-publish, sources | | data | 19 | Platform connectors, imports, API keys, migration jobs, notifications, tenant export | | data-proposals | 3 | Data-derived campaign proposal generation, listing, approval | | delivery-ops | 25 | Domains, DNSBL, deliverability diagnostics, queue, DLQ, exports, blackout dates, abuse overrides | | drafts | 6 | Draft create/approve/reject and draft-to-campaign promotion | | forms | 3 | Form creation, listing, stats | | gdpr | 4 | Contact data deletion and GDPR log | | landing-pages | 5 | Landing page CRUD | | lists | 7 | Static contact lists and membership management | | newsletters | 12 | Newsletter publications, issues, subscribers, scheduling, sending, stats | | org | 24 | Team members, plan usage/limits, audit log, model registry, white-label, support tickets, outbound digest, provider switching | | segments | 6 | Audience builder: create, edit, natural-language generation, preview | | short-links | 3 | Short links, click stats, QR codes | | signatures | 4 | Sending signature blocks | | sites | 5 | Site, sender, and brand voice management | | skills | 3 | Operator skills catalog | | sms | 7 | SMS send, log, consent, inbound | | social-posts | 17 | Social campaign creation, publisher scheduling, social posts, engagement reads, and LinkedIn reply proposals for human review | | surveys | 5 | Survey creation, listing, status, results | | templates | 7 | Email template CRUD, version restore, migration translation | | warmup | 4 | IP/domain warmup schedule control | | webhooks | 5 | Webhook subscription management |

cancel_approval({approval_id}) rejects an unexpired, unused pending/approved request in the current project for any write-scoped credential. approve_approval({approval_id}) requires the person's own live OAuth connection (connection_role: NULL) and its own pending request in that project. Tester, agent, API key, service-token and scoped-JWT credentials cannot approve. Sends and deletes still need approval; the user may answer through their AI without another verification prompt. See approval tools.

Install / run

npx -y @sendinel/mcp-server@latest

The package also exposes the legacy bin alias:

npx -y sendinel-mcp

Required environment

  • SENDINEL_API_KEY

Optional server-side env when you run the package outside the main Sendinel app environment:

  • SUPABASE_URL or NEXT_PUBLIC_SUPABASE_URL
  • SUPABASE_SERVICE_ROLE_KEY
  • MCP_TRANSPORT (stdio by default, http for HTTP/SSE mode)
  • MCP_SERVER_PORT (HTTP mode only)

Stdio mode fails closed if SENDINEL_API_KEY is missing or invalid.

MCP client examples

Claude Desktop / Cursor

{
  "mcpServers": {
    "sendinel": {
      "command": "npx",
      "args": ["-y", "@sendinel/mcp-server@latest"],
      "env": {
        "SENDINEL_API_KEY": "snk_your_api_key"
      }
    }
  }
}

Codex CLI

[mcp_servers.sendinel]
command = "npx"
args = ["-y", "@sendinel/mcp-server@latest"]

[mcp_servers.sendinel.env]
SENDINEL_API_KEY = "snk_your_api_key"

Or add it automatically:

codex mcp add sendinel --env SENDINEL_API_KEY=snk_your_api_key -- npx "-y" "@sendinel/mcp-server@latest"

Transport

  • stdio by default
  • http when MCP_TRANSPORT=http

Publishing

This package is intended to be published publicly to npm and listed in MCP directories:

  • package name: @sendinel/mcp-server
  • default launcher: npx -y @sendinel/mcp-server@latest
  • official registry manifest: server.json
  • Smithery config: ../../smithery.yaml