Read Textline conversations, contacts and reports; send a text, add notes, resolve or transfer. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"textline": {
"url": "https://textline.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
textline_list_conversations | read | List conversations List conversations (one per contact) in a department of the Textline shared inbox, with the contact and resolved status. Optional keyword search. GET /api/conversations.json. |
textline_get_conversation | read | Get conversation messages Retrieve one conversation and its posts (messages in and out, internal whispers, resolve/transfer events), newest page first. Page with page/page_size or with before_uuid/after_uuid (a post uuid). GET /api/conversation/{uuid}.json. |
textline_get_conversation_by_phone | read | Get conversation by phone number Retrieve the conversation with a phone number (in a department) and its posts (messages). GET /api/conversations.json?phone_number=…. |
textline_list_customers | read | Search contacts List or search contacts (customers) in the Textline address book: name, phone, email, tags, notes, custom fields, consent and reachability. GET /api/customers.json. |
textline_get_customer | read | Get contact Retrieve one contact (customer) from the address book by UUID. GET /api/customer/{uuid}.json. |
textline_get_customer_by_phone | read | Get contact by phone number Retrieve one contact (customer) from the address book by phone number. GET /api/customers.json?phone_number=…. |
textline_list_custom_fields | read | List contact custom fields List the address book's custom fields (name, data type, UUID). Use the UUIDs with textline_update_customer. GET /api/address_book/custom_fields.json. |
textline_list_saved_searches | read | List saved searches List the address book's saved searches (contact segments) with name, description and UUID. GET /api/address_book/saved_searches.json. |
textline_get_organization | read | Get organization Retrieve the organization (account) name, optionally with its departments and agents. GET /api/organization.json. |
textline_list_departments | read | List departments List the departments (groups / inbox phone lines) the token's agent can see: name, UUID, phone number, type (sms, facebook, smart_sms) and member agent UUIDs. GET /api/groups.json. |
textline_list_agents | read | List agents List the agents (users) in the organization: name, email, UUID, permission level, availability and department UUIDs. GET /api/organization.json?include_users=1. |
textline_get_agent | read | Get agent Retrieve one agent (user) by UUID or email: name, permission level, availability (on_call) and departments. GET /api/users.json. |
textline_list_dispositions | read | List dispositions List the dispositions (resolution reasons) set up in the account, optionally for one department. Use a UUID with textline_resolve_conversation. GET /api/dispositions.json. |
textline_list_surveys | read | List surveys List surveys (NPS, CSAT, custom) with their type and UUID. GET /api/surveys.json. |
textline_list_survey_responses | read | List survey responses List the responses to one survey (ratings, follow-up text, contact, tags). Default: the last 30 days. GET /api/survey/{uuid}/responses.json. |
textline_report_conversations | read | Report conversations by date Reporting API: list a department's conversations filtered by created/updated time, resolved, archived or blocked, with total_records. To get the next page pass the returned next.search_uuid, next.page and next.page_size exactly (the same filters are kept). Then use textline_report_posts per conversation. GET /api/reporting/conversations.json. |
textline_report_posts | read | Report posts of a conversation Reporting API: list all posts (messages, whispers) of one conversation with creator, thread, first-response flags, filtered by created time, with total_records. To get the next page pass the returned next.search_uuid, next.page and next.page_size exactly. GET /api/reporting/conversation/{uuid}/posts.json. |
textline_send_message | write | Send SMS message SENDS A REAL SMS/MMS to ONE contact from your Textline number — the customer receives it immediately and it cannot be unsent; it consumes message credits. Address it by conversation_uuid or by phone_number (+ optional department). Confirm the recipient and text with the user first. One recipient per call; no bulk sends. POST /api/conversation/{uuid}.json or POST /api/conversations.json. |
textline_add_whisper | write | Add internal note (whisper) WRITE: add an internal whisper (a note only your agents see, never sent to the customer) to a conversation, by conversation_uuid or phone_number. POST /api/conversation/{uuid}.json or POST /api/conversations.json with a whisper. |
textline_resolve_conversation | write | Resolve conversation WRITE: mark a conversation resolved (closed), optionally with a disposition from textline_list_dispositions. Nothing is sent to the customer. POST /api/conversation/{uuid}/resolve.json. |
textline_transfer_conversation | write | Transfer conversation WRITE: assign a conversation to another agent of the same department, by agent UUID or email (one of them). Nothing is sent to the customer. POST /api/conversation/{uuid}/transfer.json. |
textline_create_customer | write | Create contact WRITE: add a contact (customer) to the Textline address book. Sends nothing to the contact. POST /api/customers.json. |
textline_update_customer | write | Update contact WRITE: update a contact's name, email, notes, tags (add, remove or replace) or custom fields (by custom-field UUID from textline_list_custom_fields). Overwrites the fields you pass; sends nothing to the contact. PUT /api/customer/{uuid}.json. |
textline_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
textline_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Textline tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Does not count against the meter. | |
textline_cancel_subscription | Cancel the Pro subscription Cancel the caller's Textline Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run textline_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
Pro covers this Textline server only. Subscribe with textline_upgrade (it returns a Stripe Checkout link). Cancel any time with textline_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running textline_upgrade before then undoes the cancel. Or write to [email protected].
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.