Build your own AI visibility tooling. Skip building the collector.

Hi, Moose asks the AI search engines every day, stores every answer with its sources, and measures mentions, citations and competitors. Connect Claude Code, Codex or Cursor over MCP and let your agent build on that data, or call the REST API from the app you ship.

Before you start

What has to exist first

Hi, Moose returns real stored answers, so there has to be something collected before an agent can build on it. If you are an agent reading this, walk your user through these four items before you start.

  1. 1
    A Hi, Moose account
    Free works for MCP. The REST API needs a paid plan.
    Create an account
  2. 2
    The desktop app, installed and signed in
    Collection runs in the app, on your computer or a host you control. For MCP jobs it has to be open and signed in. REST reads are served from the cloud and work with it closed.
    Download the app
  3. 3
    A project with tracked prompts
    One project per brand. Add the prompts you want tracked, pick engines, and let at least one run complete. History starts on the first run, so add prompts early.
  4. 4
    For the finished app, an API key
    The account owner creates a read-only key in Settings, API keys. It lives in HIMOOSE_API_KEY on your server, never in the browser.
Connect

Add Hi, Moose to your coding agent

One command or config entry, then a browser sign-in. No API key is needed for MCP, and nothing goes in the file that a teammate could not commit.

Run this in your terminal, then start Claude Code and type /mcp. Choose himoose, then Authenticate.

Terminal
claude mcp add --transport http himoose https://mcp.himoose.com/mcp

Your browser opens the Hi, Moose sign-in. Add --scope user to make it available in every project.

Add the server, then sign in. The Codex CLI and IDE extension share this config.

Terminal
codex mcp add himoose --url https://mcp.himoose.com/mcp
codex mcp login himoose

The login command opens the Hi, Moose sign-in in your browser.

Add this to ~/.cursor/mcp.json, or .cursor/mcp.json for one project.

mcp.json
{
  "mcpServers": {
    "himoose": { "url": "https://mcp.himoose.com/mcp" }
  }
}

Then open Cursor Settings, Tools & MCP, and sign in to Hi, Moose when it asks.

Any agent that can add a remote MCP server over HTTPS with OAuth sign-in can connect.

Server address
https://mcp.himoose.com/mcp

Leave any OAuth client ID field empty. Hi, Moose registers the app during sign-in.

After sign-in, ask the agent to call list_projects. If it returns your project, you are connected. Chat apps like Claude and ChatGPT connect the same way; steps are on Connect an agent.
First prompt

A first look in one session. MCP only, so it works on the free plan.

