pegcheck
pegcheck-mcp
Сервер MCP только для чтения, который проверяет, торгуется ли Robinhood Chain Stock Token в данный момент по справедливой цене относительно реальной акции, которую он представляет, — предназначен для вызова ИИ-агентом непосредственно перед совершением сделки, а не для чтения с дашборда человеком.
✅ Verdict: FAIR (deviation: 0.11%)Проблема
Токены Stock Tokens Robinhood Chain — это самокастодиальные ERC-20, которые отслеживают реальные акции и торгуются 24/7 на ончейн-DEX. Реальные фондовые рынки открыты всего ~6,5 часов в день, 5 дней в неделю. Вне этих часов нет активного рынка, чтобы арбитражировать цену токена обратно к справедливой стоимости, поэтому она может отклоняться.
ИИ-агент, торгующий этими токенами напрямую в ончейне — держа ключ от кошелька и обмениваясь через пул DEX — не имеет встроенного способа узнать, заслуживает ли доверия цена, которую он собирается заплатить. Все существующие инструменты, которые выявляют этот разрыв (дашборды, Telegram-боты для оповещений, торговые терминалы), созданы для просмотра человеком. Ни один из них не предназначен для вызова агентом в процессе принятия решения.
Related MCP server: rhc-mcp
Решение
Один сфокусированный MCP-инструмент: check_stock_token_price.
Передайте ему тикер. Он возвращает структурированный вердикт с учётом торговой сессии, на который агент может опираться — перед подписанием сделки, будь то через собственный Trading MCP Robinhood или напрямую через ончейн-DEX.
{
"symbol": "AAPL",
"onchain": { "priceUsd": 310.32, "method": "liquidity-weighted-average", "poolsUsed": 10 },
"reference": { "tokenEquivalentPriceUsd": 309.99, "isTradingHalt": false },
"deviation": { "pct": 0.11, "direction": "premium" },
"marketSession": { "state": "weekend" },
"verdict": "fair",
"warnings": []
}Этот сервер только для чтения. Он никогда не хранит приватный ключ, не подписывает транзакции и не совершает сделки.
Как это работает
Два независимых источника данных, которые сравниваются:
Ончейн-цена — каждый проиндексированный пул Robinhood Chain для токена, из публичного API DexScreener, отфильтрованный до пулов, котируемых в стабильном эталонном активе (USDG/USDC) с ликвидностью не менее $500, объединённый в средневзвешенную по ликвидности (так что один глубокий пул доминирует над несколькими мелкими и шумными). Если ни один пул не проходит фильтр, используется единственный самый глубокий пул — помеченный как низкодоверенный.
Эталонная цена — собственный публичный Stock Token API Robinhood (
/rhj/prices/{symbol}), который сообщает сырые bid/ask базовой акции. Она масштабируется на текущийmultiplierтокена ERC-8056 (из/rhj/assets), чтобы получить эквивалентную справедливую цену токена, поскольку дивиденды реинвестируются в множитель, а не выплачиваются наличными.
Отклонение между ними сравнивается с таблицей порогов, зависящей от текущей торговой сессии США (regular, pre-market, after-hours, weekend, holiday, closed), вычисляемой локально без внешних зависимостей — разрыв в 2% в субботу вечером ожидаем; тот же разрыв в 11 утра во вторник — нет. Определение сессии включает полный календарь праздников NYSE, вычисляемый алгоритмически (правила n-го дня недели месяца, расчёт Пасхи для Страстной пятницы и стандартный перенос выходных) вместо загрузки из внешнего API, поэтому он работает для любого года без сетевых зависимостей, без API-ключей и без статического файла, который может устареть. Проверено по официально опубликованному календарю NYSE на 2026–2028 годы в test/nyseHolidays.test.ts. Точные пороги см. в src/config.ts, а правила праздников — в src/nyseHolidays.ts.
Установка и запуск
git clone https://github.com/kushal613/pegcheck-mcp.git
cd pegcheck-mcp
npm install
npm run buildНикаких API-ключей, никакого файла .env, никакого кошелька — каждый используемый источник данных — это бесплатный, публичный API без ключей.
Попробуйте из терминала
npm run check -- AAPL
npm run check -- TSLAПодключите к MCP-клиенту
Claude Desktop / Claude Code (claude_desktop_config.json или .mcp.json):
{
"mcpServers": {
"pegcheck": {
"command": "node",
"args": ["/absolute/path/to/pegcheck-mcp/dist/index.js"]
}
}
}Cursor (.cursor/mcp.json): та же структура, что и выше.
После подключения спросите своего агента: «Прежде чем покупать любой токен акций TSLA, проверь pegcheck, чтобы узнать, справедлива ли цена прямо сейчас».
Справочник инструментов
check_stock_token_price
Поле | Тип | Описание |
|
| Тикер, например |
|
| Средневзвешенная по ликвидности ончейн-цена. |
|
|
|
|
| Средняя цена реальной акции, масштабированная на множитель корпоративных действий. |
|
| Знаковое отклонение в %, ончейн против эталона. |
|
|
|
|
| например |
|
|
|
|
| Понятные человеку предупреждения (устаревшая котировка, приостановка торгов, пул с низкой уверенностью и т.д.). |
Архитектура
src/
config.ts Every tunable threshold, in one place
types.ts Shared types for the whole pipeline
http.ts Fetch wrapper with timeout + consistent errors
robinhoodApi.ts Reference leg: /rhj/assets + /rhj/prices (Robinhood's own APIs)
dexscreener.ts Onchain leg: liquidity-weighted price across Robinhood Chain pools
marketSession.ts Local US-market-session calculation (no external dependency)
nyseHolidays.ts Algorithmic NYSE holiday calendar (no external dependency)
pegCheck.ts Combines both legs into one PegCheckResult
server.ts MCP tool registration
index.ts stdio entrypoint
cli.ts Standalone terminal usage (no MCP client needed)
scripts/
smoke-test.mjs End-to-end MCP protocol handshake test (initialize -> tools/list -> tools/call)Известные ограничения (v0.1)
Нет обработки раннего закрытия. Закрытия NYSE в 13:00 (день после Дня благодарения, будний день перед Рождеством) не моделируются как отдельная сессия — в эти дни после полудня всё ещё будет сообщаться
after-hours/closedна несколько часов позже реального раннего закрытия. Полные дневные закрытия на праздники полностью покрыты.Нет оценки проскальзывания для конкретной площадки. Здесь сообщается агрегированная средневзвешенная по ликвидности цена, а не «сколько будет стоить моя сделка на $500 против этого конкретного пула». Это намеренная граница области v0.1 (естественный v0.2: режим
advanced, который принимает размер сделки и конкретный пул/площадку и оценивает влияние на цену).Зависимость от покрытия DexScreener. Если DexScreener ещё не проиндексировал очень новый пул,
onchain.methodбудет"none", а вердикт —no_liquidity. Это «громкий сбой», а не тихий неверный ответ.Не заменяет должную осмотрительность. См. дисклеймер ниже.
Дисклеймер
Этот проект не связан с Robinhood и не одобрен им. Это независимый информационный инструмент. Данные получены из публичных API Robinhood и публичного API DexScreener и могут быть устаревшими, неполными или неточными. Ничто здесь не является финансовой рекомендацией. Этот сервер не может совершать сделки и не хранит средства или ключи.
Лицензия
MIT — см. LICENSE.
Available Tools
1 toolcheck_stock_token_priceA
Checks whether a Robinhood Chain Stock Token's current onchain trading price is consistent with its real-world reference stock price. Combines a liquidity-weighted average of the token's onchain DEX pools with Robinhood's own live reference quote (adjusted for the token's corporate-action multiplier), and returns a session-aware fairness verdict ('fair' | 'caution' | 'unreliable' | 'no_liquidity' | 'unknown_symbol') plus the deviation percentage and supporting data. Call this BEFORE executing a trade of a Stock Token, whether through Robinhood's own Trading MCP or directly against an onchain DEX, to avoid trading at a price that has drifted from fair value -- which is most likely to happen outside regular US market hours. Read-only: this tool never places, modifies, or signs any trade.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | The Stock Token ticker symbol, e.g. "AAPL", "TSLA", "NVDA". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only: this tool never places, modifies, or signs any trade,' which is a critical safety trait. It also discloses the algorithm (combining onchain DEX pools with a live reference quote) and the return format (session-aware verdict plus deviation percentage and supporting data), going beyond minimal requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet comprehensive, front-loading the core purpose before moving to method, usage guidance, and safety note. Every sentence serves a purpose: the first defines the check, the second explains the mechanism and output, the third gives explicit usage context, and the fourth declares read-only behavior. No filler or redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter and no output schema, so the description must explain both input context and expected output. It does so by describing the verdict options ('fair' | 'caution' | 'unreliable' | 'no_liquidity' | 'unknown_symbol'), the deviation percentage, and the session-aware nature. It also covers when to use it, fulfilling the informational needs for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% description coverage for the single parameter 'symbol' with examples. The tool description does not add new semantic meaning to the parameter itself; it explains the tool's purpose but not additional nuances like format constraints or edge cases. The baseline of 3 is appropriate since the parameter is fully documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a very specific verb+resource: it checks whether a Robinhood Chain Stock Token's onchain trading price is consistent with its real-world reference stock price. It also details the method (liquidity-weighted average of DEX pools combined with Robinhood's live quote) and the output (a fairness verdict and deviation percentage), leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this BEFORE executing a trade of a Stock Token, whether via Robinhood's Trading MCP or directly against a DEX, to avoid trading at a price that has drifted from fair value. It also notes this is most likely outside regular US market hours. It does not provide explicit when-not-to-use or alternatives, but since there are no sibling tools, this is acceptable; a 4 reflects clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
check_stock_token_price
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of confusion or overlap. The tool's purpose is clearly distinct from anything else, meeting the 'clearly distinct purpose' criterion perfectly.
The tool name 'check_stock_token_price' follows a clean verb_noun pattern, and with only one tool there is no inconsistency. The name accurately describes the action and object.
A single tool feels thin for most servers, but here the scope is narrowly defined around one specific check. It is borderline acceptable but on the low end of the typical range, making it a 3 per calibration guidelines.
The tool fully addresses its stated purpose—checking price fairness before trading. It provides a verdict, deviation percentage, and supporting data, with no obvious missing operations for that specific task. It is not a CRUD domain, so the completeness is judged against the narrow mission.
Maintenance
Related MCP Connectors
13-model stock valuation engine for AI agents - fair values for 5,900+ US stocks, updated daily.
Non-custodial limit, stop-loss and DCA trading on Epsilon (Robinhood Chain) for AI agents
Token intelligence for Robinhood Chain: onchain and social data on any token, timestamped.
Deterministic decision guardrail for AI agents and bots. Verifies pre-trade economics (long-only).
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI agents to interact with Robinhood Chain via USDG payments, offering tools for balance, pricing, trading, and more.1858MIT
- AlicenseAqualityDmaintenanceEnables AI agents to read Robinhood Chain stock-token positions, quote swaps, and execute swaps through the Model Context Protocol, bridging on-chain assets that Robinhood's own off-chain MCP cannot reach.4MIT

hoodr MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to trade tokenized stocks (e.g., NVDA, TSLA) on Robinhood Chain via MCP, with non-custodial keys and spending caps.7 npmMIT
fingersofficial
AlicenseNot gradedqualityCmaintenanceRead-only checks on tokens, NFTs, wallets, contracts and tokenized stocks before an agent acts. Honeypot, peg, copycat, wallet risk. Deep Robinhood Chain coverage. Never your keys.MIT