Skip to main content
Glama
stephanet88

onchain-stocks

by stephanet88

onchain-stocks-mcp

MCP server for tokenized stocks on Solana: which token is cheapest, what size costs you, and how a buy compares to the real share.

Read-only. It never trades, holds keys or gives advice.

Demo: compare tokenized Tesla issuers and slippage, no API key

Install

No API key needed. Claude Code:

claude mcp add onchain-stocks -- npx -y onchain-stocks-mcp

Other clients (Claude Desktop, Cursor):

{
  "mcpServers": {
    "onchain-stocks": {
      "command": "npx",
      "args": ["-y", "onchain-stocks-mcp"]
    }
  }
}

Then ask: "Which tokenized Tesla is cheapest to buy for $1,000?"

Needs Node 22+.

Related MCP server: pegcheck

Tools

Without a key:

Tool

Returns

list_tokens

The 129 tokens of 84 stocks covered: issuer, redeemability, mint

compare_issuers

The same buy quoted for every issuer's token of one stock (xStock, Ondo, Backpack...), ranked by price per token

quote_sizes

One token quoted at up to 5 sizes, and how much more each size pays per token than the smallest (slippage)

With a tokens.xyz key (TOKENS_API_KEY), three more:

Tool

Returns

search_stocks

Every token of a stock, plus the real share price and its age

quote_buy

The all-in cost of a buy against the real share price

risk_score

Market risk score 0 to 100, grade A/B/C

Add the key with -e TOKENS_API_KEY=your_key before -- in the Claude Code command, or as "env" in the JSON config.

Read the numbers right

  • Quotes are Jupiter routes, not fills, and not the issuer's own mint or redeem price. A token far above the others usually means a thin route.

  • Tokens of one stock can differ in what they represent (redeemability, dividends). Check redeemable.

  • Share prices are frozen outside US trading hours. Check sharePriceAgeMinutes.

Data sources

Data

Source

Buy quotes

Jupiter lite API (free, rate-limited: errors are returned, never guessed)

Built-in token list

api.tokens.xyz, generated 2026-11-01 (npm run catalog to refresh)

Share prices, search, risk

api.tokens.xyz (key required)

Development

git clone https://github.com/stephanet88/onchain-stocks-mcp
cd onchain-stocks-mcp
npm install   # also builds dist/
npm test
npm run lint
npm run typecheck

Not investment advice.

Available Tools

3 tools
compare_issuersA
Read-only

Quote the same USDC buy for every issuer's token of one stock (e.g. xStock vs Ondo) and rank them by price paid per token. No API key needed.

NameRequiredDescriptionDefault
usdNoAmount of USDC, 1 to 250000, default 1000
symbolYesTicker, e.g. TSLA

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description genuinely adds behavior the annotations don't: it fans out across all issuers for a single stock, ranks results by price paid per token, and notes no API key is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler; the core comparison behavior is front-loaded and the auth note trails as a secondary detail. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema, the description conveys the return concept (issuers ranked by effective price per token) and the cross-issuer scope. Minor gaps remain: no indication of how many issuers are compared or what fields each ranked entry contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with usd (1–250000, default 1000) and symbol fully documented in the schema. The description adds no syntax or edge-case meaning beyond implying that the same usd amount is applied uniformly across issuers, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (quote), a precisely scoped resource (the same USDC buy across every issuer's token of one stock, e.g. xStock vs Ondo), and the output shape (ranked by price paid per token). The issuer-comparison framing clearly separates it from list_tokens and quote_sizes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The comparison use case is implied by 'compare' semantics and the 'xStock vs Ondo' example, but there is no explicit when-to-use versus quote_sizes (which presumably quotes varying sizes) or when NOT to use it. An agent must infer the routing decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tokensA
Read-only

List the tokenized stocks this server covers without an API key: symbol, issuer, redeemability and mint. Filter by ticker or company name, or leave the query empty for all.

NameRequiredDescriptionDefault
queryNoTicker or company name, e.g. TSLA or Nvidia

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds meaningful context beyond that: it works without an API key, which tells the agent about auth requirements, and it names the returned fields. It does not mention pagination or rate limits for keyless access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero waste: purpose, return fields, filtering, and the default behavior are all front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only listing tool with no output schema, the description covers what the tool does, how to filter, the empty-query default, and the returned fields. Only pagination or result-size limits are absent, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents that query accepts a ticker or company name with an example. The description largely restates this, adding only the empty-query default, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("list the tokenized stocks this server covers") and enumerates the return fields: symbol, issuer, redeemability, mint. An agent can distinguish it from compare_issuers and quote_sizes without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly conveys the two usage modes: filter by ticker or company name, or leave the query empty for all. It gives concrete context but does not name the sibling tools or state when-not to use this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_sizesA
Read-only

Quote buying one token at several USDC sizes through Jupiter and show how much more each size pays per token than the smallest (slippage). No API key needed. The mint must come from list_tokens.

NameRequiredDescriptionDefault
mintYes
sizesNoUp to 5 USDC amounts, default 1000, 10000, 50000

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds meaningful behavioral context: it calls Jupiter, requires no API key, and requires the mint to come from list_tokens. It does not detail rate limits or exact response fields, but it adds value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences, front-loaded with the core action and output concept. The auth note and mint-source prerequisite are brief and each earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description explains the key return concept — how much more each size pays per token than the smallest, i.e. slippage. It also covers auth and input prerequisites, though it does not specify exact response fields or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, and the description compensates for the undocumented mint parameter by explicitly stating it must come from list_tokens. It also contextualizes sizes as USDC amounts used for slippage comparison, while the schema itself supplies the limit and defaults for sizes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — quoting token purchases at several USDC sizes through Jupiter — and clarifies the output concept: per-token payout differences versus the smallest size (slippage). Referencing list_tokens as the source of the mint also helps distinguish this tool from the sibling token-listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful prerequisites — no API key needed and the mint must come from list_tokens — which implies when the tool is usable. However, it does not explicitly say when to use this versus compare_issuers, nor does it describe exclusions or alternative tools for related comparison tasks.

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. 3 tool updatesv0.2.1
    • First observedcompare_issuers
    • First observedlist_tokens
    • First observedquote_sizes

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation4/5

Each tool targets a distinct axis: listing coverage, comparing issuers for one stock, and comparing buy sizes for one mint. The two quoting tools (compare_issuers vs quote_sizes) could be momentarily confused since both return USDC buy quotes, but the descriptions clearly separate issuer-comparison from size/slippage comparison.

Naming Consistency5/5

All three tools follow a clean verb_noun snake_case pattern: list_tokens, compare_issuers, quote_sizes. The convention is uniform and immediately readable.

Tool Count4/5

Three tools is on the lean side, but the domain (read-only tokenized-stock quoting) is narrow and each tool covers a genuinely different question. Nothing is redundant, though a single general-purpose quote tool would round it out.

Completeness4/5

The surface covers discovery (list_tokens with issuer/mint metadata), cross-issuer price comparison, and size-based slippage — the core quoting workflows for this domain. Minor gaps remain: no direct single-size quote endpoint (you must go through quote_sizes' relative output) and no sell-side or historical pricing.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to verify Robinhood Stock Token prices against real market prices before trading, providing a fair-price verdict based on onchain and reference data.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only Solana wallet intelligence for evidence-first copy-trading research, enabling exact wallet activity, parsed swaps, transaction evidence, current positions, token snapshots, source-vs-copy comparisons, watchlist scans, and partial Odin-rule classification.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to research and trade tokenized pre-IPO stocks on Solana, including premium radar, PRE8 index, creation/redemption flows, split-aware Jupiter quotes, and basket building.
    MIT