Clearstream MCP by usefulapi
Read lists, subscribers, tags and texts; send texts and change subscribers in Clearstream.
Should I use this
Quality & Safety
Findings (3)
- LOWin clearstream_list_subscribers_of_list
- LOWin clearstream_add_subscriber_to_list
- LOWin clearstream_remove_subscriber_from_list
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"clearstream": {
"url": "https://clearstream.usefulapi.io/mcp"
}
}
}Remote endpoints
https://clearstream.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (15)
🟢clearstream_get_account
Get the Clearstream account behind the API key: name, plan and settings. Good first call to confirm which account is connected. Clearstream API: GET /v1/account.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_list_numbers
List the shortcodes and longcodes this account can send texts from, and which one is the default. Clearstream API: GET /v1/numbers.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_list_lists(name, locked, limit, page)
List the subscriber lists (groups) in the account, with subscriber counts. Filter by name or locked state. Clearstream API: GET /v1/lists.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Partial match on the list name.",
"type": "string"
},
"locked": {
"description": "Filter by locked state (default any).",
"type": "string",
"enum": [
"locked",
"not_locked",
"any"
]
},
"limit": {
"description": "Results per page (1-100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_get_list(list_id)
Get one subscriber list: name, subscriber count, active texting subscriber count and sync status. Clearstream API: GET /v1/lists/{id}.
Input Schema
{
"type": "object",
"properties": {
"list_id": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "List id (from clearstream_list_lists)."
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_list_subscribers_of_list(list_id, full_name, first, limit, page)
List the subscribers in one list, with optional name filters. Clearstream API: GET /v1/lists/{id}/subscribers.
Input Schema
{
"type": "object",
"properties": {
"list_id": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "List id (from clearstream_list_lists)."
},
"full_name": {
"description": "Partial match on the full name.",
"type": "string"
},
"first": {
"description": "Partial match on the first name.",
"type": "string"
},
"limit": {
"description": "Results per page (1-100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_list_subscribers(full_name, first, last, mobile_number, limit, ...)
Search the account's subscribers by name or mobile number. Clearstream API: GET /v1/subscribers.
Input Schema
{
"type": "object",
"properties": {
"full_name": {
"description": "Partial match on the full name.",
"type": "string"
},
"first": {
"description": "Partial match on the first name.",
"type": "string"
},
"last": {
"description": "Partial match on the last name.",
"type": "string"
},
"mobile_number": {
"description": "Exact match on the mobile number.",
"type": "string"
},
"limit": {
"description": "Results per page (default 20).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_get_subscriber(mobile_number)
Get one subscriber by mobile number: name, opt-in status, lists and tags. Clearstream API: GET /v1/subscribers/{number}.
Input Schema
{
"type": "object",
"properties": {
"mobile_number": {
"type": "string",
"pattern": "^\\+?[0-9]{4,20}$",
"description": "Mobile number in E.164 format, for example +12005551000."
}
},
"required": [
"mobile_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_list_tags
List the subscriber tags in the account. Clearstream API: GET /v1/tags.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_list_texts(direction, mobile_number, limit, cursor)
List texts in the account's inbox history, incoming or outgoing, optionally for one number. Use the cursor from a previous reply for the next page. Clearstream API: GET /v1/texts.
Input Schema
{
"type": "object",
"properties": {
"direction": {
"description": "IN for incoming, OUT for outgoing.",
"type": "string",
"enum": [
"IN",
"OUT"
]
},
"mobile_number": {
"description": "Exact match on the contact's mobile number.",
"type": "string"
},
"limit": {
"description": "Results per page (1-100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"description": "Pagination cursor from a previous reply.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clearstream_get_text_stats(start, end, timezone)
Get text volume statistics for a date range (YYYY-MM-DD, inclusive). Clearstream API: GET /v1/stats/texts.
Input Schema
{
"type": "object",
"properties": {
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date (YYYY-MM-DD)."
},
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date (YYYY-MM-DD)."
},
"timezone": {
"description": "IANA timezone for the statistics (default UTC).",
"type": "string"
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clearstream_send_text(to, text_body, text_header, from, use_default_header, ...)
Send one SMS to one or more numbers. This sends real messages to real phones and cannot be undone. The customer must hold explicit written consent from every recipient before you use this tool (Clearstream terms, section 4G). Opted-out numbers are skipped (for a list of numbers) or cause an error (for one number). Clearstream API: POST /v1/texts.
Input Schema
{
"type": "object",
"properties": {
"to": {
"anyOf": [
{
"type": "string",
"pattern": "^\\+?[0-9(][0-9 ()\\-.]{3,24}$",
"description": "Mobile number, preferably E.164 format, for example +12005551000."
},
{
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\+?[0-9(][0-9 ()\\-.]{3,24}$",
"description": "Mobile number, preferably E.164 format, for example +12005551000."
},
"description": "Mobile numbers in E.164 format (1-100 per call)."
}
],
"description": "One mobile number, or an array of up to 100 numbers."
},
"text_body": {
"type": "string",
"minLength": 1,
"description": "The message text. Header and body together must fit the character limit."
},
"text_header": {
"description": "Sender name shown before the text, for example the organization name. GSM 7-bit characters only.",
"type": "string"
},
"from": {
"description": "A sending number from clearstream_list_numbers (default: the account shortcode).",
"type": "string"
},
"use_default_header": {
"description": "Use the account default header instead of text_header.",
"type": "boolean"
},
"media_url": {
"description": "Optional JPG or PNG image URL under 5 MB (MMS must be enabled).",
"type": "string",
"format": "uri"
}
},
"required": [
"to",
"text_body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clearstream_add_subscriber(mobile_number, first, last, email, lists, ...)
Create or add one subscriber, with optional lists and tags. By default the subscriber must confirm opt-in by text. The customer must hold explicit written consent from every recipient before you use this tool (Clearstream terms, section 4G). Clearstream API: POST /v1/subscribers.
Input Schema
{
"type": "object",
"properties": {
"mobile_number": {
"type": "string",
"pattern": "^\\+?[0-9(][0-9 ()\\-.]{3,24}$",
"description": "Mobile number, preferably E.164 format, for example +12005551000."
},
"first": {
"description": "First name.",
"type": "string"
},
"last": {
"description": "Last name.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"lists": {
"description": "List ids to add the subscriber to.",
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "List id (from clearstream_list_lists)."
}
},
"tags": {
"description": "Tag ids to add to the subscriber.",
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "Tag id (from clearstream_list_tags)."
}
},
"double_optin": {
"description": "Send a confirmation text before opt-in (default true).",
"type": "boolean"
}
},
"required": [
"mobile_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clearstream_add_subscriber_to_list(list_id, mobile_number)
Add one mobile number to a subscriber list. Locked lists cannot change. The customer must hold explicit written consent from every recipient before you use this tool (Clearstream terms, section 4G). Clearstream API: POST /v1/lists/{id}/subscribers.
Input Schema
{
"type": "object",
"properties": {
"list_id": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "List id (from clearstream_list_lists)."
},
"mobile_number": {
"type": "string",
"pattern": "^\\+?[0-9(][0-9 ()\\-.]{3,24}$",
"description": "Mobile number, preferably E.164 format, for example +12005551000."
}
},
"required": [
"list_id",
"mobile_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clearstream_remove_subscriber_from_list(list_id, mobile_number)
Remove one mobile number from a subscriber list. The subscriber's opt-in status does not change. Locked lists cannot change. Clearstream API: DELETE /v1/lists/{id}/subscribers/{number}.
Input Schema
{
"type": "object",
"properties": {
"list_id": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "List id (from clearstream_list_lists)."
},
"mobile_number": {
"type": "string",
"pattern": "^\\+?[0-9]{4,20}$",
"description": "Mobile number in E.164 format, for example +12005551000."
}
},
"required": [
"list_id",
"mobile_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clearstream_tag_subscribers(tag_id, mobile_numbers)
Add a tag to up to 100 subscribers by mobile number. The customer must hold explicit written consent from every recipient before you use this tool (Clearstream terms, section 4G). Clearstream API: POST /v1/tags/{id}/subscribers.
Input Schema
{
"type": "object",
"properties": {
"tag_id": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{1,20}$"
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
],
"description": "Tag id (from clearstream_list_tags)."
},
"mobile_numbers": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\+?[0-9(][0-9 ()\\-.]{3,24}$",
"description": "Mobile number, preferably E.164 format, for example +12005551000."
},
"description": "Mobile numbers in E.164 format (1-100 per call)."
}
},
"required": [
"tag_id",
"mobile_numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence