Skip to content

Sendlane MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Manage Sendlane lists, contacts, tags and custom fields; read campaign and SMS reports.

Deletes · 9

31 tools: 9 can delete or cancel things and 22 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http sendlane https://sendlane.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

31 tools

Deletes or cancels 9Claude Code: deny
  • sendlane_add_contact_tagsWRITE: put one or more existing tags on a contact.No findings

    Why it is in this group

    • The name "sendlane_add_contact_tags" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: put one or more existing tags on a contact. POST /contacts/{contactId}/tags.

    Annotations the server declares

    • title: Tag a contact
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • sendlane_add_contacts_to_listWRITE: add one or more contacts (up to 100) to a list; a contact that does not exist is created.No findings

    Why it is in this group

    • The name "sendlane_add_contacts_to_list" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: add one or more contacts (up to 100) to a list; a contact that does not exist is created. Each needs an email or a phone. Sendlane accepts the request for processing (HTTP 202). Only add people who agreed to receive marketing. POST /lists/{listId}/contacts.

    Annotations the server declares

    • title: Add contacts to a list
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • sendlane_create_listWRITE: create an audience list.No findings

    Why it is in this group

    • The name "sendlane_create_list" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: create an audience list. Not idempotent: calling it twice makes two lists. POST /lists.

    Annotations the server declares

    • title: Create list
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • sendlane_create_tagWRITE: create a contact tag.No findings

    Why it is in this group

    • The name "sendlane_create_tag" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: create a contact tag. POST /tags.

    Annotations the server declares

    • title: Create tag
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • sendlane_remove_contact_from_listWRITE: remove one contact from one list (the contact stays in the account).No findings

    Why it is in this group

    • The name "sendlane_remove_contact_from_list" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: remove one contact from one list (the contact stays in the account). DELETE /lists/{listId}/contacts/{contactId}.

    Annotations the server declares

    • title: Remove a contact from a list
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • sendlane_remove_contact_tagWRITE: remove one tag from a contact (the tag itself is kept).No findings

    Why it is in this group

    • The name "sendlane_remove_contact_tag" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: remove one tag from a contact (the tag itself is kept). DELETE /contacts/{contactId}/tags/{tagId}.

    Annotations the server declares

    • title: Untag a contact
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • sendlane_set_contact_custom_fieldsWRITE: add custom field values to a contact.No findings

    Why it is in this group

    • The name "sendlane_set_contact_custom_fields" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: add custom field values to a contact. Field ids come from sendlane_list_custom_fields. POST /contacts/{contactId}/custom-fields.

    Annotations the server declares

    • title: Set contact custom fields
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • sendlane_unsubscribe_contactWRITE: unsubscribe one contact from email marketing.No findings

    Why it is in this group

    • The name "sendlane_unsubscribe_contact" says "unsubscribe": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: unsubscribe one contact from email marketing. The contact stops receiving campaigns. POST /contacts/{contactId}/unsubscribe.

    Annotations the server declares

    • title: Unsubscribe a contact
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • sendlane_update_listWRITE: rename a list and/or change its description (a full update: name is required, an omitted description may be cleared).No findings

    Why it is in this group

    • The name "sendlane_update_list" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: rename a list and/or change its description (a full update: name is required, an omitted description may be cleared). PUT /lists/{listId}.

    Annotations the server declares

    • title: Update list
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Only reads 22Claude Code: allow
  • sendlane_get_campaignOne email campaign by id.No findings

    Why it is in this group

    • The name "sendlane_get_campaign" says "get": a word for reading.
    Description, as the server wrote it
    One email campaign by id. GET /campaigns/{campaignId}.

    Annotations the server declares

    • title: Get campaign
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_campaign_reportStatistics of one email campaign: sent, opens, clicks (unique too), bounced, suppressed, unsubscribed, spam, revenue.No findings

    Why it is in this group

    • The name "sendlane_get_campaign_report" says "get": a word for reading.
    Description, as the server wrote it
    Statistics of one email campaign: sent, opens, clicks (unique too), bounced, suppressed, unsubscribed, spam, revenue. from/to limit the period. GET /campaigns/{campaignId}/report.

    Annotations the server declares

    • title: Get campaign report
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_contactOne contact by id, with lists, tags, custom fields, consent, lifetime value and subscribed/suppressed state.No findings

    Why it is in this group

    • The name "sendlane_get_contact" says "get": a word for reading.
    Description, as the server wrote it
    One contact by id, with lists, tags, custom fields, consent, lifetime value and subscribed/suppressed state. GET /contacts/{contactId}.

    Annotations the server declares

    • title: Get contact
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_contact_custom_fieldsThe custom field values of one contact.No findings

    Why it is in this group

    • The name "sendlane_get_contact_custom_fields" says "get": a word for reading.
    Description, as the server wrote it
    The custom field values of one contact. GET /contacts/{contactId}/custom-fields.

    Annotations the server declares

    • title: Get contact custom fields
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_contact_subscriptionsThe list subscriptions of one contact: list, subscribed/suppressed state, who added it and when.No findings

    Why it is in this group

    • The name "sendlane_get_contact_subscriptions" says "get": a word for reading.
    Description, as the server wrote it
    The list subscriptions of one contact: list, subscribed/suppressed state, who added it and when. GET /contacts/{contactId}/subscriptions.

    Annotations the server declares

    • title: Get contact subscriptions
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_contact_tagsThe tags on one contact.No findings

    Why it is in this group

    • The name "sendlane_get_contact_tags" says "get": a word for reading.
    Description, as the server wrote it
    The tags on one contact. GET /contacts/{contactId}/tags.

    Annotations the server declares

    • title: Get contact tags
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_listOne audience list by id.No findings

    Why it is in this group

    • The name "sendlane_get_list" says "get": a word for reading.
    Description, as the server wrote it
    One audience list by id. GET /lists/{listId}.

    Annotations the server declares

    • title: Get list
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_sms_reportStatistics of one SMS message: sent, delivered, clicks, failed, replies, unsubscribed, credits, revenue.No findings

    Why it is in this group

    • The name "sendlane_get_sms_report" says "get": a word for reading.
    Description, as the server wrote it
    Statistics of one SMS message: sent, delivered, clicks, failed, replies, unsubscribed, credits, revenue. from/to limit the period. GET /sms-messages/{messageId}/report.

    Annotations the server declares

    • title: Get SMS report
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_get_tagOne tag by id.No findings

    Why it is in this group

    • The name "sendlane_get_tag" says "get": a word for reading.
    Description, as the server wrote it
    One tag by id. GET /tags/{tagId}.

    Annotations the server declares

    • title: Get tag
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_campaignsEmail campaigns: id, name, status, scheduled and sent time, automation.No findings

    Why it is in this group

    • The name "sendlane_list_campaigns" says "list": a word for reading.
    Description, as the server wrote it
    Email campaigns: id, name, status, scheduled and sent time, automation. GET /campaigns.

    Annotations the server declares

    • title: List campaigns
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_contactsAll contacts of the account: email, name, phone, lists, tags, custom fields, subscribed/suppressed state.No findings

    Why it is in this group

    • The name "sendlane_list_contacts" says "list": a word for reading.
    Description, as the server wrote it
    All contacts of the account: email, name, phone, lists, tags, custom fields, subscribed/suppressed state. Filter by creation time with from/to. GET /contacts.

    Annotations the server declares

    • title: List contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_custom_fieldsThe custom contact fields of the account: id, name, type.No findings

    Why it is in this group

    • The name "sendlane_list_custom_fields" says "list": a word for reading.
    Description, as the server wrote it
    The custom contact fields of the account: id, name, type. Use the ids when setting field values. GET /custom-fields.

    Annotations the server declares

    • title: List custom fields
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_list_contactsContacts on one list: email, name, phone, subscribed/suppressed state, tags, custom fields, lifetime value.No findings

    Why it is in this group

    • The name "sendlane_list_list_contacts" says "list": a word for reading.
    Description, as the server wrote it
    Contacts on one list: email, name, phone, subscribed/suppressed state, tags, custom fields, lifetime value. GET /lists/{listId}/contacts.

    Annotations the server declares

    • title: List contacts of a list
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_list_unsubscribedContacts that unsubscribed from one list.No findings

    Why it is in this group

    • The name "sendlane_list_list_unsubscribed" says "list": a word for reading.
    Description, as the server wrote it
    Contacts that unsubscribed from one list. GET /lists/{listId}/unsubscribed.

    Annotations the server declares

    • title: List unsubscribed contacts of a list
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_listsList the audience lists of the account: id, name, description, status, created date.No findings

    Why it is in this group

    • The name "sendlane_list_lists" says "list": a word for reading.
    Description, as the server wrote it
    List the audience lists of the account: id, name, description, status, created date. GET /lists.

    Annotations the server declares

    • title: List lists
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_segment_contactsContacts in one segment: id, email, name, phone.No findings

    Why it is in this group

    • The name "sendlane_list_segment_contacts" says "list": a word for reading.
    Description, as the server wrote it
    Contacts in one segment: id, email, name, phone. GET /segments/{segmentId}/contacts.

    Annotations the server declares

    • title: List contacts of a segment
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_segmentsThe segments of the account: id, name, list, match rule, last count.No findings

    Why it is in this group

    • The name "sendlane_list_segments" says "list": a word for reading.
    Description, as the server wrote it
    The segments of the account: id, name, list, match rule, last count. GET /segments.

    Annotations the server declares

    • title: List segments
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_sender_profilesThe sender profiles (from name, from/reply email, postal address, default flag).No findings

    Why it is in this group

    • The name "sendlane_list_sender_profiles" says "list": a word for reading.
    Description, as the server wrote it
    The sender profiles (from name, from/reply email, postal address, default flag). GET /senders.

    Annotations the server declares

    • title: List sender profiles
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_sms_messagesSMS messages (campaign and automation): id, name, campaign status, automation.No findings

    Why it is in this group

    • The name "sendlane_list_sms_messages" says "list": a word for reading.
    Description, as the server wrote it
    SMS messages (campaign and automation): id, name, campaign status, automation. GET /sms-messages.

    Annotations the server declares

    • title: List SMS messages
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_tag_contactsContacts that carry one tag.No findings

    Why it is in this group

    • The name "sendlane_list_tag_contacts" says "list": a word for reading.
    Description, as the server wrote it
    Contacts that carry one tag. GET /tags/{tagId}/contacts.

    Annotations the server declares

    • title: List contacts with a tag
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_tagsThe contact tags of the account: id, name, audience count.No findings

    Why it is in this group

    • The name "sendlane_list_tags" says "list": a word for reading.
    Description, as the server wrote it
    The contact tags of the account: id, name, audience count. GET /tags.

    Annotations the server declares

    • title: List tags
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • sendlane_list_unsubscribed_contactsContacts that unsubscribed from the account.No findings

    Why it is in this group

    • The name "sendlane_list_unsubscribed_contacts" says "list": a word for reading.
    Description, as the server wrote it
    Contacts that unsubscribed from the account. GET /contacts/unsubscribed.

    Annotations the server declares

    • title: List unsubscribed contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http sendlane https://sendlane.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__sendlane__sendlane_list_lists",
      "mcp__sendlane__sendlane_get_list",
      "mcp__sendlane__sendlane_list_list_contacts",
      "mcp__sendlane__sendlane_list_list_unsubscribed",
      "mcp__sendlane__sendlane_list_contacts",
      "mcp__sendlane__sendlane_get_contact",
      "mcp__sendlane__sendlane_list_unsubscribed_contacts",
      "mcp__sendlane__sendlane_get_contact_subscriptions",
      "mcp__sendlane__sendlane_get_contact_tags",
      "mcp__sendlane__sendlane_get_contact_custom_fields",
      "mcp__sendlane__sendlane_list_tags",
      "mcp__sendlane__sendlane_get_tag",
      "mcp__sendlane__sendlane_list_tag_contacts",
      "mcp__sendlane__sendlane_list_custom_fields",
      "mcp__sendlane__sendlane_list_segments",
      "mcp__sendlane__sendlane_list_segment_contacts",
      "mcp__sendlane__sendlane_list_campaigns",
      "mcp__sendlane__sendlane_get_campaign",
      "mcp__sendlane__sendlane_get_campaign_report",
      "mcp__sendlane__sendlane_list_sms_messages",
      "mcp__sendlane__sendlane_get_sms_report",
      "mcp__sendlane__sendlane_list_sender_profiles"
    ],
    "ask": [],
    "deny": [
      "mcp__sendlane__sendlane_create_list",
      "mcp__sendlane__sendlane_update_list",
      "mcp__sendlane__sendlane_add_contacts_to_list",
      "mcp__sendlane__sendlane_remove_contact_from_list",
      "mcp__sendlane__sendlane_unsubscribe_contact",
      "mcp__sendlane__sendlane_create_tag",
      "mcp__sendlane__sendlane_add_contact_tags",
      "mcp__sendlane__sendlane_remove_contact_tag",
      "mcp__sendlane__sendlane_set_contact_custom_fields"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as sendlane. Review it before you use it.