TextKit

com.jointextkit/textkit · v1.0.0 · communication

TextKit is healthy: it completed an MCP handshake in 1409 ms and exposes 142 tools.

SMS for developers: send and receive texts, verify phones, and buy US and Canada numbers.

Endpoint: https://mcp.jointextkit.com (streamable-http)

No repository listed · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count142
Latency1409 ms
Last checked (UTC)2026-10-29T00:45:10.244Z

Health history

Checked (UTC)StatusLatencyError
2026-10-29T00:45:10.244ZHealthy1409

Tools (100)

send_messageSend one SMS from one of your numbers. Set category "marketing" for promotions (the opt-in check applies) and scheduled_at to send later. Quiet hours apply to every message: outside 8am-9pm (8pm in Florida, Maryland and Oklahoma) in the recipient's local time a marketing message is refused and anyth
get_messageRetrieve a message by its msg_... id, with its delivery timeline.
delete_messageDelete 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.
redact_messageEmpty a finished message's text and media everywhere it is kept, keeping its status, price and timeline (redacted_at is set). Cannot be undone.
list_messagesList your messages, newest first. Filter by number, direction, status, failure reason, date, batch schedule or customer.
send_verificationSend a one-time verification code (OTP) to a phone number by text, or to an email address with channel "email". TextKit generates the code, handles expiry (10 min) and attempt limits (5), and blocks SMS-pumping and email-bombing abuse.
check_verificationCheck 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.
fallback_verificationThe 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.
list_numbersList the phone numbers on your account.
request_short_codeAsk our team for a short code (or a toll-free number they set up). Provisions nothing by itself; carriers take 8-12 weeks to approve a short code.
list_number_requestsOpen short-code and toll-free requests.
search_available_numbersSearch purchasable numbers by area code (default 415).
purchase_numberBuy a phone number for your account (free sandbox numbers with test keys). Live numbers are billed monthly.
release_numberRelease a number you own. It cannot be got back.
lookup_phoneLook up line type (mobile, landline, VoIP) and carrier for any US/Canada number.
simulate_inboundSandbox only: simulate an inbound SMS to one of your test numbers (emits message.received; STOP, START and HELP act as for real).
list_eventsList recent events (message.sent/delivered/failed/received, number.purchased/released, ...), newest first.
get_verificationRetrieve a verification by id: its status and attempts (never the code).
get_numberRetrieve one of your numbers: status, sender registration, tags, pools, customer.
bulk_purchase_numbersBuy several numbers in one area code at once (e.g. for a sender pool). Live numbers are billed monthly each.
link_number_to_registrationAttach a number to an approved 10DLC registration so it can send that registration's traffic.
assign_number_to_customerPlatforms: attribute a number (and its messages and usage) to one of your customers, or clear it with customer_id null.
bulk_update_numbersAct on many numbers at once: tag, untag, assign to a customer, or release. Releasing cannot be undone.
export_numbersYour numbers as CSV text.
list_number_poolsList sender pools.
create_number_poolCreate a sender pool from numbers you own.
get_number_poolRetrieve a sender pool and its numbers.
update_number_poolRename a sender pool or change its numbers.
delete_number_poolDelete a sender pool. Its numbers are kept.
clone_number_poolCopy a sender pool under a new name.
import_contactsCreate 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 s
plan_importFind out where an audience is and the ways to bring it in. Without source: questions to ask the person (where their people are, which group, what they can sign in to, whether consent was recorded, once or kept in sync) and the kinds of source known. With source (their words, e.g. "Mixpanel", "Shopif
upsert_contactCreate a contact, or update the existing one with the same phone_number.
list_contactsList contacts, newest first. Filter by tag, segment_id, list_id, exact phone_number, or a free-text q (name, email, company).
get_contactRetrieve a contact.
update_contactUpdate a contact. Only the inputs you pass change; tags and fields replace the whole list or map.
delete_contactDelete a contact. Messages, consent records, and topic preferences for the number are kept.
bulk_update_contactsAdd tags to, remove tags from, or delete many contacts by id.
set_contact_topicSubscribe a contact to a topic, or unsubscribe them (e.g. "promotions" vs "order updates").
create_listCreate a list: a fixed group of contacts (Audience → Lists). Use a list when the user names exactly who belongs ("add these people to VIPs"); use a segment when membership follows rules.
list_listsList contact lists with their contact counts.
get_listRetrieve a list and its contact count.
update_listRename a list or change its description.
delete_listDelete a list (its contacts stay).
list_list_contactsPage through a list's contacts, most recently added first.
add_to_listAdd contacts to a list by contact_ids and/or phone_numbers (up to 1,000; numbers must already be contacts).
remove_from_listRemove contacts from a list (they stay contacts).
create_segmentSave an audience (a segment, a cohort): it appears in the console under Audience → Segments, and broadcasts can be sent to it. Use this whenever the user asks to create, make or save an audience or list. Everyone who can be texted: one rule, status is subscribed. Contacts matching all (or any) of up
list_segmentsList saved segments.
get_segmentRetrieve a segment and its rules.
update_segmentRename a segment or replace its rules.
delete_segmentDelete a segment. Contacts are not touched.
query_audienceCount a cohort without saving anything (nothing appears in the console): run up to 10 segment rules now and get the counts (matched, opted out, eligible to text) and the first contacts. Examples: replied in the last 7 days (last_reply_at after 7d); got a batch and did not reply (batch sent, and batc
preview_segmentCount the contacts a segment matches right now and how many a broadcast would reach (opted-out contacts removed, and with topic_id those unsubscribed from it).
list_topicsList subscription topics.
create_topicCreate a subscription topic, so people can opt out of one kind of message (e.g. promotions) and keep others.
create_templateSave a message template. Merge tags: {{first_name}}, {{name}}, {{phone}}, {{field:<custom>}}, and per-recipient variables.
list_templatesList message templates.
get_templateRetrieve a template.
update_templateRename or edit a template.
delete_templateDelete a template.
send_batchSend one message to many people (a broadcast or campaign): pick recipients by segment_id, tags, contact_ids, or an explicit recipients list. Opted-out numbers, numbers without marketing consent, and people unsubscribed from topic_id are removed before sending. dry_run: true sends nothing and returns
list_batchesList batches (broadcasts), newest first.
get_batchRetrieve a batch with its progress counts.
get_batch_resultsResults of a batch: delivered, failed, pending, replies, opt-outs (stops), spend, and failures grouped by reason.
list_batch_recipientsList a batch's recipients with each one's status.
pause_batchPause a sending or scheduled batch.
resume_batchResume a paused batch.
cancel_batchCancel a batch. Messages already sent stay sent.
retry_batchRetry a batch's failed recipients.
track_eventRecord something a customer did (e.g. signed_up, cart_abandoned, trial_ending), by user_id and/or phone. It starts or advances any active automation listening for that event.
create_automationCreate 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. Drafts send nothing until activated.
list_automationsList automations.
get_automationRetrieve an automation with its trigger and steps.
update_automationEdit an automation (name, sender, trigger, or steps).
delete_automationDelete an automation.
activate_automationTurn an automation on, so tracked events start runs. With a live number it texts real people.
pause_automationPause an automation: no new runs start, and runs in progress wait where they are until it is activated again.
list_automation_runsList an automation's runs, newest first.
get_automation_runRetrieve one run with its step-by-step timeline.
cancel_automation_runCancel a run in progress.
get_topicRetrieve a topic.
update_topicRename or describe a topic.
delete_topicDelete a topic you created (built-in topics stay).
get_contact_topicsA contact's subscription to each topic.
get_consentWhether a number is opted in or out, per registration, with its full consent history and proof.
set_consentRecord an opt-in or opt-out from your own system (CRM, checkout, a form). An opt-in for a marketing registration needs proof (source, when, the page).
list_opt_outsList opted-out numbers (the suppression list).
import_opt_outsBring 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.
list_scheduled_messagesList single messages scheduled for later and not yet sent.
get_scheduled_messageRetrieve a pending scheduled message.
cancel_scheduled_messageCancel a scheduled message before it sends.
create_scheduleSend 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.
list_schedulesList recurring schedules.
get_scheduleRetrieve a recurring schedule with its recent occurrences.
update_schedulePause (active: false) or resume (active: true) a recurring schedule.
delete_scheduleDelete a recurring schedule.
get_balancePrepaid credit balance and auto-recharge setting.
get_usageUsage by month, today's counters, and plan limits.
get_spend_limitThe monthly spend limit and this month's estimated spend.