
TextKit MCP server
Which MCP servers are TextKit's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-29
- Registry namecom.jointextkit/textkitverified in the MCP registry
The registry name sits under jointextkit.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-29
- Tools148
- Server calls itselftextkit
- Server version1.0.0+8daf0c1f
- Protocol version2025-03-26
On 2026-10-29 the server answered initialize and tools/list without a sign-in. First answer in 269 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 5 of the 7 days it takes to judge reliability.
Once connected
- For "Send one-time verification codes to app users", the likely first call is send_verification.
- send_message, delete_message, send_verification, bulk_update_numbers, create_number_pool change data without a sign-in: anyone with the address can call them.
- Its definitions take about 26226 tokens of context: enable only the tools a task needs.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 5 so far
- Answeredmeasuring5 of the 7 daily checks it takes to print a share
- Median first answer220 ms
- Space in an agent's context≈ 26,226 tokensthe definitions of all its tools (152), which an agent carries on every turn
- Tool definitionsA · 99 of 100
- Typed results0 of 152 toolsdeclared outputSchema: results come typed, read once
- No description an agent can choose by: 6 of 152
What an agent can do with it
- can do · Send one-time verification codes to app users
- not sure · Receive customer replies and handle them through webhooks
- not sure · Send scheduled texts to contact lists with opt-out handling
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that change data, on a server that answers without a sign-in: send_message, delete_message, send_verification, bulk_update_numbers, create_number_pool
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
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…
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…
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…
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. Everyone who can be texted: one rule, status is subscribed. Contacts matching all (or any) of up to 10 rules…
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…
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). `notes` says when an event rule names an event never tracked.
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.
The first 60 of 148, as the server listed them.
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"textkit": {
"type": "http",
"url": "https://mcp.jointextkit.com"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http jointextkit https://mcp.jointextkit.comclaude.ai, ChatGPT and other clients: add https://mcp.jointextkit.com as a custom connector in the settings.
OpenAPI spec
104 paths, read 2026-10-29. Open the spec ↗
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.