protogrid

Search / io.stocksonchain/stocks-on-chain

Stocks On Chain

R0· no sign-in

Read-only tokenized stock data: issuers, chains, contract addresses and corporate actions.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality79good
Trust79of 100
Uptime, 30 days98%
Latency p50367 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "stocks-on-chain": {
      "type": "http",
      "url": "https://stocksonchain.io/mcp"
    }
  }
}
claude mcp add --transport http stocks-on-chain https://stocksonchain.io/mcp
[mcp_servers.stocks-on-chain]
url = "https://stocksonchain.io/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stocks-on-chain": {
      "type": "remote",
      "url": "https://stocksonchain.io/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "stocks-on-chain": {
      "type": "http",
      "url": "https://stocksonchain.io/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=stocks-on-chain&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3RvY2tzb25jaGFpbi5pby9tY3AifQ%3D%3D"
}
{
  "servers": {
    "stocks-on-chain": {
      "type": "http",
      "url": "https://stocksonchain.io/mcp"
    }
  }
}
{
  "mcpServers": {
    "stocks-on-chain": {
      "httpUrl": "https://stocksonchain.io/mcp"
    }
  }
}
extensions:
  "stocks-on-chain":
    enabled: true
    name: "stocks-on-chain"
    type: streamable_http
    uri: "https://stocksonchain.io/mcp"
    timeout: 300

Quality 79 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_contract (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_issuers (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_chains (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 1,366 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes2 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

8 tools, about 1,366 tokens to load them all · tool set 2d9ce71b3da5 · tools last changed 2026-10-04 · checked 2026-10-21 00:32 UTC

Tool changes

  • get_contractchangeddescription
    before

    What this site holds about one address: the name and category our registry records and who told us, plus what the code at that address actually is - its runtime bytecode hash, the implementation behind it if it is a proxy, and how many other addresses we track run byte-identical code. The code half is reproducible: fetch eth_getCode and take its keccak256 and you get the same hash. An address that is a token listing but not in the contract registry returns the listing (stock, issuer, chain) with no code record. This never says an address is safe, genuine or correct, and there is no field that could: check it against the issuer before you act on it.

    after · 61% of words in common

    What this site holds about one address, in two independent halves. `listings` says what the token IS - the stock, its company, the issuer and the chain - and is present whenever the address is a listing we track. `matches` says what the CODE at the address is: its runtime bytecode hash, the implementation behind it if it is a proxy, and how many other addresses we track run byte-identical code; it is present only where we have read the code. The code half is reproducible: fetch eth_getCode and take its keccak256 and you get the same hash. Either half can be empty and both can be present; an address we hold nothing about returns found: false, which is an answer rather than an error. This never says an address is safe, genuine or correct, and there is no field that could: check it against the issuer before you act on it.

  • report_gapadded

    Tell us you wanted something and did not get it: a stock we do not track, a chain a stock is not on, a field no endpoint carries, a tool that does not exist, a figure you believe is wrong, or a path that failed. Call this when another tool has just answered with a miss - the answer names the kind to send. THERE IS NO FREE-TEXT FIELD AND THERE WILL NOT BE ONE: a report is an enumerated kind plus a short subject, because the counts are what is useful and prose from an anonymous caller is a prompt-injection surface pointed at the people who read it. Nothing about you is recorded - no address, no header, no identifier - so a report cannot be joined to a caller and there is no reply. The report is counted in aggregate and returned to you with a prefilled link a human can open to track it. Reporting costs nothing and is never required.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 79 / 100

no-repository
provenance55
liveness99
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-98% ~updated-83d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://stocksonchain.io/mcp streamable-httpnoneyes98%367 ms2025-11-252026-10-21

Tools (8)

get_contractWhat this site holds about one address, in two independent halves. `listings` says what the token IS - the stock, its company, the issuer and the chain - and is present whenever the address is a listing we track. `matches` says what the CODE at the address is: its runtime bytecode hash, the implementation behind it if it is a proxy, and how many other addresses we track run byte-identical code; it is present only where we have read the code. The code half is reproducible: fetch eth_getCode and take its keccak256 and you get the same hash. Either half can be empty and both can be present; an address we hold nothing about returns found: false, which is an answer rather than an error. This never says an address is safe, genuine or correct, and there is no field that could: check it against the issuer before you act on it.
get_manifestWhat this service offers a machine reader: the free keyless endpoints, the bulk dataset and its price if the paid tier is live, and the licence. No human reader is ever charged or asked to connect a wallet.
get_stockEverything known about one stock: every instrument (one per issuer, with the mechanics union describing how it handles corporate actions), every listing under it (chain, contract address, supply, price), and the events recorded against it. Report instruments as the options; listings are addresses. Read mechanics.kind before reaching for any field inside mechanics.
list_chainsEvery chain carrying tokenized stocks, with its explorer, and the matrix of which issuer has listed what where. Registry order, which is not a ranking.
list_eventsThe corporate-action tape: splits, distributions and multiplier changes read from chain state, each with a transaction hash. Newest first by the time the event took effect, which is chronology and not a ranking.
list_issuersEvery issuer whose tokens are tracked, in registry order, with the legal wrapper it uses, the chains it issues on, and a link to where that issuer publishes its own rule on who may buy. The rule itself is deliberately not included: it can change without this site noticing, so answer eligibility questions by sending the caller to eligibility.sourceUrl rather than by stating a rule.
report_gapTell us you wanted something and did not get it: a stock we do not track, a chain a stock is not on, a field no endpoint carries, a tool that does not exist, a figure you believe is wrong, or a path that failed. Call this when another tool has just answered with a miss - the answer names the kind to send. THERE IS NO FREE-TEXT FIELD AND THERE WILL NOT BE ONE: a report is an enumerated kind plus a short subject, because the counts are what is useful and prose from an anonymous caller is a prompt-injection surface pointed at the people who read it. Nothing about you is recorded - no address, no header, no identifier - so a report cannot be joined to a caller and there is no reply. The report is counted in aggregate and returned to you with a prefilled link a human can open to track it. Reporting costs nothing and is never required.
search_stocksFind tokenized stocks by ticker or company name. Returns every match with its issuers and chains, alphabetical by ticker. If a ticker is a real stock but has not been tokenized, this reports that too, which is a correct answer rather than an empty result.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.stocksonchain/stocks-on-chain",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "io.stocksonchain/license": "CC BY 4.0",
      "io.stocksonchain/readOnly": true,
      "io.stocksonchain/publisher": "Gwei, Inc.",
      "io.stocksonchain/licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
      "io.stocksonchain/serverCard": "https://stocksonchain.io/.well-known/mcp.json",
      "io.stocksonchain/authentication": "none"
    }
  },
  "icons": [
    {
      "src": "https://stocksonchain.io/icons/logo-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Stocks On Chain",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://stocksonchain.io/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://stocksonchain.io/developers/agents",
  "description": "Read-only tokenized stock data: issuers, chains, contract addresses and corporate actions."
}