LeashIndex Get the report

Index / crm

io.github.northrosetech/ghl-mcp-server

io-github-northrosetech-ghl-mcp-server declares 64 capabilities across 64 tools, with 2 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.

98/100 exposureHigh exposure

Manifest recorded 2026-11-02 from tools/list answered by the npm package @northrosetech/ghl-mcp-server@1.0.1 (published to npm as @northrosetech/ghl-mcp-server, listed in the official MCP registry as io.github.northrosetech/ghl-mcp-server 1.0.1), 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 · no-revocation · All 64 tools

64 of 64 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 · irreversible-uncapped · 12 of 64 tools

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

high · no-expiry · All 64 tools

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

64 of 64 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 · 16 of 64 tools

16 tools can modify data and declare no limit.

low · uncapped-read · 36 of 64 tools

36 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
ghl_search_contactsread declared
ghl_get_contactread declared
ghl_create_contactwrite inferred
ghl_update_contactwrite inferred
ghl_delete_contactdestructive declared
ghl_upsert_contactsend inferred
ghl_add_contact_tagswrite inferred
ghl_remove_contact_tagsdelete inferred
ghl_get_contact_notesread declared
ghl_create_contact_notewrite inferred
ghl_delete_contact_notedestructive declared
ghl_get_contact_tasksread declared
ghl_create_contact_taskwrite inferred
ghl_update_contact_taskwrite inferred
ghl_add_contact_to_workflowwrite inferred
ghl_remove_contact_from_workflowdelete inferred
ghl_search_conversationsread declared
ghl_get_conversationread declared
ghl_get_messagesread declared
ghl_send_messagesend inferred
ghl_cancel_scheduled_messagesend inferred
ghl_update_conversationwrite inferred
ghl_list_calendarsread declared
ghl_get_calendarread declared
ghl_get_free_slotsread declared
ghl_get_eventsread declared
ghl_create_eventwrite inferred
ghl_update_eventwrite inferred
ghl_delete_eventdestructive declared
ghl_create_calendarwrite inferred
ghl_search_opportunitiesread declared
ghl_get_opportunityread declared
ghl_create_opportunitywrite inferred
ghl_update_opportunitywrite inferred
ghl_delete_opportunitydestructive declared
ghl_update_opportunity_statusread inferred
ghl_list_pipelinesread declared
ghl_list_ordersread declared
ghl_get_orderread declared
ghl_list_transactionsread declared
ghl_list_subscriptionsread declared
ghl_list_invoicesread declared
ghl_get_invoiceread declared
ghl_create_invoicewrite inferred
ghl_send_invoicesend inferred
ghl_void_invoicedestructive declared
ghl_list_workflowsread declared
ghl_list_custom_fieldsread declared
ghl_create_custom_fieldwrite inferred
ghl_get_locationread declared
ghl_get_location_tagsread declared
ghl_create_location_tagwrite inferred
ghl_search_usersread declared
ghl_list_formsread declared
ghl_get_form_submissionsread declared
ghl_list_surveysread declared
ghl_list_campaignsread declared
ghl_list_social_postsread declared
ghl_create_social_postsend inferred
ghl_list_social_accountsread declared
ghl_list_funnelsread declared
ghl_list_productsread declared
ghl_list_blogsread declared
ghl_list_linksread 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.