Textline MCP server

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.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://textline.usefulapi.io/mcp
  3. Authenticate with Textline when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "textline": {
      "url": "https://textline.usefulapi.io/mcp"
    }
  }
}
live26 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 26

ToolTypeWhat it does
textline_list_conversationsread
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_conversationread
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_phoneread
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_customersread
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_customerread
Get contact
Retrieve one contact (customer) from the address book by UUID. GET /api/customer/{uuid}.json.
textline_get_customer_by_phoneread
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_fieldsread
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_searchesread
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_organizationread
Get organization
Retrieve the organization (account) name, optionally with its departments and agents. GET /api/organization.json.
textline_list_departmentsread
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_agentsread
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_agentread
Get agent
Retrieve one agent (user) by UUID or email: name, permission level, availability (on_call) and departments. GET /api/users.json.
textline_list_dispositionsread
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_surveysread
List surveys
List surveys (NPS, CSAT, custom) with their type and UUID. GET /api/surveys.json.
textline_list_survey_responsesread
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_conversationsread
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_postsread
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_messagewrite
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_whisperwrite
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_conversationwrite
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_conversationwrite
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_customerwrite
Create contact
WRITE: add a contact (customer) to the Textline address book. Sends nothing to the contact. POST /api/customers.json.
textline_update_customerwrite
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_statusmeta
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_upgrademeta
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_subscriptionmeta
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.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Proper user$9/mo · $90/yrUnlimited

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.

More Messaging & Communication MCP servers

AircallBirdCustomer.ioEmailOctopusGetResponseGrooveKeapLoopsMagicBellMailchimpMailerLiteMissiveMoosendNylasOpenPhoneRewardfulSendbirdSendGridSimpleTextingSlickTextStreamText-Em-All

All Messaging & Communication servers →