Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Howseen

REMOTE · APP.HOWSEEN.AI

How ChatGPT, Gemini, Perplexity and Google AI name your brand, cite sources and rank rivals.

Available components

+3 this week 84 Trust /100

Last scanned (22 hours ago)

Scores higher than 89% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7565 tokens (~171/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
  • Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 45 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_action_plan” rewrote its description, which is the text the model reads security
    • Tool “get_content_plan” rewrote its description, which is the text the model reads security
    • New tool “apply_inbound_link” functional
    • New tool “get_pruning_review” functional
  • 2 Nov 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “update_brand_instructions”, which the server declares destructive security
    • Tool “draft_article” rewrote its description, which is the text the model reads security
    • Tool “get_action_plan” rewrote its description, which is the text the model reads security
    • Schema quality: 4760 → 6980 ▼ functional
    • New prompt “fix_my_site” functional
    • Server version: 1.2.0 → 1.3.0 functional
    • New tool “get_ai_referrals” functional
    • New tool “get_analytics” functional
    • New tool “get_brand_settings” functional
    • New tool “get_connections” functional
    • New tool “get_content_plan” functional
    • New tool “get_fanout_queries” functional
    • New tool “get_next_action” functional
    • New tool “get_search_console” functional
    • New tool “get_sentiment” functional
    • New tool “get_site_audit” functional
    • New tool “list_site_pages” functional
    • New tool “set_autopilot” functional
    • “draft_article” added an optional parameter “article_id” cosmetic
    • “draft_article” made “question” optional cosmetic
  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +1
    • Tool “publish_article” rewrote its description, which is the text the model reads security
  • 22 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://app.howseen.ai/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=app.howseen.ai CN=YR2,O=Let's Encrypt,C=US 10 Oct 2026 8 Jan 2027 RSA 2048 SHA256-RSA 6c1017d49f852dc7620ad4cbe1d57d5f89f
SANs: app.howseen.ai
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of app.howseen.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 8 Verified
howseen.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="howseen"

Bearer realm="howseen"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=()

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://app.howseen.ai/api/mcp Verified 200
http (plaintext) http://app.howseen.ai/api/mcp HTTPS enforced 308 https://app.howseen.ai/api/mcp
MCP tools · 44 exposed · ~6,950 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_competitor ~128

Track a competitor from a name or a website URL (resolved to name + domain like in Settings), within the competitor quota. Preview first; confirm: true applies.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
competitorstringyesCompetitor name or URL, e.g. "Notion" or "https://notion.so".
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

add_prompts ~144

Track new buyer questions (prompts) for the brand, checked against the plan's prompt quota (the whole list is refused if it would exceed it). An archived prompt added again is restored. Preview first; confirm: true applies.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
promptsarrayyesBuyer questions to track, 1 to 25.
topicstring–Optional topic to file them under.

No output schema declared.

No examples provided.

apply_inbound_link ~248

Add the ready sentence that links one existing page of the brand's site to a newly published article (the links of a get_action_plan item whose id starts with links:), on the connected WordPress only: one paragraph is inserted right after the chosen paragraph, nothing else on the page changes. Reported as applied only once the live page shows the link. mode revert removes the added sentence; mode verify re-reads the live page. Pages on other sites or editors are refused with the sentence to paste by hand. Preview first; confirm: true writes on the live site.

NameTypeReqDescription
article_idstringyeslinks.article_id of the get_action_plan item.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
modestring–apply (default), revert (remove the added sentence) or verify (re-read the live page).
page_urlstringyeslinks.pages[].page_url: the page to add the link on.

No output schema declared.

No examples provided.

archive_prompts ~119

Archive prompts: they stop being scanned (frees prompt quota) but keep their history and stay listed as archived in the dashboard, restorable. Preview first; confirm: true applies.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
promptsarrayyesExact prompt texts (from list_prompts).

No output schema declared.

No examples provided.

create_share_report ~177

Create a public, frozen report link (visibility, competitors, top prompts, recommendations) with the account's agency branding, like the dashboard Share button. Preview first; confirm: true creates the link.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
enginestring–Optional engines, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode.
fromstring–Start date YYYY-MM-DD. Default: all time.
langstring–Report language (default en).
tostring–End date YYYY-MM-DD.

No output schema declared.

No examples provided.

delete_article ~175

Move an article (planned, draft or published) to the Trash, like the dashboard delete button: restorable with restore_article or in Howseen > Content > Trash, and its topic is not planned again. A post already live on the client's own CMS (WordPress, Shopify...) is NOT removed from the CMS: the preview says where it stays live. Always call WITHOUT confirm first and show the preview to the user; call again with confirm: true only after they approve.

NameTypeReqDescription
article_idstringyesArticle id from list_articles.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

dismiss_action ~123

Dismiss an action-plan item the user does not want to do (moves it to Archived in the dashboard, out of the next best actions). Reversible in the dashboard. Preview first; confirm: true applies.

NameTypeReqDescription
action_idstringyesAction id from get_action_plan.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

draft_article ~224

Write a DRAFT article answering one buyer question, with the same quality pipeline as the app (brand context, the client's writing rules, sources AI cites, GEO checks). Never publishes. Give question (e.g. a prompt from get_prompt_gaps), or article_id of a planned topic of the content plan (get_content_plan next_to_write) to write that slot instead of creating a duplicate. Uses the plan's article allowance. Preview first; confirm: true writes it (up to about a minute).

NameTypeReqDescription
article_idstring–Or the id of a PLANNED article of the content plan (get_content_plan): writes that topic in place.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
questionstring–The buyer question the article must answer, e.g. a prompt from get_prompt_gaps.

No output schema declared.

No examples provided.

get_action_plan ~235

Prioritized actions to raise the brand's AI visibility (off-page: get listed on the pages AI cites; content: answer uncovered buyer questions; technical: site fixes, incl. links:<article_id> = link a new article from 3 related pages, with copy-ready sentences in links.pages; setup: connections), ranked 20/80 like the dashboard Action plan with the same inputs, with steps and state. For just the single next step, use get_next_action.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
langstring–Language of the action texts (default en).
limitinteger–Max items to return (default 10, max 50).
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_ai_referrals ~140

Real visits AI assistants send to the brand: GA4 sessions and revenue per assistant (ChatGPT, Perplexity, Gemini, Claude, Copilot...) and the pages they land on, an estimate of hidden AI visits (shown apart, never added), and the AI assistants that read the brand's Howseen-hosted blog pages (last 30 days). Use it to prove that AI visibility turns into traffic.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
days––Period in days: 7, 28 (default) or 90.

No output schema declared.

No examples provided.

get_analytics ~131

GA4 traffic of the account's connected property: sessions, users, page views, daily trend, top sources and pages, plus the sessions and revenue AI assistants (ChatGPT, Perplexity, Gemini, Claude, Copilot...) send. For the AI part only, prefer get_ai_referrals. Not available with a per-brand key (GA4 is account-wide).

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
days––Period in days: 7, 28 (default) or 90.

No output schema declared.

No examples provided.

get_article_performance ~139

Articles written for the brand with status, GEO score, published URL and search-engine indexing status (Google URL Inspection, Bing), plus impressions and clicks when Search Console or Bing is connected.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 20, max 100).
offsetinteger–Items to skip, for pagination.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_brand_settings ~83

The brand profile (offer, category, language, markets, about, positioning, products), its competitors and its writing rules (the client's instructions, binding on every article), plus Autopilot. Read it before drafting or changing instructions.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.

No output schema declared.

No examples provided.

get_changes ~145

What changed between the last two completed scans (or since a date): prompts gained and lost, visibility delta per engine, tracked competitors newly named, and the likely causes (sources that started or stopped citing the brand).

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
sincestring–Optional YYYY-MM-DD: compare the latest scan with the last scan on or before this date. Default: the previous scan.

No output schema declared.

No examples provided.

get_competitors ~132

Compare the brand with its competitors in AI answers: visibility %, share of voice, average position and sentiment, overall and per engine.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_connections ~145

The TRUE state of every connection of the brand, like Settings > Integrations: each publishing destination (CMS, own Next.js / API feed, hosted blog, webhook, copy-paste editor) with connected / needs_reconnect / copy_paste_only / waiting_for_site, whether articles can be published automatically, Autopilot, Google (Search Console property for this site, GA4) and Bing Webmaster. Use it before publishing or when something does not appear online. Connecting is done by the user in the app (no secrets through the assistant).

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.

No output schema declared.

No examples provided.

get_content_plan ~206

The brand's content calendar with the real publication state of every article (planned, draft, scheduled, to publish by hand, failed, live on the brand's site), the Autopilot state, and the two answers to "what next?": next_to_write (a planned topic: write it with draft_article and its article_id) and next_to_publish (a written article that meets the quality bar: publish it with publish_article). Also stale_facts: statistics of live articles re-checked monthly on their source that need attention (newer figure found with the proposed sentence, figure gone from its source, source offline), each with its source and the date it was last verified.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
limitinteger–Max items to return (default 30, max 200).
offsetinteger–Items to skip, for pagination.

No output schema declared.

No examples provided.

get_easiest_wins ~203

Third-party sites and pages cited in the answers the brand loses (competitor named, brand not), ranked by how many lost answers cite them, with the matching action-plan item. Getting listed there is the shortest path back into those answers.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
langstring–Language of the action texts (default en).
limitinteger–Max items to return (default 10, max 50).
offsetinteger–Items to skip, for pagination.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_fanout_queries ~158

The web searches the AI engines ran behind each tracked question (latest scan): the queries to rank for so the AI finds the brand, overall and per question.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 30, max 200).
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_next_action ~197

