LeashIndex Get the report

Index / messaging

KaiCalls

com-kaicalls-kaicalls declares 182 capabilities across 182 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://www.kaicalls.com/api/mcp, published in the official MCP registry as com.kaicalls/kaicalls 1.1.0. 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 · 80 of 182 tools

80 tools are classified as irreversible or destructive and declare no limit. 67 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 182 tools

182 of 182 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 · 3 of 182 tools

3 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 182 tools

182 of 182 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 182 tools

182 of 182 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.

high · uncapped-write · 32 of 182 tools

32 tools can modify data and declare no limit.

low · uncapped-read · 70 of 182 tools

70 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
request_human_approvaldestructive declared
connect_agentdestructive declared
get_agent_connectionread declared
disconnect_agentdestructive declared
get_lsa_account_reportread declared
get_lsa_setupread declared
sync_lsadestructive declared
list_lsa_leadsread declared
get_lsa_conversationsread declared
get_lsa_reportread declared
send_lsa_replydestructive declared
rate_lsa_leaddestructive declared
agency_profile_bootstrapwrite assumed
agency_profile_updatedestructive declared
agency_profile_invitesend inferred
agency_profile_accept_invitewrite assumed
agency_profile_revoke_invitedestructive declared
agency_profile_assignwrite inferred
agency_profile_unassigndestructive declared
agency_profile_revoke_memberdestructive declared
agency_profile_issue_keywrite inferred
agency_offer_savewrite inferred
agency_offer_previewread declared
agency_offer_publishsend inferred
agency_offer_archivedestructive declared
agency_enrollment_start_self_servicesend inferred
agency_enrollment_finish_self_servicewrite inferred
agency_enrollment_owner_savewrite assumed
agency_enrollment_createwrite inferred
agency_enrollment_savedestructive declared
agency_enrollment_previewread inferred
agency_enrollment_enrollread inferred
agency_enrollment_claim_ownerwrite assumed
agency_enrollment_approve_ownerwrite inferred
agency_enrollment_rotate_owner_linkdestructive declared
agency_enrollment_revokedestructive declared
agency_installation_preview_route_receiptread declared
agency_installation_approve_route_receiptwrite inferred
agency_installation_preview_handoffread declared
agency_installation_approve_handoffwrite inferred
agency_installation_resolve_updatewrite inferred
agency_installation_run_scenariosdestructive declared
agency_installation_owner_previewread declared
agency_installation_approvewrite inferred
agency_installation_revoke_approvaldestructive declared
agency_installation_pausedestructive declared
agency_installation_retrywrite assumed
agency_installation_exportread declared
agency_installation_preview_offboardread declared
agency_installation_offboarddestructive declared
agency_installation_preview_updateread inferred
agency_installation_approve_updatewrite inferred
agency_installation_apply_updatedestructive declared
agency_installation_opt_into_canarywrite assumed
agency_report_generatedestructive declared
agency_report_configuredestructive declared
agency_billing_record_adjustmentwrite assumed
agency_billing_set_plandestructive declared
agency_billing_set_automatic_collectiondestructive declared
agency_billing_publish_termssend inferred
agency_billing_accept_termssend inferred
agency_billing_setup_collectionwrite inferred
agency_billing_freeze_periodread inferred
agency_care_preview_reviewread declared
agency_care_prepare_reviewread inferred
agency_care_launch_reviewdestructive declared
agency_support_acknowledgewrite inferred
agency_support_measurewrite assumed
agency_support_complete_exercisedestructive declared
get_agency_workspaceread declared
request_extra_numberwrite inferred
get_extra_number_statusread declared
retry_setupdestructive declared
get_setup_recovery_statusread declared
make_calldestructive declared
check_call_statusread declared
answer_call_questionsend inferred
join_calldestructive declared
list_recent_callsread declared
get_transcriptread declared
share_call_examplewrite assumed
unshare_call_examplewrite assumed
get_call_recordingread declared
list_agentsread declared
get_business_inforead declared
get_operational_settingsread declared
configure_staff_alertsdestructive declared
get_call_disclosuresread declared
set_call_disclosuresdestructive declared
get_activation_statusread declared
confirm_notification_destinationdestructive declared
retry_activation_notificationdestructive declared
choose_customer_routedestructive declared
configure_textable_linksdestructive declared
configure_agent_business_rulesdestructive declared
list_leadsread declared
get_leadread declared
list_voicemailsread declared
list_sms_messagesread declared
get_inboxread declared
set_business_hourswrite inferred
list_campaignsread declared
create_campaigndestructive declared
launch_call_campaigndestructive declared
pause_call_campaigndestructive declared
list_workflow_templatesread declared
get_analyticsread declared
upsert_leaddestructive declared
send_smsdestructive declared
update_agent_configdestructive declared
request_emergency_addressdestructive declared
request_transcript_webhookdestructive declared
request_agent_updatedestructive declared
request_number_purchasepay inferred
request_config_rollbackdestructive declared
join_meetingsend inferred
get_meetingread declared
leave_meetingdestructive declared
get_usageread declared
list_plansread declared
get_checkout_statusread declared
send_messagedestructive declared
request_email_senderdestructive declared
check_email_senderdestructive declared
record_email_consentsend inferred
revoke_email_consentdestructive declared
draft_email_campaignsend inferred
approve_email_campaignsend inferred
launch_email_campaigndestructive declared
cancel_email_campaigndestructive declared
get_email_campaignread declared
set_conversation_ownerwrite inferred
get_business_verificationread declared
submit_text_registrationdestructive declared
get_text_registrationread declared
save_text_registration_detailsdestructive declared
start_text_registration_checkoutpay inferred
set_branded_caller_idwrite inferred
create_customer_workspacewrite inferred
set_up_businesswrite inferred
get_setup_checklistread declared
connect_whatsappread inferred
get_whatsapp_statusread declared
get_channel_statusread declared
get_trust_levelread declared
recheck_trust_leveldestructive declared
get_balanceread declared
create_checkoutwrite inferred
list_numbersread declared
get_phone_flowread declared
update_phone_flowdestructive declared
set_up_phone_systemdestructive declared
get_phone_system_statusread declared
add_team_phonedestructive declared
list_conversationsread declared
get_conversationread declared
get_webhookread declared
set_webhookdestructive declared
delete_webhookdestructive declared
list_evalsread declared
run_evaldestructive declared
find_voicesread inferred
list_voicesread declared
create_agentwrite inferred
attach_numberdestructive declared
set_owner_phonedestructive declared
detach_numberdestructive declared
search_available_numbersread declared
buy_numberpay inferred
list_knowledgeread declared
upsert_knowledgedestructive declared
list_productsread declared
upsert_productdestructive declared
list_config_versionsread declared
get_change_historyread declared
rollback_configdestructive declared
list_observability_eventsread declared
list_tool_execution_logsread declared
list_subscription_historyread declared
list_overage_chargesread declared
list_rightsize_recommendationsread declared
report_issuewrite assumed
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.