TextUs MCP by usefulapi

Read texts, contacts, campaigns and opt-outs; send SMS, add contacts and notes in TextUs.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
97%
命名质量
78%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(2)

  • LOWTool 'textus_list_conversation_filters' name length outside 3-30 range在 textus_list_conversation_filters 中
  • LOWTool 'textus_get_conversation_timeline' name length outside 3-30 range在 textus_get_conversation_timeline 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,482token 数(工具定义)
~1.0 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.72%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

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

远程端点

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

它能做什么

工具清单

工具(24)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢textus_get_profile

Get the profile of the user who owns the API token, including account memberships and roles. TextUs API: GET /profile.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_accounts(cursor)

List the TextUs accounts the user belongs to, with phone numbers and role. Most other tools need an account `slug` from here. TextUs API: GET /accounts.

输入模式

{
  "type": "object",
  "properties": {
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_account(account)

Get one account by slug: name, phone numbers, type and links. TextUs API: GET /accounts/{account}.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_account_users(account, cursor)

List the users who belong to an account. TextUs API: GET /{account}/users.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_contacts(account, q, contact_filter, cursor)

List contacts of an account in alphabetical order. Use `q` to search by name or phone number. Pass a saved `contact_filter` slug for a saved view (default `all`). TextUs API: GET /{account}/contact_filters/{filter}/contacts.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "q": {
      "description": "Search text (name or phone digits).",
      "type": "string"
    },
    "contact_filter": {
      "description": "Contact filter slug (default `all`; see textus_list_contact_filters).",
      "type": "string",
      "minLength": 1
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_contact_filters(account, cursor)

List the saved contact filters (views) of an account. TextUs API: GET /{account}/contact_filters.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_contact(contact)

Get all known data about one contact: name, phone numbers, custom data and tags. TextUs API: GET /contacts/{contact}.

输入模式

{
  "type": "object",
  "properties": {
    "contact": {
      "type": "string",
      "minLength": 1,
      "description": "Contact id (from textus_list_contacts)."
    }
  },
  "required": [
    "contact"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_contact_notes(contact, cursor)

List the notes users wrote about a contact. TextUs API: GET /contacts/{contact}/notes.

输入模式

{
  "type": "object",
  "properties": {
    "contact": {
      "type": "string",
      "minLength": 1,
      "description": "Contact id."
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "contact"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_conversation_filters(account)

List the conversation filters (inbox views such as unread, mine, closed) of an account, with unread counts. TextUs API: GET /{account}/conversation_filters.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_conversations(account, conversation_filter, q, cursor)

List conversations in an inbox view, newest message first. Use filter `search` with `q` (a phone number or text) to find a conversation. TextUs API: GET /{account}/conversation_filters/{filter}/conversations.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "conversation_filter": {
      "type": "string",
      "minLength": 1,
      "description": "Filter slug from textus_list_conversation_filters (for example `you`, `search`)."
    },
    "q": {
      "description": "Search text (name or phone digits).",
      "type": "string"
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account",
    "conversation_filter"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_conversation(conversation)

Get one conversation: contact, assigned users, state and last message. TextUs API: GET /conversations/{conversation}.

输入模式

{
  "type": "object",
  "properties": {
    "conversation": {
      "type": "string",
      "minLength": 1,
      "description": "Conversation id."
    }
  },
  "required": [
    "conversation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_conversation_timeline(conversation, cursor)

Get the messages and events of a conversation, newest first. Messages include direction, body and delivery state. TextUs API: GET /conversations/{conversation}/timeline.

输入模式

{
  "type": "object",
  "properties": {
    "conversation": {
      "type": "string",
      "minLength": 1,
      "description": "Conversation id."
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "conversation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_conversation_stats(conversation)

Get stats for one conversation: start time, engagement grade and outbound delivery percentage. TextUs API: GET /conversations/{conversation}/stats.

输入模式

{
  "type": "object",
  "properties": {
    "conversation": {
      "type": "string",
      "minLength": 1,
      "description": "Conversation id."
    }
  },
  "required": [
    "conversation"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_campaign_filters(account)

List the campaign views of an account (for example mine, all). TextUs API: GET /{account}/campaign_filters.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_campaigns(account, campaign_filter, cursor)

List campaigns (bulk messages) in a campaign view, ordered by scheduled time, with title, body and state. TextUs API: GET /{account}/campaign_filters/{filter}/campaigns.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "campaign_filter": {
      "description": "Campaign filter slug (default `all`).",
      "type": "string",
      "minLength": 1
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_campaign(campaign)

Get one campaign: message body, state, schedule and recipient counts. TextUs API: GET /campaigns/{campaign}.

输入模式

{
  "type": "object",
  "properties": {
    "campaign": {
      "type": "string",
      "minLength": 1,
      "description": "Campaign id (from textus_list_campaigns)."
    }
  },
  "required": [
    "campaign"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_get_campaign_analytics(account)

Get aggregated statistics (campaigns sent, recipients, delivery) for all campaigns of an account. TextUs API: GET /{account}/campaigns/analytics.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_groups(account, group_filter, q, cursor)

List contact groups in a group folder (`mine` or account groups). Use `q` to search group names. TextUs API: GET /{account}/group_filters/{filter}/groups.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "group_filter": {
      "description": "Group filter slug (default `mine`; see the `slug` values of GET /{account}/group_filters).",
      "type": "string",
      "minLength": 1
    },
    "q": {
      "description": "Search text (name or phone digits).",
      "type": "string"
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_group_contacts(group, cursor)

List the contacts that belong to a group. TextUs API: GET /groups/{group}/contacts.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "type": "string",
      "minLength": 1,
      "description": "Group id (from textus_list_groups)."
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "group"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_opt_outs(account, q, cursor)

List phone numbers that opted out of messages for an account. Use `q` for a partial search (3 digits or more). TextUs API: GET /{account}/opt_outs.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "q": {
      "description": "Search text (name or phone digits).",
      "type": "string"
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "account"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢textus_list_saved_replies(user, cursor)

List the canned message bodies a user saved. TextUs API: GET /users/{user}/saved_replies.

输入模式

{
  "type": "object",
  "properties": {
    "user": {
      "type": "string",
      "minLength": 1,
      "description": "User id (from textus_get_profile)."
    },
    "cursor": {
      "description": "Pagination cursor: the value after `cursor=` in `view.next` of the previous page.",
      "type": "string"
    }
  },
  "required": [
    "user"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴textus_send_message(account, to, body, confirm)

WRITE: sends a REAL SMS from the account's number to one or more recipients. It cannot be undone and is never retried. Show the user the recipients and text first, then call with confirm=true. TextUs API: POST /{account}/messages.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "to": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 7
      },
      "description": "Recipient phone numbers in E.164 format, for example +13035551234."
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1600,
      "description": "Message text."
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true. Set it only after the user approved the exact recipients and text."
    }
  },
  "required": [
    "account",
    "to",
    "body",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴textus_create_contact(account, name, phone, phone_type, business_name, ...)

WRITE: creates a new contact in an account. TextUs API: POST /{account}/contacts.

输入模式

{
  "type": "object",
  "properties": {
    "account": {
      "type": "string",
      "minLength": 1,
      "description": "Account slug (from textus_list_accounts, the `slug` field)."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Full name."
    },
    "phone": {
      "type": "string",
      "minLength": 7,
      "description": "Phone number."
    },
    "phone_type": {
      "description": "Phone label, for example Mobile or Work (default Mobile).",
      "type": "string"
    },
    "business_name": {
      "description": "Business name.",
      "type": "string"
    },
    "tags": {
      "description": "Tags to set.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "account",
    "name",
    "phone"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴textus_add_contact_note(contact, content)

WRITE: adds an internal note to a contact. The contact does not see it. TextUs API: POST /contacts/{contact}/notes.

输入模式

{
  "type": "object",
  "properties": {
    "contact": {
      "type": "string",
      "minLength": 1,
      "description": "Contact id."
    },
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "Note text."
    }
  },
  "required": [
    "contact",
    "content"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本24 个工具