THE single most valuable next step for the brand, the same one the dashboard Overview shows (action engine, 20/80 ranking with the technical audit, Search Console and demand), with its steps, the questions it wins back and how to close it (which tool to call). Use it when the user asks "what should I do next?" or "what do I fix first?".

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
langstring–Language of the texts (default en).
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_prompt_gaps ~192

Tracked prompts where AI names at least one competitor but not the brand, per engine, with the competitors named and the domains cited. Sorted by search volume (when a cached figure exists) then by number of competitors named. Start here to see what to win back.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 25, max 100).
offsetinteger–Items to skip, for pagination.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_pruning_review ~213

The quarterly content pruning review of the brand's website (the Action plan card "Quarterly pruning"): pages nobody finds in 90 days, pages that compete for the same Google queries (cannibalisation) and thin pages, each with ONE recommendation (improve with Content Refresh, merge into another page with a 301, or remove with 410 / noindex), the reason and the data behind it (Search Console clicks and impressions, shared queries, words, AI citations, visits from every channel). Pages the AI cites or that get visits (Google Analytics, any channel), noindex pages, legal pages, the home and pages the owner kept are never proposed for removal. Use it when the user asks which pages to delete, merge or improve. Howseen never deletes nor redirects a page itself.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
langstring–Language of the texts (default en).

