HEY Research Lab
Evidence-backed Robinhood Chain research: builders, ships, contracts, changes, market context.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"hey-research": {
"url": "https://heyresearch.xyz/mcp"
}
}
}遠端端點
https://heyresearch.xyz/mcpstreamable-http它能做什麼
工具清單
工具(13)
🟢find_projects(query, surface, radar, kind, status, ...)
Find Robinhood Chain projects by name, ticker or contract, or browse one of HEY's surfaces. A full 0x address is a contract lookup: is anyone building it, its ships in 30 days, the last one with its source. Surfaces: building-with-token: verified shipping, active or resumed, with a token whose market is live. still-building: verified activity continuing through a market drawdown HEY tracked. under-the-radar: eligible under HEY's Under the Radar rule (status shipping, active or resumed; Build Momentum at least 30; at least 2 meaningful events in the last 30 days, one of them a ship rather than a commit summary; a fresh reading of an active market, not a thin one or only a launch curve, for the project's own token) and a positive Discovery Gap — market-attention percentile below the build percentile; a positive gap alone is not enough, and it does not bound attention itself. shipping-now: status SHIPPING. most-active: shipping, active or resumed, by Build Momentum. new-builders: recorded in the last 7 days. back-from-dormancy: status RESUMED, narrowed to verified builders native to the chain (status=RESUMED gives every resumed project). utility, memes: by kind. shipping-in-silence: eligible under the Under the Radar rule AND below the 40th market-attention percentile. accelerating: more meaningful events in 30 days than in the 30 before. builder-radar: the Builder Radar, ranked by verified development, on-chain use and research, never price. shipping-in-silence and accelerating take no other argument (at most 100 rows); builder-radar takes query, radar, limit and offset. Not a ranking by price: a market sort is context, and rows without the figure follow in activity order.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "Name, ticker or contract (or its start)."
},
"surface": {
"type": "string",
"enum": [
"building-with-token",
"still-building",
"under-the-radar",
"shipping-now",
"most-active",
"new-builders",
"back-from-dormancy",
"utility",
"memes",
"shipping-in-silence",
"accelerating",
"builder-radar"
]
},
"radar": {
"type": "string",
"enum": [
"all",
"pons",
"virtuals",
"other-launch",
"no-token",
"new",
"established",
"most-improved",
"development",
"onchain",
"resumed"
],
"description": "With surface=builder-radar: a Radar view."
},
"kind": {
"type": "string",
"enum": [
"UTILITY",
"MEME",
"HYBRID",
"INFRASTRUCTURE",
"RWA",
"APPLICATION",
"OTHER"
]
},
"status": {
"type": "string",
"enum": [
"SHIPPING",
"ACTIVE",
"QUIET",
"DORMANT",
"RESUMED",
"UNKNOWN"
],
"description": "Activity status."
},
"narrative": {
"type": "string",
"maxLength": 80,
"description": "Narrative slug, e.g. \"ai-agents\"."
},
"launchpad": {
"type": "string",
"maxLength": 40,
"description": "e.g. \"pons\", \"virtuals\"."
},
"has": {
"type": "array",
"items": {
"type": "string",
"enum": [
"token",
"x",
"marketCap",
"launchpad",
"liveMarket",
"verifiedToken",
"trading",
"github"
]
},
"description": "Facts every row must carry."
},
"stage": {
"type": "string",
"enum": [
"curve",
"graduated",
"dex"
],
"description": "Token launch stage."
},
"minLiquidity": {
"type": "number",
"exclusiveMinimum": 0,
"description": "USD; unknown is excluded, never zero."
},
"maxMarketCap": {
"type": "number",
"exclusiveMinimum": 0,
"description": "USD, on the card's valuation reading."
},
"minMarketCap": {
"type": "number",
"exclusiveMinimum": 0
},
"minVolume": {
"type": "number",
"exclusiveMinimum": 0,
"description": "24h volume, USD."
},
"age": {
"type": "string",
"enum": [
"day",
"week",
"month",
"older"
],
"description": "Since the first pool opened."
},
"deployed": {
"type": "string",
"enum": [
"day",
"week",
"month",
"older"
],
"description": "Since the contract was deployed."
},
"sort": {
"type": "string",
"enum": [
"activity",
"shipped",
"marketCap",
"newest",
"liquidity",
"volume24h"
],
"description": "Default activity; shipped = newest ship first."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 48,
"description": "Default 24."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "The offset a previous answer gave."
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢get_project_snapshot(slug)
One project in one read: identity, build status and Build Momentum, market context with its kind or why it is withheld, on-chain use, 7-day product usage (distinct caller addresses per day — addresses, not people), verification, HoodLock locks, latest changes, freshness and what HEY does not know. Context blocks, never building: paid promotion (presence and dates), DefiLlama protocol economics (measured, not tracked or unread), developer footprint (counts only where measured).
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
}
},
"required": [
"slug"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢get_changes(project, contract, domain, type, since, ...)
The canonical change ledger for Robinhood Chain or one project: releases, ships, status moves, contract deployments and upgrades, verification, sources, scheduled unlocks — one event per change, with its own time and precision, when HEY first knew, and its evidence. Browse newest first; to follow along pass after=c1.0 (or a kept cursor) and keep each answer's cursor. A retraction means HEY no longer makes that claim. Facts, never causes.
輸入結構描述
{
"type": "object",
"properties": {
"project": {
"type": "string",
"maxLength": 120,
"description": "A project slug."
},
"contract": {
"type": "string",
"pattern": "^\\d{1,10}:0x[0-9a-fA-F]{40}$",
"description": "<chainId>:<address>."
},
"domain": {
"type": "array",
"items": {
"type": "string",
"enum": [
"build",
"contract",
"market",
"token",
"research",
"lock",
"market_integrity"
]
}
},
"type": {
"type": "array",
"items": {
"type": "string",
"enum": [
"build.release",
"build.code_activity",
"build.ship",
"build.status_changed",
"build.dormant",
"build.resumed",
"build.accelerating",
"build.slowing",
"contract.deployed",
"contract.followup_deployed",
"contract.implementation_changed",
"contract.source_verified",
"contract.source_unverified",
"contract.interface_changed",
"contract.usage_changed",
"contract.method_first_observed",
"contract.method_resumed",
"market.status_changed",
"market.liquidity_moved",
"market.volume_spike",
"market.distribution_changed",
"token.launch_stage_changed",
"token.verification_changed",
"research.published",
"research.builder_verified",
"research.owner_verified",
"research.source_added",
"research.source_unavailable",
"research.source_restored",
"research.source_changed",
"research.narrative_assigned",
"lock.unlock_due",
"lock.observed",
"lock.withdrawn",
"market_integrity.event"
]
}
},
"since": {
"type": "string",
"maxLength": 40,
"description": "ISO date: events whose own time is at or after it (events with no source time are left out)."
},
"until": {
"type": "string",
"maxLength": 40
},
"detectedSince": {
"type": "string",
"maxLength": 40,
"description": "ISO instant: start a sync at the first event HEY recorded at or after it."
},
"after": {
"type": "string",
"maxLength": 64,
"description": "Sync forward from this cursor (c1.0 is the start)."
},
"before": {
"type": "string",
"maxLength": 64,
"description": "Browse older than this cursor."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Default 30."
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢get_project_timeline(slug, lens, limit, before)
One project's research timeline: builds, releases, code, contract deploys, upgrades and interface changes, token verification, locks and scheduled unlocks, each with how precisely HEY knows its time. Lenses: everything, build, code, onchain, market, locks. Paged with the before cursor each answer gives.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
},
"lens": {
"type": "string",
"enum": [
"everything",
"build",
"code",
"onchain",
"market",
"locks"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Default 30."
},
"before": {
"type": "string",
"maxLength": 400,
"description": "The cursor the previous answer gave."
}
},
"required": [
"slug"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢explain_fact(slug, fact, source)
Why HEY publishes a fact about one project: the value, FACT, DERIVED or UNKNOWN, the canonical rule and version, the winning source and why, the inputs, the lineage from source to public value, and the evidence ids. Omit fact to list what can be explained; source.counted takes a source id.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
},
"fact": {
"type": "string",
"enum": [
"market.valuation",
"market.status",
"activity.status",
"build.momentum",
"discovery_gap",
"still_building",
"research.level",
"token.verification",
"source.counted",
"market_integrity.state"
]
},
"source": {
"type": "string",
"maxLength": 80,
"description": "With fact=source.counted: the source id."
}
},
"required": [
"slug"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢get_evidence(id)
Open one published record by its typed id — ship:, signal:, abi:, impl:, lock:, source:, claim:, state:, method:, sourcechange:, security: — as a receipt: what it claims, its source URL, when it happened at what precision, when HEY knew, how it is backed. Ids come from the other tools. A withdrawn record says so.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z_]+:[A-Za-z0-9:._-]{1,200}$",
"description": "A typed evidence id, e.g. \"ship:2ac87a66-…\"."
}
},
"required": [
"id"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢get_token_market(slug, days, include, min_change_pct)
One token's market from HEY's own daily index: the current reading (valuation kind, provider), price, liquidity, volume and trades by day, the lifecycle (deploy, launchpad claim, stage, first trade), pools and depth, supply concentration (shares only, no addresses), contract checks and events by day. include=["moves"] adds each day-on-day valuation move with the building events published before it — a sequence, never a cause. Context, never a recommendation.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 400,
"description": "Days of history; default 30."
},
"include": {
"type": "array",
"items": {
"type": "string",
"enum": [
"moves"
]
}
},
"min_change_pct": {
"type": "integer",
"minimum": 5,
"maximum": 500,
"description": "With moves: smallest move in percent; default 25."
}
},
"required": [
"slug"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢get_contract(address, chainId, slug)
A contract as a research entity: creation, deployer (the only account named, with a count of other tracked projects' tokens it deployed), verified source and whose code it is (template, bytecode match or its own), Sourcify's answer, proxy and implementation history or the clone's original, interface changes, and 7 days of calls per method (counts; names withheld; an undecoded selector's signature candidate — a guess, never a name). chainId and address, or slug for all of a project's. A proxy HEY did not read is "not read", never "not a proxy".
輸入結構描述
{
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0[xX][a-fA-F0-9]{40}$"
},
"chainId": {
"type": "integer",
"description": "Default 4663."
},
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, for all of its contracts."
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢project_diff(slug, from, to)
One project between two dates (YYYY-MM-DD, at most 400 days apart): releases and meaningful ships, status and Build Momentum then and now, valuation and liquidity then and now, and the changes recorded — each from the nearest persisted point with its date and basis. Never a cause.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"slug",
"from",
"to"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢ask_hey(slug, question)
A free-text question about one project (English or Malay). HEY matches it to the parts of its record it is about and answers only from that record, every line tagged FACT, DERIVED or UNKNOWN with its source. It records building only and offers no view on price.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
},
"question": {
"type": "string",
"minLength": 3,
"maxLength": 280,
"description": "The question, in the reader's words."
}
},
"required": [
"slug",
"question"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢chain_overview(view, days, week)
Robinhood Chain as a whole. view: days (default; trades, volume, tokens, transactions, launches, ships per day), this-week, weekly-report (an ISO week, or the latest), unlocks (scheduled HoodLock unlocks with proof), build-market (Build Momentum beside market attention). Aggregates only; nobody is named.
輸入結構描述
{
"type": "object",
"properties": {
"view": {
"type": "string",
"enum": [
"days",
"this-week",
"weekly-report",
"unlocks",
"build-market"
]
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 400,
"description": "days: 1–400 (default 14); unlocks: 1–365 ahead (default 30)."
},
"week": {
"type": "string",
"pattern": "^\\d{4}-W\\d{2}$",
"description": "weekly-report: e.g. 2026-W37."
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}🟢research_answer(capability, project, projects, address, days, ...)
HEY's agent contract (AgentIntelligenceResponse v1), Robinhood Chain 4663: research_project; what_changed (1–30 days, project or chain); builder_status (rule, inputs, evidence); verify_project (is a contract the project’s); compare_builders (2–4, no winner); unknowns (every coverage state). Claims FACT/DERIVED/UNKNOWN with freshness and evidence ids; source text is quoted data.
輸入結構描述
{
"type": "object",
"properties": {
"capability": {
"type": "string",
"enum": [
"research_project",
"what_changed",
"builder_status",
"verify_project",
"compare_builders",
"unknowns"
]
},
"project": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"projects": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"minItems": 2,
"maxItems": 4
},
"address": {
"type": "string",
"pattern": "^0[xX][a-fA-F0-9]{40}$"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"types": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z_]+\\.[a-z_]+$"
},
"minItems": 1,
"maxItems": 20
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"building": {
"type": "string",
"const": "only"
}
},
"required": [
"capability"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.agent-intelligence-response"
},
"schemaVersion": {
"type": "string",
"const": "1"
},
"capability": {
"type": "string",
"enum": [
"research_project",
"what_changed",
"builder_status",
"verify_project",
"compare_builders",
"unknowns"
]
},
"status": {
"type": "string",
"enum": [
"ok",
"not_found",
"moved",
"invalid_request",
"unavailable"
]
},
"answer": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": true
},
"claims": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"FACT",
"DERIVED",
"UNKNOWN"
]
}
},
"required": [
"id",
"status"
],
"additionalProperties": true
}
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": true
}
},
"data": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": true
},
{
"type": "null"
}
]
}
},
"required": [
"schema",
"schemaVersion",
"capability",
"status",
"answer",
"claims",
"evidence",
"data"
],
"additionalProperties": true
}🟢market_integrity(slug)
For one project: what happened to its tracked token market — liquidity against the level it held, trading, a pool migration — beside its builder activity, and where the two disagree. It describes the token market, never whether development stopped, and never calls a project a rug or safe.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A project slug, e.g. \"agentos\"."
}
},
"required": [
"slug"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"const": "hey.mcp-api-answer"
},
"api": {
"type": "string"
},
"data": {}
},
"required": [
"schema",
"api"
],
"additionalProperties": true
}社群
證據