LeashIndex Get the report

Index / crm

TextKit

com-jointextkit-textkit declares 152 capabilities across 152 tools, with 3 critical issues. One of them, no-revocation, is recorded for every server in the index because MCP has no field in which to declare a way to switch a tool off; a missing declaration is not evidence that the control is missing.

100/100 exposureHigh exposure

Manifest recorded 2026-11-08 from tools/list on https://mcp.jointextkit.com, published in the official MCP registry as com.jointextkit/textkit 1.0.2. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · irreversible-uncapped · 81 of 152 tools

81 tools are classified as irreversible or destructive and declare no limit. 79 of them are counted only because the server annotated them destructiveHint. In MCP that annotation marks a tool that may make destructive changes rather than only additive ones; it does not say the change cannot be undone.

critical · no-revocation · All 152 tools

152 of 152 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · uncapped-spend · 2 of 152 tools

2 tools are classified as moving money and declare no dollar limit. A cap on the number of payments does not bound their amount.

high · no-expiry · All 152 tools

152 of 152 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 152 tools

152 of 152 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

low · uncapped-read · 71 of 152 tools

71 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
send_messagedestructive declared
get_messageread declared
delete_messagedestructive declared
redact_messagedestructive declared
list_messagesread declared
send_verificationdestructive declared
check_verificationdestructive declared
fallback_verificationdestructive declared
list_numbersread declared
request_short_codedestructive declared
list_number_requestsread declared
search_available_numbersread declared
purchase_numberpay inferred
release_numberdestructive declared
lookup_phoneread declared
simulate_inbounddestructive declared
list_eventsread declared
get_verificationread declared
get_numberread declared
bulk_purchase_numberspay inferred
link_number_to_registrationdestructive declared
assign_number_to_customerdestructive declared
bulk_update_numbersdestructive declared
export_numbersread declared
list_number_poolsread declared
create_number_pooldestructive declared
get_number_poolread declared
update_number_pooldestructive declared
delete_number_pooldestructive declared
clone_number_pooldestructive declared
import_contactsdestructive declared
plan_importread declared
upsert_contactdestructive declared
list_contactsread declared
get_contactread declared
update_contactdestructive declared
delete_contactdestructive declared
bulk_update_contactsdestructive declared
set_contact_topicdestructive declared
create_listdestructive declared
list_listsread declared
get_listread declared
update_listdestructive declared
delete_listdestructive declared
list_list_contactsread declared
add_to_listdestructive declared
remove_from_listdestructive declared
create_segmentdestructive declared
list_segmentsread declared
get_segmentread declared
update_segmentdestructive declared
delete_segmentdestructive declared
query_audiencedestructive declared
preview_segmentread declared
list_topicsread declared
create_topicdestructive declared
create_templatedestructive declared
list_templatesread declared
get_templateread declared
update_templatedestructive declared
delete_templatedestructive declared
recommend_messageread declared
send_batchdestructive declared
list_batchesread declared
get_batchread declared
get_batch_resultsread declared
list_batch_recipientsread declared
pause_batchdestructive declared
resume_batchdestructive declared
cancel_batchdestructive declared
retry_batchdestructive declared
track_eventdestructive declared
plan_taskread declared
plan_campaignread declared
create_automationdestructive declared
list_automationsread declared
get_automationread declared
update_automationdestructive declared
delete_automationdestructive declared
activate_automationdestructive declared
pause_automationdestructive declared
preview_automationread declared
test_automationdestructive declared
list_automation_runsread declared
get_automation_runread declared
cancel_automation_rundestructive declared
get_topicread declared
update_topicdestructive declared
delete_topicdestructive declared
get_contact_topicsread declared
get_consentread declared
set_consentdestructive declared
list_opt_outsread declared
import_opt_outsdestructive declared
list_scheduled_messagesread declared
get_scheduled_messageread declared
cancel_scheduled_messagedestructive declared
create_scheduledestructive declared
list_schedulesread declared
get_scheduleread declared
update_scheduledestructive declared
delete_scheduledestructive declared
get_balanceread declared
get_usageread declared
get_spend_limitread declared
get_deliverabilityread declared
list_registrationsread declared
get_registrationread declared
list_toll_free_verificationsread declared
get_toll_free_verificationread declared
connect_integrationdestructive declared
list_integrationsread declared
get_integrationread declared
update_integrationdestructive declared
get_integration_eventsread declared
sync_integrationdestructive declared
disconnect_integrationdestructive declared
create_webhookdestructive declared
list_webhooksread declared
update_webhookdestructive declared
delete_webhookdestructive declared
rotate_webhook_secretdestructive declared
test_webhookdestructive declared
replay_failed_webhooksdestructive declared
create_linkdestructive declared
list_linksread declared
record_conversiondestructive declared
list_conversionsread declared
list_link_domainsread declared
get_link_domainread declared
create_link_domaindestructive declared
verify_link_domaindestructive declared
get_webhookread declared
list_webhook_deliveriesread declared
replay_eventdestructive declared
create_customerdestructive declared
list_customersread declared
get_customerread declared
update_customerdestructive declared
delete_customerdestructive declared
get_customer_usageread declared
create_api_keydestructive declared
list_api_keysread declared
revoke_api_keydestructive declared
export_csvread declared
export_consentread declared
list_audit_logsread declared
wait_for_eventsread declared
list_registration_submissionsread declared
set_spend_limitdestructive declared
delete_link_domaindestructive declared
forget_identitydestructive declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.