No output schema declared.

No examples provided.

get_search_console ~120

Google Search Console of the brand's own site: clicks, impressions, CTR, position, daily trend, top queries and pages, plus the opportunities Howseen derives (queries on page 2, low-CTR pages, queries Google shows an off-topic page for). Only the property covering this brand's site is read.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
days––Period in days: 7, 28 (default) or 90.

No output schema declared.

No examples provided.

get_sentiment ~177

How AI answers speak about the brand: % of the answers naming it that are positive (null under 3 answers), the positive / neutral / negative split with a real negative excerpt, per engine, compared with competitors, and the questions where the tone is negative.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 20, max 100).
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_site_audit ~221

Technical GEO/SEO audit of the brand's website, as the dashboard Technical audit shows it: every check (indexable, robots.txt, sitemap.xml, llms.txt, server rendering, Bing, structured data, canonical, trust signals), every issue with its severity and score gain, the steps for the site's CMS and the exact text to paste (robots.txt, llms.txt, JSON-LD, meta tags...), plus the problems found on the pages that serve the tracked questions. Use it when the user asks "what should I fix on my site" or for code to add. The last audit (refreshed weekly) is returned; refresh: true re-crawls now (up to about a minute, a few per hour).

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
langstring–Language of the texts (default en).
refreshboolean–true = crawl the site again now instead of reading the last audit.

