Negotiated 2025-03-26. The bar is 2025-06-18 or newer.
Pass
HTTPS
The endpoint URL is https.
Performance
Not measured
Fast (p50)
Median latency 689 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.
Not measured
Consistent (p95)
95th percentile 712 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.
Not measured
Reliable (uptime)
2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.
Pass
Stable tool list
No tool was removed and no required parameter was added in the last 30 days.
Access
Pass
Open access
tools/list succeeded with no credential, and the record declares none.
Not measured
Standard auth
Auth is not required, so the OAuth metadata check does not apply.
Not measured
Free tier cited
No publisher quote has been checked.
Tools
Fail
Tools described
6 tools have a description shorter than 20 characters.
Pass
Valid input schemas
Every inputSchema is a JSON Schema object.
Pass
Parameters documented
644 of 644 parameters have a description (100%). The bar is 80%.
Pass
Safety hints
Every tool sets readOnlyHint or destructiveHint.
Publisher
Pass
Verified namespace
Listed in the Official MCP Registry.
Pass
Website matches publisher
The website host matches the reverse-domain namespace.
Pass
Source repo linked
A repository URL is on file.
Not measured
Repo owner matches
This namespace is not an io.github login, so the owner comparison does not apply.
Pass
Recently updated
Updated 2026-10-30T13:00:05.224204Z, within 180 days.
Not measured
Open-source licence
The GitHub licence lookup has not returned an OSI result yet.
Start using TextKit
Connect to this server
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http textkit https://mcp.jointextkit.com
Capabilities
Tools 161
Showing 100 of 161 tools.
activate_automation
Turn an automation on, so tracked events start runs. With a live number it texts real people. With no `from`, a number approved for its `category` must exist or `issues` says what is missing; `sender` shows the numbers it will use.
Discovered add_to_list
Add contacts to a list by contact_ids and/or phone_numbers (up to 1,000; numbers must already be contacts).
Discovered assign_number_to_customer
Platforms: attribute a number (and its messages and usage) to one of your customers, or clear it with customer_id null.
Discovered bulk_purchase_numbers
Buy several numbers in one area code at once (e.g. for a sender pool). Live numbers are billed monthly each.
Discovered bulk_update_contacts
Add tags to, remove tags from, or delete many contacts by id.
Discovered bulk_update_numbers
Act on many numbers at once: tag, untag, label, add to or remove from a pool, or release. Releasing cannot be undone.
Discovered cancel_automation_run
Cancel a run in progress.
Discovered cancel_batch
Cancel a batch. Messages already sent stay sent.
Discovered cancel_scheduled_message
Cancel a scheduled message before it sends.
Discovered check_verification
Check a verification code submitted by a user, by the phone or email it went to. Returns {verified, status, channel, charged}. Billed only when verified is true.
Discovered clone_number_pool
Copy a sender pool under a new name.
Discovered connect_integration
Connect a tool so its people sync in as contacts, in a list of their own, every 6 hours: Mixpanel (projectId, username, secret = a service account; sourceId = cohort id), Amplitude (apiKey, secretKey, sourceId), HubSpot (accessToken), Shopify (shopDomain, accessToken), Salesforce, or a webhook. Takes the event or property that shows people agreed to texts (consentEvent / consentField) and the property that holds their phone (phoneField). Credentials are proved with one read, sealed, and never returned. Mixpanel also takes eventTriggers, which turn Mixpanel events into TextKit events that start, end or branch automations; `warnings` names mapped events with no volume in 7 days.
Discovered create_api_key
Create an API key for an app you are building, to store as a secret in its environment (for example TEXTKIT_API_KEY) so the app can send texts itself. Same mode (test or live) as this connection; optional scopes limit it. The secret is returned once; the account owner is emailed.
Discovered create_automation
Create a triggered text flow (as a draft): when trigger.event is tracked, run steps such as send_sms, wait, wait_for_event, and condition branches. Example: on cart_abandoned, wait 3600s, then if checkout_completed was not received send a reminder. A send_sms step with send_time: "optimal_user_time" and max_wait_seconds (60 to 86400, required) waits for the hour that person usually replies or clicks, 10am their time with no history, inside quiet hours: recommend it for marketing and lifecycle texts, leave it off anything time-sensitive, and it is refused for one-time codes and order or shipping texts. For events that repeat, trigger.cooldown_seconds stops the same person starting it again for that long. Merge fields like {{plan}} fill from the trigger event's properties; `issues` names any no tracked event carries. Leave out `from` and TextKit picks a number approved for `category` (marketing, transactional for alerts, otp for codes) when it sends; `sender` shows the numbers, and `issues` says so when none is approved yet. Pass `from` only to pin a number. Drafts send nothing until activated.
Discovered create_customer
Platforms sending for other businesses: create a customer to attribute numbers, messages and usage to.
Discovered create_link
Make a tracked short link to copy into a text, ad, email or anywhere else: returns short_url. The same url again returns the same link. Suggest this whenever someone wants to know whether a link gets clicked or leads to sales. A link inside a text needs only shorten_links: true on the send.
Discovered create_link_domain
Add a subdomain of the user's own (links.example.com) for short links. Returns two DNS records (CNAME and TXT) the user adds at their DNS host; then verify the domain. Optional: without one, tracked links use our domain.
Discovered create_list
Create a list: a fixed group of contacts (Audience → Lists). Membership is set by hand, unlike a segment, which follows rules.
Discovered create_number_pool
Create a sender pool from numbers you own.
Discovered create_registration
Create a 10DLC registration (the carrier registration local numbers need to text the public) and check it: the website, privacy policy, terms, opt-in page and example texts against carrier rules. Returns ready or checks_failed, with each finding, its fix and copy to paste. Nothing goes to the carriers and nothing is billed. Business details come from the person, not from guesses.
Discovered create_schedule
Send the same text to one number every day, week or month at a local time (e.g. a weekly reminder). Every occurrence runs the usual send checks.
Discovered create_segment
Save an audience (a segment, a cohort): it appears in the console under Audience → Segments, and broadcasts can be sent to it. Everyone who can be texted: one rule, status is subscribed. Contacts matching all (or any) of up to 10 rules. Attributes: tags, contact fields, custom fields (field = "field", key = the name), opt-in status, topic, import, created_at. Behaviour: last_message_at, last_reply_at, batch (key = batch id; value included, sent, failed, skipped or replied) and event (key = a tracked event name). Times take an ISO date or a window like 7d. It is evaluated live each time it is used, so a batch or list sent to it reaches whoever matches then.
Discovered create_template
Save a message template. Merge tags: {{first_name}}, {{name}}, {{phone}}, {{field:<custom>}}, and per-recipient variables.
Discovered create_toll_free_verification
Start the carriers' toll-free verification for live toll-free numbers, filled in from the account, its registration, hosted opt-in page and website; any field sent replaces what was filled in. Returns a draft with problems: what the carriers would reject. Nothing goes to the carriers and there is no fee.
Discovered create_topic
Create a subscription topic, so people can opt out of one kind of message (e.g. promotions) and keep others.
Discovered create_webhook
Send events (message.received, message.delivered, message.opted_out, ...) to a URL: your app, a CRM, an automation tool. Returns the signing secret once.
Discovered delete_automation
Delete an automation.
Discovered delete_contact
Delete a contact. Messages, consent records, and topic preferences for the number are kept.
Discovered delete_customer
Delete a customer.
Discovered delete_link_domain
Remove a branded link domain. Every short link already sent on it stops working.
Discovered delete_list
Delete a list (its contacts stay).
Discovered delete_message
Delete a finished message (delivered, failed or received) and every copy of its text, for a privacy request. Opt-out records and billing are kept. Cannot be undone.
Discovered delete_number_pool
Delete a sender pool. Its numbers are kept.
Discovered delete_schedule
Delete a recurring schedule.
Discovered delete_segment
Delete a segment. Contacts are not touched.
Discovered delete_template
Delete a template.
Discovered delete_topic
Delete a topic you created (built-in topics stay).
Discovered delete_webhook
Delete a webhook endpoint.
Discovered disconnect_integration
Disconnect a tool: its credentials and its list are deleted; the contacts stay with their consent.
Discovered enter_registration_phone_code
A sole proprietor's registration: the code texted to their mobile after submitting (it lasts 24 hours). The right code sends the campaign to carrier review. The person reads it from their phone.
Discovered export_consent
The suppression list, or the full consent ledger with opt-in proof, as CSV text.
Discovered export_csv
Export as CSV text for analysis: messages, deliveries, events, opt_outs, webhook_deliveries, usage, usage_monthly, audit_log or credit_history. At most 50,000 rows; narrow the date range with from and to.
Discovered export_numbers
Your numbers as CSV text.
Discovered fallback_verification
The text did not arrive: email a new code for the same pending verification (one id, one charge). The emailed code replaces the texted one and is checked by the email address, which it proves (not the phone). Once per verification.
Discovered forget_identity
Privacy erasure: forget the phone number linked to a user_id, so its tracked events stop reaching automations.
Discovered get_automation
Retrieve an automation with its trigger and steps.
Discovered get_automation_run
Retrieve one run with its step-by-step timeline.
Discovered get_balance
Prepaid credit balance and auto-recharge setting.
Discovered get_batch
Retrieve a batch with its progress counts.
Discovered get_batch_results
Results of a batch: delivered, failed, pending, replies, opt-outs (stops), spend, and failures grouped by reason.
Discovered get_consent
Whether a number is opted in or out, per registration, with its full consent history and proof.
Discovered get_contact
Retrieve a contact.
Discovered get_contact_topics
A contact's subscription to each topic.
Discovered get_customer
Retrieve a customer.
Discovered get_customer_usage
A customer's messages, verifications and spend for a period.
Discovered get_deliverability
Delivery rates by day, destination carrier, or sending number.
Discovered get_integration
One connected tool and its last sync.
Discovered get_integration_events
Confirm the events behind automations: for a Mixpanel integration, each mapped event with its Mixpanel source events and their 7-day volume, how many reached TextKit and when the last did, and which automations start on, wait for or check it. `missing` names events automations rely on that nothing sends. project_events: true also lists every Mixpanel event name with its 7-day volume, to choose what to map.
Discovered get_link_domain
One short-link domain, with the DNS records it needs.
Discovered get_list
Retrieve a list and its contact count.
Discovered get_message
Retrieve a message by its msg_... id, with its delivery timeline.
Discovered get_number
Retrieve one of your numbers: status, sender registration, tags, pools, customer.
Discovered get_number_pool
Retrieve a sender pool and its numbers.
Discovered get_registration
A registration with its checks, status, and linked numbers.
Discovered get_schedule
Retrieve a recurring schedule with its recent occurrences.
Discovered get_scheduled_message
Retrieve a pending scheduled message.
Discovered get_segment
Retrieve a segment and its rules.
Discovered get_spend_limit
The monthly spend limit and this month's estimated spend.
Discovered get_template
Retrieve a template.
Discovered get_toll_free_verification
A toll-free verification: status, numbers, the form, what is missing (problems), and the carriers' reason when it was rejected.
Discovered get_topic
Retrieve a topic.
Discovered get_usage
Usage by month, today's counters, and plan limits.
Discovered get_verification
Retrieve a verification by id: its status and attempts (never the code).
Discovered get_webhook
Retrieve a webhook endpoint.
Discovered import_contacts
Create or update up to 500 contacts per call, matched by phone_number. Attributes go in fields (up to 20 strings, e.g. plan) for segments and {{field:name}} merge tags; tags group contacts. opt_in carries consent evidence (status: false records an opt-out). import_id from the first response groups several calls; dry_run: true returns what would change and writes nothing.
Discovered import_opt_outs
Bring a suppression list over from another provider or tool (up to 500 numbers per call), so people who opted out there are never texted here.
Discovered link_number_to_registration
Attach a number to an approved 10DLC registration so it can send that registration's traffic.
Discovered list_api_keys
List the active API keys of this mode (never the secrets).
Discovered list_audit_logs
Who changed what on the account (keys, team, webhooks, spend limit, numbers, consent, settings), newest first.
Discovered list_automation_runs
List an automation's runs, newest first.
Discovered list_automations
List automations.
Discovered list_batch_recipients
List a batch's recipients with each one's status.
Discovered list_batches
List batches (broadcasts), newest first.
Discovered list_contacts
List contacts, newest first. Filter by tag, segment_id, list_id, exact phone_number, or a free-text q (name, email, company).
Discovered list_conversions
The latest 100 conversions, newest first.
Discovered list_customers
List your customers.
Discovered list_events
List recent events (message.sent/delivered/failed/received, number.purchased/released, ...), newest first.
Discovered list_integrations
The connected tools: status, settings, last sync (found, added, opted out), and their list. No credentials.
Discovered list_link_domains
Your short-link domains and their status (pending_dns, dns_verified, active). Optional: a message sent with shorten_links: true uses the active one, else <your business>.txtkto.com once the business is verified, or txtkto.com before that.
Discovered list_links
Every tracked destination with its texts, clicks, conversions and value. The answer to "which link worked?".
Discovered list_list_contacts
Page through a list's contacts, most recently added first.
Discovered list_lists
List contact lists with their contact counts.
Discovered list_messages
List your messages, newest first. Filter by number, direction, status, failure reason, date, batch schedule or customer.
Discovered list_number_pools
List sender pools.
Discovered list_number_requests
Open short-code and toll-free requests.
Discovered list_numbers
List the phone numbers on your account.
Discovered list_opt_outs
List opted-out numbers (the suppression list).
Discovered list_registration_submissions
The filed copies of a 10DLC registration, newest first.
Discovered list_registrations
List 10DLC brand and campaign registrations and their status. Marketing from a local number needs an approved one.
Discovered list_scheduled_messages
List single messages scheduled for later and not yet sent.