pegcheck
Use this server to check whether a Robinhood Chain Stock Token is trading at a fair price relative to the real-world stock it represents before executing a trade.
Checks price fairness: Takes a ticker like
AAPLand returns a verdict:fair,caution,unreliable,no_liquidity, orunknown_symbol.Compares onchain vs reference prices: Uses a liquidity-weighted onchain DEX price and Robinhood's official reference quote, adjusted by the token's corporate-action multiplier.
Provides actionable details: Returns deviation percentage, market session state (
regular,pre-market,after-hours,weekend,holiday,closed), holiday name, and warnings like stale quotes or trading halts.Liquidity-aware: Falls back to the deepest pool when no qualifying DEX pools exist, flagged as low-confidence.
Read-only and agent-friendly: Never signs transactions or places trades; designed to be called by an AI agent right before trading.
Checks whether a Robinhood Chain Stock Token is trading at a fair price relative to the real-world stock, providing a verdict and deviation data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pegcheckcheck if TSLA stock token price is fair before I trade"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pegcheck-mcp
A read-only MCP server that checks whether a Robinhood Chain Stock Token is currently trading at a fair price relative to the real-world stock it represents — designed to be called by an AI agent, right before it trades, not read off a dashboard by a human.
✅ Verdict: FAIR (deviation: 0.11%)The problem
Robinhood Chain's Stock Tokens are self-custodiable ERC-20s that track real stocks and trade 24/7 on onchain DEXs. Real stock markets are only open ~6.5 hours a day, 5 days a week. Outside those hours there's no active market to arbitrage the token price back to fair value, so it can drift.
An AI agent trading these tokens directly onchain — holding a wallet key and swapping against a DEX pool — has no built-in way to know if the price it's about to pay is trustworthy. Every existing tool that surfaces this gap (dashboards, Telegram alert bots, trading terminals) is built for a human to look at. None of them are built to be called by an agent mid-decision.
Related MCP server: r0x-os
The solution
Two focused MCP tools:
check_stock_token_price— give it a ticker. It returns a structured, session-aware verdict an agent can act on — before it signs a trade, whether that trade goes through Robinhood's own Trading MCP or directly against an onchain DEX.verify_stock_token— give it a ticker and a contract address. It tells you whether that contract is the genuine, issuer-recognized Stock Token. Robinhood Chain is permissionless, so ticker-impersonating tokens are rampant — onchain analysis has found hundreds of fake contracts per major ticker, with fake volume at times out-trading the genuine tokens 2:1. Symbol search alone is not safe; the registry check is the ground truth.
{
"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": []
}This server is read-only. It never holds a private key, never signs a transaction, and never places a trade.
How it works
Two independent data sources, compared:
Onchain price — every indexed Robinhood Chain pool for the token, from DexScreener's public API, filtered to pools quoted in a stable reference asset (USDG/USDC) with at least $500 of liquidity, combined into a liquidity-weighted average (so one deep pool dominates over several shallow, noisy ones). Falls back to the single deepest pool — flagged as low-confidence — if nothing passes the filter.
Reference price — Robinhood's own public Stock Token API (
/rhj/prices/{symbol}), which reports the raw underlying-equity bid/ask. This is scaled by the token's current ERC-8056multiplier(from/rhj/assets) to get the token-equivalent fair price, since dividends are reinvested into the multiplier rather than paid out in cash.
The deviation between the two is compared against a threshold table that depends on the current US market session (regular, pre-market, after-hours, weekend, holiday, closed), computed locally with no external dependency — a 2% gap on a Saturday night is expected; the same gap at 11am on a Tuesday is not. Session detection includes a full NYSE holiday calendar, computed algorithmically (nth-weekday-of-month rules, an Easter calculation for Good Friday, and the standard weekend-observance shift) rather than fetched from any external API, so it works for any year with no network dependency, no API key, and no static file to go stale. Verified against NYSE's officially published 2026-2028 calendar in test/nyseHolidays.test.ts. See src/config.ts for the exact thresholds and src/nyseHolidays.ts for the holiday rules.
Install & run
git clone https://github.com/kushal613/pegcheck-mcp.git
cd pegcheck-mcp
npm install
npm run buildNo API keys, no .env file, no wallet — every data source used is a free, public, keyless API.
Try it from the terminal
npm run check -- AAPL
npm run check -- TSLA
npm run check -- verify TSLA 0x322F0929c4625eD5bAd873c95208D54E1c003b2dConnect it to an MCP client
Claude Desktop / Claude Code (claude_desktop_config.json or .mcp.json):
{
"mcpServers": {
"pegcheck": {
"command": "node",
"args": ["/absolute/path/to/pegcheck-mcp/dist/index.js"]
}
}
}Cursor (.cursor/mcp.json): same shape as above.
Once connected, ask your agent: "Before you buy any TSLA stock token, check pegcheck to see if the price is fair right now."
Tool reference
check_stock_token_price
Field | Type | Description |
|
| Ticker, e.g. |
|
| Liquidity-weighted onchain price. |
|
|
|
|
| Real stock mid-price, scaled by the corporate-action multiplier. |
|
| Signed % deviation, onchain vs. reference. |
|
|
|
|
| e.g. |
|
|
|
|
| Human-readable caveats (stale quote, trading halt, low-confidence pool, etc.). |
verify_stock_token
Field | Type | Description |
|
| Ticker the token claims to be, e.g. |
|
| Contract address to verify (0x-prefixed EVM address). |
|
| The genuine contract address from Robinhood's asset registry. |
|
|
|
|
| Human-readable explanation (e.g. the correct address when an impostor is detected). |
Architecture
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
verifyToken.ts Impostor guard: registry-backed token-identity verification
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)Known limitations (v0.1)
No early-close handling. NYSE's 1:00 PM closes (day after Thanksgiving, a weekday Christmas Eve) are not modeled as a distinct session — those afternoons will still report
after-hours/closeda few hours later than the real early close. Full-day holiday closures are fully covered.No venue-specific slippage estimate. This reports the aggregate liquidity-weighted price, not "what would my $500 trade cost against this specific pool." That's a deliberate v0.1 scope boundary (a natural v0.2: an
advancedmode that takes a trade size and a specific pool/venue and estimates price impact).DexScreener coverage dependency. If DexScreener hasn't indexed a very new pool yet,
onchain.methodwill be"none"and the verdict will beno_liquidity. This is a "fail loud," not a silent wrong answer.Not a substitute for due diligence. See the disclaimer below.
Disclaimer
This project is not affiliated with or endorsed by Robinhood. It is an independent, informational tool. Data is sourced from Robinhood's public APIs and DexScreener's public API and may be delayed, incomplete, or inaccurate. Nothing here is financial advice. This server cannot place trades and holds no funds or keys.
License
MIT — see 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. Dates show when Glama detected each change.
1 tool update
v0.1.0- First observed
check_stock_token_price
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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
Verified RWA tokenization knowledge — security tokens, regulation, standards — for any AI.
Financial data for AI agents: crypto data, Polymarket odds, weather/oil calibration, trust scoring.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables agents to query live Robinhood Chain data including tokens, wallets, Chainlink feeds, heat scores, and tracking error on tokenized equities, all read-only without API keys.412MIT
- AlicenseAqualityCmaintenanceEnables AI agents to interact with Robinhood Chain via USDG payments, offering tools for balance, pricing, trading, and more.1863MIT
- AlicenseAqualityCmaintenanceEnables 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.8MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kushal613/pegcheck-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server