No output schema declared.

No examples provided.

get_top_sources ~171

The domains and URLs AI engines cite most when answering the brand's buyer questions, overall and per engine. Use it to find where the brand should get listed or mentioned.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 20, max 100).
offsetinteger–Items to skip, for pagination.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

get_usage ~76

Plan, quotas used and left (prompts, competitors, articles, manual scans), next automatic scan estimate, what this API key may do, and the API rate limits. Call it before planning changes.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.

No output schema declared.

No examples provided.

get_visibility ~146

Headline AI visibility of a brand: % of AI answers that name it, share of voice vs competitors, average position, sentiment, per engine, plus the trend over the period (one point per scan).

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

list_articles ~127

Articles Howseen wrote for the brand (drafts, scheduled and published), with status, target question, GEO score and published URL.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 20, max 100).
offsetinteger–Items to skip, for pagination.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

list_brands ~42

List the brands (websites) tracked in this Howseen account, with their id, name and domain. Call this first when the account may have several brands.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_prompts ~175

The buyer questions (prompts) tracked for a brand, with per-prompt visibility, share of voice, position, which engines name the brand, and which brands and domains are cited.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 50, max 200).
offsetinteger–Items to skip, for pagination.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

list_site_pages ~101

The brand's own website pages Howseen read when it joined (URL, title, summary): the inventory used for internal links, llms.txt and content refresh.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
limitinteger–Max items to return (default 50, max 200).
offsetinteger–Items to skip, for pagination.

No output schema declared.

No examples provided.

mark_action_done ~130

Mark an action-plan item as done (same state as the dashboard Action plan). Use the action id from get_action_plan or get_easiest_wins. Preview first; confirm: true applies.

NameTypeReqDescription
action_idstringyesAction id, e.g. offpage:g2.com or content:<prompt>.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

publish_article ~234

Publish a written article (e.g. a draft from draft_article) to the brand's connected CMS (WordPress, Shopify, Ghost, BigCommerce, GoHighLevel, Webflow, webhook) or hosted blog, now, or schedule it for a later date (needs Autopilot ON). Goes live publicly. Preview first; confirm: true publishes and returns the URL.

NameTypeReqDescription
article_idstringyesArticle id from list_articles or get_article_performance.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
platformstring–Optional: wordpress, shopify, ghost, bigcommerce, webhook, nextjs (hosted blog / Next.js feed) or api. Default: the CMS Autopilot uses (most recently connected).
publish_atstring–Optional YYYY-MM-DD after today to schedule instead of publishing now (Autopilot must be ON).

No output schema declared.

No examples provided.

refresh_article ~213

Rewrite a WRITTEN article with the brand's current profile (offer, category, offerings, competitors) after it changed: same article id, slug, question and date, previous version kept (restorable in the app). A published article is never overwritten: the update lands in a refreshed draft. Free once per article after a profile change, otherwise uses the article allowance. Give article_id (list_articles) or the article's target question. Preview first (shows what changes and the quota impact); confirm: true rewrites it (up to about a minute).

NameTypeReqDescription
article_idstring–Article id from list_articles.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
questionstring–Or the article's target question (the most recent written article for it).

No output schema declared.

No examples provided.

remove_competitor ~104

Stop tracking a competitor (by name or domain). Past results keep it. Preview first; confirm: true applies.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
competitorstringyesTracked competitor name or domain.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

remove_prompts ~117

Stop tracking prompts and remove them from the prompt list (past scan results stay in history). Prefer archive_prompts to keep them listed. Preview first; confirm: true applies.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
promptsarrayyesExact prompt texts (from list_prompts).

No output schema declared.

No examples provided.

request_indexing ~210

