LeashIndex Get the report

Index / messaging

SEO Perch

io-github-maartendmt-seo-perch declares 83 capabilities across 83 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.

96/100 exposureHigh exposure

Manifest recorded 2026-11-08 from tools/list on https://seoperch.com/mcp, published in the official MCP registry as io.github.MaartenDMT/seo-perch 1.0.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 · no-revocation · All 83 tools

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

3 tools are classified as irreversible and declare no limit.

high · no-expiry · All 83 tools

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

83 of 83 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 · 26 of 83 tools

26 tools can modify data and declare no limit.

low · uncapped-read · 54 of 83 tools

54 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
reddit_fetch_threadread declared
reddit_subreddit_inforead declared
reddit_searchread declared
propose_changewrite inferred
list_projectsread declared
resolve_urlread declared
get_briefingread declared
search_knowledgeread declared
get_knowledgeread declared
add_knowledgewrite inferred
update_knowledgewrite inferred
link_knowledgewrite assumed
list_strategiesread declared
propose_strategywrite assumed
update_strategywrite inferred
list_brand_factsread declared
get_listing_kitread declared
propose_brand_factwrite assumed
list_offsite_listingsread declared
add_offsite_listingread inferred
update_offsite_listingread inferred
list_workread declared
get_workread declared
create_workwrite inferred
claim_workwrite inferred
next_workwrite assumed
plan_workwrite assumed
update_work_statusread inferred
ask_adminwrite assumed
ship_workwrite assumed
set_deliverywrite inferred
save_draftwrite assumed
list_draftsread declared
get_draftread declared
check_draftread declared
release_workwrite assumed
log_activitysend inferred
list_goalsread declared
propose_goalwrite assumed
list_milestonesread declared
propose_milestonewrite assumed
update_milestonewrite inferred
list_agentsread declared
update_agent_profilewrite inferred
send_messagesend inferred
list_messagesread declared
list_geo_promptsread declared
suggest_geo_promptsread declared
add_geo_promptwrite inferred
update_geo_promptwrite inferred
list_topicsread declared
get_topicread declared
propose_topicwrite assumed
update_topicwrite inferred
list_keywordsread declared
keyword_historyread declared
track_keywordsread inferred
untrack_keyworddelete inferred
list_competitor_appsread declared
add_competitor_appwrite inferred
suggest_keywordsread declared
list_brand_mentionsread declared
list_queriesread declared
list_citation_sourcesread declared
record_ai_answerread inferred
record_serp_checkread inferred
get_metrics_summaryread declared
list_findingsread declared
get_metric_seriesread declared
list_inventoryread declared
list_content_briefsread declared
get_content_briefread declared
list_connector_runsread declared
get_publish_queueread declared
list_annotationsread declared
list_activityread declared
update_finding_statusread inferred
get_impact_reportread declared
get_impactread declared
get_connector_healthread declared
get_setup_statusread declared
get_indexing_queueread declared
mark_indexing_requestedwrite 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.