Huginnova

AI search visibility for agencies and brands. MCP server with 32 tools for Claude, ChatGPT and Cursor — answers, sources, action plans, reputation and site readiness.

Hosted MCP Server

npx add-mcp 'https://huginnova.com/api/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

MCP server

Connect Huginnova to Claude, ChatGPT, Cursor or any client that speaks the Model Context Protocol. Your assistant can then answer "why does ChatGPT recommend my competitor?" from your real data, and act on it: 32 tools, the same data as the app and the API.

Connect

The server URL is https://huginnova.com/api/mcp (Streamable HTTP). Apps that support signing in (ChatGPT, Claude) connect without a key; the rest use an API key.

With an API key (Claude Code, Cursor, VS Code, Claude Desktop): create one in Integrations → API & automations and use it in your client:

Claude Code

claude mcp add --transport http huginnova https://huginnova.com/api/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Cursor ·.cursor/mcp.json

{
  "mcpServers": {
    "huginnova": {
      "url": "https://huginnova.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

VS Code ·.vscode/mcp.json

{
  "servers": {
    "huginnova": {
      "type": "http",
      "url": "https://huginnova.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Claude Desktop · claude_desktop_config.json

{
  "mcpServers": {
    "huginnova": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://huginnova.com/api/mcp",
        "--header",
        "Authorization:${AUTH}"
      ],
      "env": {
        "AUTH": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Authentication

Two ways, both as Authorization: Bearer …: an OAuth connection (apps that sign in) or an API key. Read-only connections and keys can use every read tool; full access also allows the change tools. The MCP server is included in every plan. Limit: 120 requests a minute per connection or key.

OAuth, for developers

OAuth 2.1 as the MCP authorization spec describes it. A request without a token gets a 401 whose WWW-Authenticate header points to the protected resource metadata; from there, the authorization server metadata at /.well-known/oauth-authorization-server. Apps identify themselves with a Client ID Metadata Document (an https client_id) or register with Dynamic Client Registration. Authorization code with PKCE (S256) only, and the resource must be the MCP server URL. Scopes: read and write (the person can grant less than asked). Access tokens last an hour; refresh tokens rotate on every use, and reusing an old one closes the connection.

Tools

Every tool takes a project_id from list_projects, except list_projects and list_alerts. * required.

Brands and competitors

  • list_projects read The brands in the workspace, with their market and engines.
  • get_visibility read Visibility, share of voice, citations, position and sentiment vs competitors; change, per engine and trend. project_id* days engine
  • list_competitors read Tracked competitors with their websites. project_id*
  • get_brand_recognition read Whether ChatGPT and Gemini know you as a brand. project_id*

Prompts and answers

  • list_prompts read Tracked prompts, where you lose most first. project_id* days limit cursor
  • get_prompt_suggestions read Suggested questions: real demand, gaps on your site, competitors, AI searches. project_id* limit cursor
  • search_answers read AI answers as a filterable summary list. project_id* engine prompt_id since until mentions_brand competitor_id limit cursor
  • get_answer read One AI answer in full, with every brand and source. project_id* answer_id*

Sources

  • top_sources read The domains AI cites most, and whose they are. project_id* days
  • top_pages read The exact pages AI cites most. project_id* days limit cursor
  • get_source_gaps read Sites AI cites where you're missing. project_id* days limit cursor

What to do

  • get_action_plan read Prioritized actions with why and how. project_id* status limit cursor
  • get_geo_opportunities read Questions an article would win. project_id* limit cursor
  • list_articles read GEO Writer articles and whether they're published. project_id* limit cursor
  • get_article read One article in full: analysis, markdown and JSON-LD. project_id* article_id*
  • get_outreach read Prepared emails to get mentioned on cited sites. project_id* limit cursor

Perception, site and traffic

  • get_reputation read How AI describes you: scores, strengths, weaknesses, wrong claims. project_id*
  • get_site_readiness read Whether AI crawlers can read your site, and what to fix. project_id*
  • get_signals read AI searches behind your prompts, shopping, ads, local results, Reddit and YouTube. project_id* days
  • get_ai_traffic read Visits from AI assistants and AI crawler activity. project_id* days
  • list_alerts read Alerts after each update. project_id unread_only limit cursor

Changes (full access)

  • add_prompts change Track new questions. project_id* prompts* tags
  • add_suggested_prompt change Track a suggested question. project_id* suggestion_id*
  • dismiss_suggested_prompt change Stop suggesting a question. project_id* suggestion_id*
  • set_prompt_active change Pause or resume a prompt. project_id* prompt_id* active*
  • add_competitor change Track a competitor. project_id* name* website
  • remove_competitor removes Stop tracking a competitor. project_id* competitor_id*
  • set_action_status change Mark an action done (or another status). project_id* action_id* status*
  • mark_alerts_read change Mark alerts read. alert_id project_id

Prompts

Ready-made questions your client shows in its menu ("/" in Claude), in your workspace's language. Brand and competitor names autocomplete as you type; the brand is optional if you track only one.

  • weekly_report Weekly AI visibility report: where you stand, what changed and why, priorities.
  • what_to_do_this_week What to do this week: the three changes most likely to get you into more AI answers.
  • why_competitor_wins Why a competitor wins: the real answers and sources behind it, and what to change.

How results work

Pages. Lists return items, total and next_cursor. Pass next_cursor back as cursor for the next page; it's null on the last one. Newest-first lists (answers, alerts) use the row's date and id, so new rows arriving while you page never repeat or skip any.

Summaries and detail. search_answers returns a short summary per answer (engine, prompt, date, brands named and positions, domains cited, the passage about you). Read one in full with get_answer; articles work the same way with list_articles and get_article.

Rates. Visibility, citation and similar rates are shares of answers from 0 to 1, with a 95% confidence interval. Small samples are uncertain: changes are marked as significant or not.

Format. Each result is returned as JSON text and as structuredContent. Errors you can fix (a bad argument, a plan limit, something not found) come back as tool errors with the reason.

Example questions

  • “How visible is my brand in AI answers this month, and against whom?”
  • “Why does ChatGPT recommend my main competitor and not us? Show me the answers.”
  • “Which sites should I get mentioned on first, and what do they say?”
  • “What changed since last week, and what should I do about it?”
  • “Add these five questions to the prompts I track.”
  • “Mark the structured-data fix as done.”

Security

Connections and keys belong to one workspace and only see its data. The server never starts paid work (collections, articles, emails): those stay in the app. Disconnect an app or revoke a key in Integrations at any time; it stops working immediately, and a person who leaves the workspace loses the apps they connected.