Using the Hi, Moose MCP server (https://mcp.himoose.com/mcp), build a static HTML report in ./ai-visibility that shows how our brand appears in AI search for our tracked topics. Do not query AI engines yourself. I will finish the Hi, Moose sign-in in my browser. Never ask me for a password or token. Start with list_projects and ask me which project to use. Get the data with visibility_check_topic, and use visibility_get_answer for the stored answers behind the numbers. Show results by engine, change over the last 30 days, competitors named, and the pages each engine cites. If a tool reports no host device, no visibility history, or not enough history for a comparison, stop and tell me what to set up in Hi, Moose instead of estimating.

A dashboard your team opens in a browser. MCP while building, REST API in the finished app. The REST API needs a paid plan.

Build an internal web dashboard that shows how our brand appears in AI search for our top 20 topics. Use Hi, Moose for all AI search data. Do not query AI engines yourself. 1. While you build, use the Hi, Moose MCP server (https://mcp.himoose.com/mcp) to see what data exists. I will finish the sign-in in my browser. Never ask me for a password or token. 2. Call list_projects and ask me which project to use. Check how many prompts are tracked, which engines, and how far back the history goes. 3. In the app, call the Hi, Moose REST API (https://api.himoose.com/v1) from the server only, with the key in the HIMOOSE_API_KEY environment variable. Never send the key to the browser. Read the schema from https://api.himoose.com/v1/openapi.json. 4. Show results by topic and engine, change since last month, competitors named, and the sources each engine cites. Link every number to the stored answer behind it. 5. If something is missing (no tracked prompts for a topic, less than two months of history, no competitors set), show that plainly in the app and tell me what to set up in Hi, Moose. Do not estimate or fill gaps.
Skill file

Teach your agent Hi, Moose once

Drop this file into your project and the agent knows which tools to call, in what order, and what to do when data is missing. It covers both MCP during development and the REST API in the finished app.

Claude Code.claude/skills/himoose/SKILL.md
CodexAGENTS.md
Cursor.cursor/rules/himoose.mdc

Codex and Cursor read plain Markdown, so paste the same content without the front matter.

SKILL.md
---
name: himoose
description: AI search visibility data from Hi, Moose. Use when the user asks how their brand appears in ChatGPT, Gemini, Perplexity, Claude or other AI search engines, or wants to build a report, dashboard or app on that data.
---

# Hi, Moose

Hi, Moose collects answers from AI search engines on a schedule, stores each one with its sources, and measures mentions, citations and competitor presence over time. Use it for that data. Do not query AI engines yourself.

## Two ways in

- MCP server: https://mcp.himoose.com/mcp (OAuth, every plan). Use during development and for work with the user present.
- REST API: https://api.himoose.com/v1 (API key, paid plans). Use in deployed apps and scheduled jobs. Call it from a server only, with the key in HIMOOSE_API_KEY. Schema: https://api.himoose.com/v1/openapi.json.

## Sign-in

Sign-in happens in the user's browser. Never ask for a password, token or API key in chat. Never put a key in client-side code.

## Order of operations

1. list_projects (MCP) or GET /v1/projects (REST). Ask the user which project to use.
2. Check what exists: tracked prompts, engines, firstAnswerDate and latestAnswerDate. History starts when a prompt is first tracked; there is no backfill.
3. Read data: visibility_check_topic for mentions, citations and competitors per engine over a window; visibility_get_answer for one stored answer with sources; visibility_list_opportunities for gaps. REST equivalents: /stats/daily, /stats/competitors, /answers, /answers/{id}.
4. Link every number you display to the answer ID behind it.

## When something is missing

If a tool reports no host device, host offline, no project, no tracked prompts or not enough history, relay the message to the user as written and say what to set up in the Hi, Moose desktop app. Do not estimate, backfill or invent visibility numbers.

## Limits

- MCP jobs run on the host device, so the desktop app must be open and signed in.
- REST reads work with the app closed. REST actions that start runs need a running app and the runs:execute scope.
- /stats/daily returns up to 366 days per request and reports incompleteDays; label those days rather than showing a dip.
- Month-over-month views need runs across both months.
What people build

Your frontend, your logic, Moose's data

Three common shapes, with the calls each one makes. The interface, branding, hosting and anything specific to your business is yours.

Internal dashboard

Visibility by topic and engine, change since last month, competitors, and the sources each engine cites.

GET /v1/projects/{id}/stats/dailyGET /v1/projects/{id}/stats/competitorsGET /v1/projects/{id}/answers/{answerId}
Needs about two months of runs for the comparison.

Weekly Slack brief

A scheduled job that compares this week to the last four and posts share of voice, one quoted answer, and any new source.

GET /v1/projects/{id}/stats/competitorsGET /v1/projects/{id}/answers?mentioned=false
Runs with nobody present, so REST with a read-only key.

Agency client portal

One login per client, each mapped to the Hi, Moose projects they may see. Your branding and PDF export.

GET /v1/projectsGET /v1/projects/{id}/stats/daily
One project per client brand. Keys can be limited to chosen projects.

A coding agent can write a collector in an afternoon. What it cannot do is keep it running. This is the part Hi, Moose takes off your plate.

A different collection method per engineEngine and interface changes, noticed and fixedDaily scheduling, retries and rate limitsStoring every answer so it still compares a year laterDetecting brands, competitors and citations in free textTelling a real drop from an incomplete run
Reference

MCP and REST, side by side

MCPREST API
Address MCP: https://mcp.himoose.com/mcp REST API: https://api.himoose.com/v1
Best for MCP: Coding agents and AI assistants working with a person REST API: Applications, portals and scheduled jobs your team deploys
Authentication MCP: OAuth 2.1. A person signs in with their Hi, Moose account in a browser. No keys to store. REST API: Secret API key in an Authorization: Bearer header. Keys start with hmk_live_ and are shown once.
Where to call it MCP: From the agent, after sign-in REST API: Your server only. The API does not accept calls from browsers.
Plan MCP: Every plan, including free REST API: Paid plans. The account owner creates keys in Settings, API keys.
Permissions MCP: Read projects and visibility data, and create work in the Library. Cannot publish, delete, or change settings. REST API: Read by default. Optional scopes to change tracking (tracking:write) and start runs (runs:execute). Keys can be limited to chosen projects and set to expire after 30, 90 or 365 days.
When the app is closed MCP: Jobs run on the host device, so it needs to be on with Hi, Moose open and signed in. REST API: Reads work, because they are served from the cloud. Runs that need your host wait up to 24 hours for it.
Responses MCP: Structured tool results with answer IDs. Plain messages name anything missing. REST API: JSON with cursor pagination and Problem Details errors. Each response reports your daily request quota.
Schema MCP: tools/list after sign-in REST API: https://api.himoose.com/v1/openapi.json

MCP tools for visibility data

Server https://mcp.himoose.com/mcp. Briefs, drafts and audit tools are listed on Connect an agent.

list_projectsProjects on the signed-in account
visibility_check_topicMentions, citations and competitors per engine for a topic, now and over a window
visibility_get_answerOne stored answer in full, with sources
visibility_list_opportunitiesPrioritized gaps, with the pages engines cite instead
get_resultPick up a finished job by ID

REST endpoints

Base URL https://api.himoose.com/v1. Exact schemas are in /v1/openapi.json.

GET /v1/projectsProjects the key can read
GET /v1/projects/{id}One project, with tracked prompts, engines and history dates
GET /v1/projects/{id}/topicsTopics and the prompts in them
GET /v1/projects/{id}/stats/dailyMention and citation rates per day and engine, up to 366 days
GET /v1/projects/{id}/stats/competitorsShare of voice for a date range
GET /v1/projects/{id}/answersStored answers, filterable by engine, prompt, topic, run, mentioned and cited
GET /v1/projects/{id}/answers/{answerId}One answer in full, with sources
POST /v1/projects/{id}/run-requestsStart a run (needs runs:execute)

A request from your server

curl "https://api.himoose.com/v1/projects/q7Rk2mBw/stats/daily?from=2026-10-05&to=2026-10-11&engine=gemini" \
  -H "Authorization: Bearer $HIMOOSE_API_KEY"
{
  "from": "2026-10-05",
  "to": "2026-10-11",
  "incompleteDays": 0,
  "data": [
    {
      "date": "2026-10-05",
      "engineId": "gemini",
      "answers": 40,
      "mentioned": 4,
      "cited": 0,
      "mentionRate": 0.1,
      "citationRate": 0
    },
    {
      "date": "2026-10-06",
      "engineId": "gemini",
      "answers": 40,
      "mentioned": 3,
      "cited": 0,
      "mentionRate": 0.075,
      "citationRate": 0
    },
    /* …five more days */
  ]
}

One row per day and engine. incompleteDays counts days in the range that are not summarized yet, so your app can label them instead of showing a dip. Values are example data.

Questions about building on Hi, Moose

Should my app use MCP or the REST API?

Use MCP when an agent does the work with a person present, in Claude Code, Codex, Cursor, Claude or ChatGPT. Use the REST API when your own application or a scheduled job calls Hi, Moose from a server. Many builds use both: MCP while the agent explores and builds, the REST API in the app it ships.

Can a browser app call the API directly?

No. The API does not accept calls from browsers, and an API key in client-side code would be exposed. Call it from your server, a serverless function or a scheduled job, and send your frontend only the data it needs.

How much history does my app need?

A snapshot by engine needs one completed run. Month-over-month comparisons need runs across both months. History starts when a prompt is first tracked, so add the prompts you care about early.

Does the desktop app need to stay open?

For MCP, yes: jobs run on the host device you pick in Settings, Connected agents. For REST reads, no: they are served from the cloud. Runs that need your host wait up to 24 hours for it.

Can I run the app somewhere other than my laptop?

Yes. Install it on hosting you control and leave it running, or have Hi, Moose run it on a dedicated server in your region. Both are described on the infrastructure page.

Can I build an app for my clients?

Yes. Agencies use one project per client brand and limit an API key to the projects a portal should read. The portal, its branding and its client logins are yours to build.