Cryptocapi

io.github.Jegoba90Published by GitHub account Jegoba90v1.0.3Updated Nov 7, 2026

Crypto market analysis with a verifiable seal: every engine signs its analysis with SHA-256.

VerifiedSTDIODesktop onlyFinanceData & Analytics

Overview

AI-generated overview

Crypto market analysis MCP server that gives an assistant signed, deterministic Bitcoin and Ethereum insights, trading-pair signals and market rankings.

What you can do
  • Request an asset analysis from the Radar engine, with a pulse view or a deeper alpha view carrying an audit trail and protocol hash
  • Run the same asset through the Quant Plus engine for a reproducible, sealed analysis
  • Fetch quantitative signals for several assets in one batch call
  • Get a quantitative signal for a single trading pair
  • Scan the market and return assets ranked by a chosen strategy
When to use it
Useful when you want an assistant to answer crypto analysis questions with numbers produced by a deterministic engine rather than generated text, and to check the result against a hash. The public demo key is enough to try Bitcoin and Ethereum analysis before buying anything.
Requirements
Runs locally over stdio, typically started with npx from the npm package, so Node.js is needed. No account is required: without a key the package falls back to a public demo key limited to Bitcoin and Ethereum. A CRYPTOCAPI_API_KEY opens the rest of the asset universe and the paid engines; optional CRYPTOCAPI_API_BASE and CRYPTOCAPI_TIMEOUT_MS variables adjust the endpoint and time budget. Network access to the API is required.
Before you install
The demo key only reaches Bitcoin and Ethereum for the insight and batch tools; the signal and market-scan tools stay closed and return an error for any pair or strategy. Full access needs a paid pass per engine, or a 14-day trial key, so expect a purchase. The seal proves the computation is reproducible and not model-written, but not that the analysis is correct, and it is a checksum without a cryptographic signature. Setting CRYPTOCAPI_TIMEOUT_MS replaces the per-tool budgets and can cut…

Installation

In SourceWeft

  1. Open Cryptocapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[CryptoCapi · MCP server]

Crypto market analysis with a verifiable seal, as native tools for any agent that speaks MCP.
Every engine analysis ships with its SHA-256 seal, so you can check it yourself: you don't have to trust the model.

[npm] [MCP Registry] [Listed on mcpservers.org] [CI] [Contract with the live API] [Node] [MIT license]

[CryptoCapi MCP server on Glama]

Get started  ·  Tools  ·  Demo  ·  Verify the seal  ·  Configuration  ·  cryptocapi.com


Paste this and it works

No account, no sign-up, no key. It goes in your client's MCP configuration:

json
{  "mcpServers": {    "cryptocapi": {      "command": "npx",      "args": ["-y", "@cryptocapi/mcp"]    }  }}

That block is the format for Cursor (.cursor/mcp.json in the project, or ~/.cursor/mcp.json for all of them), Windsurf and Claude Desktop. Other clients use a different shape:

VS Code (GitHub Copilot). The file is .vscode/mcp.json, the key is servers rather than mcpServers, and each server carries "type": "stdio".

