Skip to content

DocsBuilding on Dawnscan

MCP server

Ask an AI assistant about Robinhood Chain projects through Dawnscan.

Dawnscan answers one question: which projects on Robinhood Chain are still building, what have they shipped, and which of them is nobody looking at? That is the shape of a question someone asks an assistant, so Dawnscan is available as an MCP server — five tools an assistant can call while answering.

It runs beside the assistant, not on Dawnscan's servers. It holds no database and no credentials: it reads the same public API anyone can curl. That is why the API came first — the catalogue's rules live in one place, and this is a thin client over them.

Install

pnpm --filter @hey/mcp build

Then point a client at apps/mcp/dist/index.js.

Claude Code — add it with the CLI:

claude mcp add hey-research -- node /absolute/path/to/hey-research/apps/mcp/dist/index.js

Claude Desktop — in claude_desktop_config.json:

{
  "mcpServers": {
    "hey-research": {
      "command": "node",
      "args": ["/absolute/path/to/hey-research/apps/mcp/dist/index.js"]
    }
  }
}

Set HEY_API_URL to read a different instance (http://localhost:3000 while developing). Set HEY_API_KEY to read with your key's allowance (M13-E); the server never prints the key. It defaults to https://dawnscan.fun.

The five tools

Tool The question it answers
search_projects "What is AgentOS?" · "Whose token is 0xa000…?"
list_projects "What is still being built?" · "What launched on Pons?" · "Which infra projects are active?"
get_project "Tell me everything about this project."
list_ships "What shipped this week?" · "Is this project alive?"
this_week "What happened on Robinhood Chain this week?"

list_projects takes Dawnscan's own discovery surfaces as surface:

  • still-building — kept shipping through a market drawdown Dawnscan tracked
  • under-the-radar — real activity, little market attention
  • shipping-now, most-active, new-builders, back-from-dormancy, utility, memes

plus kind, status, narrative, launchpad, has and sort.

What the server will not let an assistant say

The tool descriptions and the rendering are part of the product, not packaging: they are what a model reads before deciding whether Dawnscan can answer, and what it quotes afterwards.

  • No tool ranks by price, values a token, or recommends anything, because Dawnscan does not. server.test.ts fails if a description ever picks up the words buy, invest, undervalued, price target or predict.
  • "Still Building" never appears without its meaning. Every rendering that shows the badge carries: verified activity continuing through a market drawdown Dawnscan tracked — a record of what happened, not a prediction and not a buy signal.
  • Absent stays absent. A project with no market reading gets no market line — never a zero, a dash or an "n/a" an assistant might average or compare. A project Dawnscan has not measured says so, in words, because that is a different answer from measuring and finding nothing.
  • A market figure never travels without its provider, and the text says outright that market data is context and that Dawnscan never orders projects by price.
  • Every ship carries how it is backed and where it came from, so an assistant cites rather than asserts, and a self-reported update can never read like a verified one.
  • Unresearched is not a finding. An INDEXED record renders as "activity not researched yet", never as its raw UNKNOWN status.
  • Failure is not an empty answer. An unreachable Dawnscan, a rate limit or a missing slug each come back as isError with a sentence saying what happened — never as "no results", which an assistant would summarise as "there are no such projects".

The server's instructions, which a client shows the model before any call, state that Dawnscan holds no wallet, holder or trading data and that none of this is investment advice.

How it is built

Piece Where
stdio entry point apps/mcp/src/index.ts
Tool definitions and descriptions apps/mcp/src/server.ts
HTTP client for the public API apps/mcp/src/client.ts
Rendering (pure, unit-tested) apps/mcp/src/render.ts
Contract tests over a real MCP client apps/mcp/src/server.test.ts

server.test.ts drives the server through an actual Client over the in-memory transport, so what is tested is the contract a client gets — the tool list, the argument schemas and the text that comes back, including on failure.

What is deliberately not here

  • No write tools. Submitting a project, claiming ownership and posting an update are things a person does on the site, signed in, with an audit trail. An agent must not do them on someone's behalf.
  • No HTTP transport yet. stdio needs no hosting and adds no load to Dawnscan's box. A remote transport is worth building when someone actually wants to run this without a checkout.