Submit a published article to the search engines connected for the brand: Google (sitemap re-submit through Search Console when connected with indexing), Bing (Webmaster key) or IndexNow for pages hosted by Howseen. If you publish on your own site from the API or feed, pass url (the live https address of the article on the brand's domain): Howseen records it and tracks indexing there. At most once per article every 24h. Preview first; confirm: true submits.

NameTypeReqDescription
article_idstringyesId of a published article.
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
urlstring–Live https URL of the article on the brand's own site (needed when you publish it yourself from the API or feed).

No output schema declared.

No examples provided.

restore_article ~110

Bring back an article from the Trash (e.g. one deleted with delete_article). Preview first; confirm: true restores.

NameTypeReqDescription
article_idstringyesId of the deleted article (from delete_article's result).
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

run_scan ~144

Scan the brand's prompts on the AI engines now, with the same limit as the dashboard Run now button (a fresh scan at most once per brand per plan cadence: every 72h, every 24h on Business; prompts added since the last scan can be scanned alone; an unfinished scan can be continued). Preview first; confirm: true runs about 45 seconds per call.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.

No output schema declared.

No examples provided.

search_responses ~217

Read real AI answers collected for the brand: excerpts around the brand mention, whether the brand and which competitors were named, and the cited URLs. Filter by a word in the question or answer (query), by prompt text, and by engine.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
enginestring–Optional AI engine filter, comma separated: chatgpt, gemini, perplexity, ai_overviews, ai_mode. Default: all engines.
fromstring–Start date YYYY-MM-DD. Default: all time.
limitinteger–Max items to return (default 10, max 50).
offsetinteger–Items to skip, for pagination.
promptstring–Optional text the tracked prompt must contain.
querystring–Optional text to search in the question or the answer.
tostring–End date YYYY-MM-DD. Default: now.

No output schema declared.

No examples provided.

set_autopilot ~148

Turn Autopilot on (articles of the content plan go live on the connected site on their date, once they meet the quality bar and the brand's rules) or off (nothing publishes automatically). Same switch as Howseen > Content. Preview first (says where it would publish); confirm: true applies.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
onbooleanyestrue = Autopilot ON, false = OFF.

No output schema declared.

No examples provided.

suggest_prompts ~106

Buyer questions worth tracking that the brand does not track yet: real questions from Hacker News discussions (ranked by engagement) plus AI suggestions for the category. Returns suggestions only; use add_prompts to track some. Limited to 20 calls per day.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
countinteger–How many AI suggestions (default 10, max 25).

No output schema declared.

No examples provided.

update_brand_instructions ~204

Change the brand's writing instructions (Settings > Writing rules): the client's own rules every article must follow (tone, words to avoid, competitors never to name, facts to state...). Binding on every writing path from now on; an article breaking one is held, never published. mode "append" adds a rule, "replace" (default) sets the whole text (max 2000 characters, never cut). Read get_brand_settings first. Preview first; confirm: true saves.

NameTypeReqDescription
brandstring–Brand id, name or domain (from list_brands). Optional when the account has a single brand.
confirmboolean–Leave out (or false) to get a preview: nothing changes. Set true ONLY after the user approved that exact preview.
instructionsstringyesThe instructions text (replace) or the rule to add (append). Empty with replace clears them.
modestring–replace (default) or append.

No output schema declared.

No examples provided.

Install

How do I install the Howseen MCP server?

Howseen is a hosted endpoint at https://app.howseen.ai/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · app.howseen.ai

# add to Claude Code
claude mcp add --transport http ai-howseen-howseen-mcp 'https://app.howseen.ai/api/mcp'
Common questions

What is the Howseen MCP server?

Howseen is an MCP server listed in the public MCP registry as ai.howseen/howseen-mcp. How ChatGPT, Gemini, Perplexity and Google AI name your brand, cite sources and rank rivals. This page covers its hosted endpoint (https://app.howseen.ai/api/mcp).

Is the Howseen MCP server safe to use?

Howseen scores 84 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Howseen MCP server expose?

Howseen exposes 44 tools: list_brands, get_visibility, list_prompts, get_competitors, get_top_sources, and 39 more. Their descriptions and schemas cost roughly 6,950 tokens of context every time the server is loaded.

Does the Howseen MCP server require authentication?

Yes. Howseen asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Howseen MCP server still maintained?

Howseen is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.