json
{  "servers": {    "cryptocapi": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@cryptocapi/mcp"]    }  }}

Claude Code and Codex. One command, no file to edit. In Claude Code, without --scope user it only applies to the project where you ran it.

bash
claude mcp add --transport stdio cryptocapi -- npx -y @cryptocapi/mcpcodex mcp add cryptocapi -- npx -y @cryptocapi/mcp

ChatGPT, no. Its connectors only reach remote MCP servers, and this one runs locally, over stdio.

With that you can already ask your agent about Bitcoin or Ethereum and get the analysis signed by the two engines that sign it. How far the demo goes is covered below.

Using it with Claude for trading analysis? The guide Trading bot with Claude, without made-up prices (in Spanish) has example prompts and the rules that keep the model from inventing numbers.

Four tools, three engines and Market Scan

ToolEngineWhat it returnsWhat it requires
get_insightRadarAnalysis of an asset. The alpha view carries the sealpulse without a pass on a free key · alpha requires the Radar Alpha pass
get_insight with engine="quant_plus"Quant PlusThe same asset signed by the deterministic engine, with a reproducible sealQuant Plus pass
batch_signalsQuant PlusSignals for several assets in one callQuant Plus pass
get_signalQuant ProQuantitative signal for a trading pairQuant Pro pass
scan_marketMarket Scan (ranking layer)Market ranking by strategyMarket Scan pass

There are five rows for four tools because get_insight is the door to two engines, and each one asks for its own pass. Having Radar Alpha does not open Quant Plus through that same tool: change the engine parameter and the required pass changes too.

Market Scan is not a fourth engine. It computes no signals of its own: it ranks the market on top of Quant Plus signals. It is sold separately because it is a different product.

What about get_market_summary, get_prices and get_macro?

Until 2026-08-30 there were three more tools (get_market_summary, get_prices, get_macro) that returned third-party data: market cap and fear and greed, CoinGecko prices and FRED macro series. They were retired because CryptoCapi is not an aggregator: its engines sign derived intelligence, and third-party data is an internal input. An agent asking "how is the market doing?" would grab the summary and leave with third-party data without touching an engine. Those endpoints still exist in the REST API; what was retired is the agent seeing them as tools.

Each engine is bought separately, so having one does not unlock the others. The descriptions name the engine that is needed, not a generic "PRO", so the agent doesn't waste attempts on tools its key can't open. When it tries anyway, the error tells it which pass is missing and which one it has, instead of a bare 403.

Watch out for a format detail that trips agents up: get_signal takes a trading pair (BTCUSDT) and batch_signals takes coin identifiers (bitcoin). Same engine, two formats, and each field spells it out in its schema.

Try it without signing up

The default configuration uses the public demo key. No account needed.

json
{  "mcpServers": {    "cryptocapi": {      "command": "npx",      "args": ["-y", "@cryptocapi/mcp"],      "env": { "CRYPTOCAPI_API_KEY": "demo_btc_eth_public" }    }  }}

The env is optional: with no variable at all, the package falls back to the public demo key on its own, so command and args are enough.

What the demo key reaches, measured on 2026-08-30 against the published version:

EngineToolWith the demo key
Radarget_insight✅ bitcoin and ethereum only, always in the alpha view with a seal, even if you ask for pulse
Quant Plusget_insight?engine=quant_plus✅ bitcoin and ethereum only, reproducible seal with input_vector
Quant Plusbatch_signals✅ bitcoin and ethereum only, same reach as get_insight
Quant Proget_signal❌ closed, for any pair
Market Scanscan_market❌ closed, for any strategy

The closed ones don't fail because of the coin, they always fail: get_signal with BTCUSDT, Bitcoin's pair, also returns 403. The bitcoin-and-ethereum restriction applies to get_insight and batch_signals, nothing else.

So in a first session, get_insight and batch_signals answer, and they show the product: the signed analysis, on Bitcoin, from the two engines that sign it.

To try all three engines and Market Scan with no coin limit you need the free 14-day trial at https://www.cryptocapi.com. That key opens everything while it lasts.

What sets it apart

The engines' response carries an audit_trail that includes a protocol_hash: a seal of the deterministic computation that produced the analysis. This package forwards those values exactly as they came from the API, without re-serializing them, because reformatting a single number would be enough for the hash to stop verifying.

You don't have to take our word for it: ask your agent for the analysis with get_insight(coin_id="bitcoin", view="alpha") and compare the protocol_hash in that output with the one from the same query made directly against the API.

bash
curl -H "x-api-key: demo_btc_eth_public" \  "https://api.cryptocapi.com/v1/market/insights/bitcoin?view=alpha"

They must be identical. If they ever aren't, it's a bug in this package and deserves an issue.

The limit, stated as well: the seal proves the computation is reproducible and that no language model wrote it. It does not prove the analysis is right, and today it is a checksum without a cryptographic signature, so it attests integrity, not origin.

And the package can be verified too

The seal covers the data. That the tarball you download is the one built from this code is covered by something else: it is published from CI with npm provenance, so each version is tied to the commit and the workflow that built it.

bash
npm audit signatures

The package's npm page also links to the exact commit. It is the same principle as the protocol_hash, applied to the supply chain instead of the data: you don't have to trust us, you can check.

Configuration

VariableWhat forDefault
CRYPTOCAPI_API_KEYYour API keydemo_btc_eth_public
CRYPTOCAPI_API_BASEAPI base URL, for developmenthttps://api.cryptocapi.com/v1
CRYPTOCAPI_TIMEOUT_MSTime budget per request, in ms. See belowdepends on the tool

The variables go in the env of the configuration block, or with --env on the command: in Claude Code, before --transport (if the server name lands right after --env, it is taken as another variable); in Codex, after the name.

There isn't a single time budget. Each tool asks for its own, because they don't cost the same: 20 s for one engine on one asset (get_insight, get_signal) and 45 s for the ones that go through several (batch_signals, scan_market). Cutting a market sweep with the budget of a single read gives a false timeout, and the agent concludes the API is down when it was actually working.

CRYPTOCAPI_TIMEOUT_MS replaces those budgets, it does not add to them: the number you set applies to all four tools. Setting it to 30000 to give scan_market more room actually cuts it, from 45 s to 30. If you change it, make it higher than the highest one.

When a tool times out, the error states the budget that actually applied, so that is the number to beat.

Get a key with a 14-day trial: cryptocapi.com

Development

bash
npm installnpm run check      # types + tests + dependency auditnpm run contrato   # checks against the live API that the copied contract still holds

The tests run on Node's native runner and have no test dependency and never touch the network: the API is faked with node:http. They test the package, not the service, which is what makes them fast and stable.

That runner loads TypeScript without transpiling, so developing requires Node 22.18 or later, even though the published package runs on 20: that is what engines declares, and what CI checks by starting the built artifact on 20, 22 and 24. It is a development requirement, not a usage one.

That leaves out, on purpose, one half: whether the published package behaves well against the live API and inside an agent. That is what PRUEBAS.md (in Spanish) is for: fourteen manual checks run after every release.

npm run contrato covers part of that half with no human in the loop. The tests stay off the network on purpose, and that isolation has a blind spot: in September 2026 four bugs were found and three were about what the API really sends versus what the package assumed, invisible to a fake server that only returns what the test wrote. The contract check looks at exactly that, runs once a day and opens an issue if something moved.

What has been found and not fixed yet lives in PENDIENTES.md (in Spanish), with the reason for each item and enough context to pick it up without re-investigating.

Publishing

It is triggered by a tag and publishes from CI with provenance, to npm and to the MCP Registry:

bash
npm version <patch|minor|major>   # also bump the two versions in server.json, and commitgit tag -a vX.Y.Z -m "vX.Y.Z" && git push origin vX.Y.Z

Then create the GitHub Release for that tag: Glama only picks up a new version from a Release, not from the tag. Creating it does not publish again, because release.yml runs on tag pushes only.

The workflow first checks that the tag matches the version in package.json and the two in server.json, because an npm version cannot be reused and that mistake can't be undone. Authentication is OIDC trusted publishing, with no token: it is bound to the name of release.yml, so renaming that file breaks publishing.

Once npm is up, a second job sends server.json to the Registry, also over OIDC. It runs separately so that, if the Registry fails, "Re-run failed jobs" retries only that, without going through npm publish again.

For the server, npm version is the single source of the version: it reads the published package.json to declare its serverInfo.version, and a handshake test fails if the two numbers drift apart. The only hand-written literal is the one in server.json, and if it falls behind, the tag doesn't pass the first check.

Versioning

Since 1.0.0 the package follows semver. The contract is the four tools, their parameters and the shape of their responses:

  • Patch (1.0.x): fixes and text. Tools and their parameters stay the same.
  • Minor (1.x.0): new things that break nothing, like one more tool or optional parameter.
  • Major (2.0.0): removing or renaming a tool, or changing an existing parameter. If it is ever needed, it will be announced first.

Responses are passed through exactly as the API serves them, so a new field can show up in them without a new package version.

License

MIT


cryptocapi.com  ·  npm  ·  Issues

Source: README.md at commit dbaeccd

Tools

4

get_insight

Análisis de un activo

Análisis de un activo con el motor determinista de CryptoCapi. La vista "pulse" no exige pase con una key del plan free. La vista "alpha" trae el análisis profundo con el audit_trail y su protocol_hash, que es el sello del cálculo, y requiere el pase Radar Alpha (o Quant Plus si se pide engine="quant_plus"). Con la key pública de demostración, que es la que se usa si no se configura otra, solo responden bitcoin y ethereum, en cualquier vista, y la respuesta es siempre la alpha: otra moneda da 403 aunque se pida "pulse". Al leer la respuesta: `z_score` mide el MOVIMIENTO del último día cerrado (UTC), no el del día en curso, contra los movimientos pasados, y la posición en Bandas de Bollinger mide el NIVEL de precio contra su rango. Son ejes distintos: precio en el tercio superior con z_score negativo no es una contradicción, es un nivel alto después de un día que cerró con una caída fuerte. No las mezcles en una sola frase. Las stablecoins se leen por la distancia de su último cierre al dólar, no por el z_score. Si la moneda todavía no tiene análisis, la respuesta es `{"status":"success","data":null}`: no es un error ni un fallo de la consulta, es que ningún motor calculó nada para ese activo. Decilo así, «no hay análisis disponible», y no completes el hueco por tu cuenta.

Parametersviewenginecoin_idrequired

get_signal

Señal de Quant Pro

Señal cuantitativa para un par de trading. Requiere el pase Quant Pro: ningún otro motor lo habilita. Ojo con el formato, que no es el mismo que en las otras herramientas: acá va el par ("BTCUSDT"), no el identificador de moneda ("bitcoin").

Parameterssymbolrequired

batch_signals

Señales de Quant Plus en lote

Señales de Quant Plus para varios activos en una sola llamada. Requiere el pase Quant Plus, con una excepción: con la key pública de demostración funciona para bitcoin y ethereum, igual que get_insight. Ojo con el formato: acá van identificadores de moneda ("bitcoin"), no pares de trading, al revés que en get_signal. Solo un universo curado tiene señal, bastante más chico que el conjunto de activos que CryptoCapi sigue: un activo fuera de él vuelve con `available: false`, y eso es la respuesta correcta, no un error.

Parameterssymbolsrequired

scan_market

Ranking de Market Scan

Recorre el mercado y devuelve los activos mejor rankeados según una estrategia. Requiere el pase Market Scan, que se vende aparte de Quant Plus aunque el ranking se arme sobre sus señales. El ranking cubre el universo curado de Quant Plus, bastante más chico que el conjunto de activos que CryptoCapi sigue, así que pedir 50 puede devolver bastante menos. Eso no es un fallo.

Parameterslimitstrategy

Version history

6
  1. v1.0.3LatestNov 6, 2026
  2. v1.0.2Oct 29, 2026
  3. v1.0.0Oct 18, 2026
  4. v0.2.6Oct 6, 2026
  5. v0.2.5Sep 29, 2026
  6. v0.2.3Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts