plunk-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLUNK_API_KEY | Yes | Secret API key (sk_*) from your project settings. Used for all admin endpoints and for /v1/send / /v1/verify. | |
| PLUNK_API_URL | No | Base URL of your Plunk API. For self-hosted, point at the API host. | https://api.useplunk.com |
| PLUNK_PUBLIC_KEY | No | Public API key (pk_*). Required for plunk_track_event — Plunk's /v1/track endpoint is gated by the public key, not the secret key. Without this set, track_event will 401. | |
| PLUNK_SKIP_CAPABILITY_DETECTION | No | Skip the startup probe and expose every tool regardless of what your instance supports. Useful for debugging. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| plunk_send_transactionalA | Send a transactional email. Provide subject+body OR a template UUID. |
| plunk_track_eventA | Track an event for a contact (creates the contact if missing). Used to drive workflows and segment filters. Requires PLUNK_PUBLIC_KEY (pk_*) to be set — /v1/track is gated by the public key, not the secret key. |
| plunk_verify_emailB | Validate that an email address is deliverable. |
| plunk_list_contactsA | List contacts. Supports cursor pagination, search (case-insensitive email substring), subscription-state filter, and column sort. |
| plunk_get_contactA | Get a single contact by UUID. |
| plunk_create_contactA | Create or upsert a contact by email. Emails are normalized server-side (case + whitespace) on v0.12+, so you don't need to lowercase or trim client-side. |
| plunk_update_contactA | Update fields on an existing contact (PATCH). Pass |
| plunk_delete_contactA | Delete a contact by UUID. |
| plunk_subscribe_contactA | Subscribe a contact via their public id (the id embedded in unsubscribe links, NOT the regular UUID). For batch subscribes by regular id, use plunk_bulk_subscribe_contacts. |
| plunk_unsubscribe_contactA | Unsubscribe a contact via their public id. For batch unsubscribes by regular id, use plunk_bulk_unsubscribe_contacts. |
| plunk_upload_imageA | Upload an image (e.g. for use in templates or campaigns). Pass the file as base64. Note: the underlying endpoint is multipart; this tool sends a JSON shim — if your Plunk version requires multipart, use the dashboard upload flow. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct resource/action: event tracking, transactional email, email verification, contact CRUD, subscribe/unsubscribe, and image upload. The only potential overlap between update_contact and subscribe/unsubscribe is clarified by different ID types (UUID vs public id).
All tools follow a consistent plunk_verb_noun pattern with snake_case (e.g., plunk_list_contacts, plunk_create_contact). The naming is predictable and uniform across the entire set.
11 tools is well-scoped for an email service MCP, covering contacts, events, email sending, verification, and image upload. It is neither too sparse nor bloated.
Core CRUD and essential operations are present, but the descriptions reference plunk_bulk_subscribe_contacts and plunk_bulk_unsubscribe_contacts which are not provided as tools. This creates a gap for batch operations and may mislead agents into invoking non-existent tools.