SendPost MCP by usefulapi

Inspect SendPost delivery statistics, sending IPs, message metadata, domains, and suppressions.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
88%
Naming quality
99%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'sendpost_get_account_group_stats' name length outside 3-30 rangein sendpost_get_account_group_stats

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,980Tokens (tool definitions)
~1.5 KBTypical response size
Significant attention impact (3.11% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sendpost": {
      "url": "https://sendpost.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://sendpost.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (15)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢sendpost_list_subaccounts(limit, offset, search)

READ (account key): List sub-accounts and safe account metadata. API keys and SMTP credentials are never returned.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 20,
      "description": "Maximum records, up to 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "description": "Records to skip for pagination.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_subaccount(subaccount_id)

READ (account key): Get a sub-account's safe metadata, labels and blocked state. Credentials are excluded.

Input Schema

{
  "type": "object",
  "properties": {
    "subaccount_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "subaccount_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_list_ips(limit, offset, search)

READ (account key): List sending IPs, warmup and state metadata. Does not allocate or change IPs.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 20,
      "description": "Maximum records, up to 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "description": "Records to skip for pagination.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_ip(ip_id)

READ (account key): Inspect an existing sending IP's public address, reverse DNS and warmup state.

Input Schema

{
  "type": "object",
  "properties": {
    "ip_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "ip_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_list_ip_pools(limit, offset, search)

READ (account key): List IP pool names, routing strategy, overflow settings and safe public IP metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 20,
      "description": "Maximum records, up to 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "description": "Records to skip for pagination.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_ip_pool(ippool_id)

READ (account key): Inspect one IP pool's routing strategy, overflow settings and public IP metadata. Provider credentials and routing internals are excluded.

Input Schema

{
  "type": "object",
  "properties": {
    "ippool_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "ippool_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_list_account_stats(from, to)

READ (account key): Daily delivery, bounce, open, click, unsubscribe and spam counts across sub-accounts. Use up to 366 days per call.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Start date, YYYY-MM-DD (UTC)."
    },
    "to": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "End date, YYYY-MM-DD (UTC)."
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_account_stats(from, to)

READ (account key): Aggregate delivery and engagement counts across sub-accounts over a date range, up to 366 days.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Start date, YYYY-MM-DD (UTC)."
    },
    "to": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "End date, YYYY-MM-DD (UTC)."
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_account_group_stats(from, to, group)

READ (account key): Aggregate delivery and engagement counts for an existing group/tag across sub-accounts, up to 366 days.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Start date, YYYY-MM-DD (UTC)."
    },
    "to": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "End date, YYYY-MM-DD (UTC)."
    },
    "group": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Existing message group/tag, for example transactional."
    }
  },
  "required": [
    "from",
    "to",
    "group"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_list_subaccount_stats(from, to, subaccount_id)

READ (account key): Read a sub-account's delivery and engagement statistic records for a date range, up to 366 days.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Start date, YYYY-MM-DD (UTC)."
    },
    "to": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "End date, YYYY-MM-DD (UTC)."
    },
    "subaccount_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "from",
    "to",
    "subaccount_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_subaccount_stats(from, to, subaccount_id)

READ (account key): Aggregate delivery and engagement counts for one sub-account over a date range, up to 366 days.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Start date, YYYY-MM-DD (UTC)."
    },
    "to": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "End date, YYYY-MM-DD (UTC)."
    },
    "subaccount_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "from",
    "to",
    "subaccount_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_message_metadata(message_id)

READ (account key): Inspect a submitted message's ID, sender, recipient, subject, groups and routing metadata. Excludes bodies, attachments, custom headers and recipient custom fields. Large messages may exceed the 1 MiB read limit.

Input Schema

{
  "type": "object",
  "properties": {
    "message_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9_-]+$"
    }
  },
  "required": [
    "message_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_list_domains(limit, offset, search)

READ (sub-account key): Audit sending domains, DNS record configuration and verification failures. Does not create or verify domains.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 20,
      "description": "Maximum records, up to 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "description": "Records to skip for pagination.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_get_domain(domain_id)

READ (sub-account key): Inspect a sending domain's DNS records and verification status.

Input Schema

{
  "type": "object",
  "properties": {
    "domain_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "domain_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sendpost_list_suppressions(from, to, limit, offset, search, ...)

READ (sub-account key): Inspect suppressions and documented reasons within a date range, with pagination. Does not add or remove suppressions.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "Start date, YYYY-MM-DD (UTC)."
    },
    "to": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      "description": "End date, YYYY-MM-DD (UTC)."
    },
    "limit": {
      "default": 20,
      "description": "Maximum records, up to 100.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "description": "Records to skip for pagination.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "maxLength": 200
    },
    "type": {
      "type": "string",
      "enum": [
        "hardBounce",
        "manual",
        "spamComplaint",
        "unsubscribe"
      ]
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded15 tools