LeashIndex Get the report

Index / crm

io.github.Achlesha/sendhustle-mcp

io-github-achlesha-sendhustle-mcp declares 111 capabilities across 111 tools, with 2 critical issues.

100/100 exposureHigh exposure

Manifest recorded 2026-10-11 from tools/list answered by the npm package sendhustle-mcp@1.0.2 (published to npm as sendhustle-mcp, listed in the official MCP registry as io.github.Achlesha/sendhustle-mcp 1.0.2), run in an isolated container with no network access and placeholder credentials. 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 · 31 of 111 tools

31 tools are classified as irreversible and declare no limit.

critical · no-revocation · All 111 tools

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

high · no-expiry · All 111 tools

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

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

32 tools can modify data and declare no limit.

low · uncapped-read · 48 of 111 tools

48 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_emailsend inferred
retrieve_emailread inferred
list_emailsread inferred
create_domainwrite inferred
list_domainsread inferred
create_audiencewrite inferred
list_audiencesread inferred
create_contactwrite inferred
list_contactsread inferred
create_campaignwrite inferred
send_campaignsend inferred
send_batch_emailssend inferred
update_emailwrite inferred
cancel_emaildelete inferred
list_email_attachmentsread inferred
get_email_attachmentread inferred
list_received_emailsread inferred
get_received_emailread inferred
get_received_email_rawread inferred
forward_received_emailsend inferred
list_received_email_attachmentsread inferred
get_received_email_attachmentread inferred
delete_received_emaildelete inferred
get_domainread inferred
check_domain_mxread inferred
update_domainwrite inferred
verify_domainread inferred
delete_domaindelete inferred
claim_domainsend inferred
detect_domain_dnsread inferred
apply_domain_dns_cloudflarewrite assumed
apply_domain_dns_godaddywrite assumed
apply_domain_dns_namecheapwrite assumed
get_domain_claimread inferred
verify_domain_claimread inferred
get_audienceread inferred
update_audiencewrite inferred
delete_audiencedelete inferred
get_contactread inferred
update_contactwrite inferred
delete_contactdelete inferred
add_contact_to_segmentwrite inferred
list_contact_segmentsread inferred
remove_contact_from_segmentdelete inferred
get_contact_topicsread inferred
update_contact_topicswrite inferred
create_contact_propertywrite inferred
reply_received_emailsend inferred
import_sheet_contactssend inferred
import_contacts_batchsend inferred
import_contacts_csvsend inferred
list_pollsread inferred
get_poll_resultsread inferred
list_contact_propertiesread inferred
get_contact_propertyread inferred
update_contact_propertywrite inferred
delete_contact_propertydelete inferred
create_segmentwrite inferred
list_segmentsread inferred
get_segmentread inferred
list_segment_contactsread inferred
update_segmentwrite inferred
delete_segmentdelete inferred
create_topicwrite inferred
list_topicsread inferred
get_topicread inferred
update_topicwrite inferred
delete_topicdelete inferred
get_campaignread inferred
get_campaign_statsread inferred
get_campaign_abread inferred
list_campaignsread inferred
update_campaignwrite inferred
cancel_campaigndelete inferred
delete_campaigndelete inferred
create_templatewrite inferred
list_templatesread inferred
get_templateread inferred
update_templatewrite inferred
duplicate_templatesend inferred
publish_templatesend inferred
delete_templatedelete inferred
create_automationwrite inferred
list_automationsread inferred
get_automationread inferred
add_automation_stepwrite inferred
update_automation_stepwrite inferred
delete_automation_stepdelete inferred
update_automationwrite inferred
list_automation_runsread inferred
get_automation_runread inferred
stop_automationwrite assumed
delete_automationdelete inferred
create_webhookwrite inferred
list_webhooksread inferred
get_webhookread inferred
update_webhookwrite inferred
delete_webhookdelete inferred
rotate_webhook_secretsend inferred
test_webhooksend inferred
verify_webhook_signatureread inferred
list_logsread inferred
get_logread inferred
send_eventsend inferred
create_eventwrite inferred
list_eventsread inferred
update_eventwrite inferred
delete_eventdelete inferred
create_api_keywrite inferred
list_api_keysread inferred
delete_api_keydelete inferred
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.