Cryptocapi

io.github.Jegoba90由 GitHub 账号 Jegoba90 发布v1.0.3更新于 Nov 7, 2026

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

已验证STDIO仅桌面金融数据与分析

概览

AI 生成的概览

加密市场分析 MCP 服务器,让助手获得带哈希封印的确定性比特币、以太坊分析、交易对信号与市场排名。

可以做什么
  • 用 Radar 引擎分析单个资产,可选 pulse 视图或带审计轨迹与协议哈希的 alpha 深度视图
  • 用 Quant Plus 引擎对同一资产给出可复现、带封印的分析
  • 一次调用批量获取多个资产的量化信号
  • 获取单个交易对的量化信号
  • 扫描市场并按指定策略返回排名靠前的资产
适用场景
适合希望助手用确定性引擎算出的数字而非模型编造内容来回答加密行情分析,并能用哈希核对结果的场景。公开演示密钥即可先试用比特币和以太坊分析,再决定是否购买。
运行要求
以 stdio 方式在本机运行,通常通过 npx 启动 npm 包,因此需要 Node.js。无需账号:不配置密钥时包会自动使用公开演示密钥,仅限比特币和以太坊。CRYPTOCAPI_API_KEY 可解锁其余资产范围与付费引擎;可选变量 CRYPTOCAPI_API_BASE 和 CRYPTOCAPI_TIMEOUT_MS 用于调整接口地址与超时预算。需要能访问该 API 的网络。
安装前请注意
演示密钥对分析类工具只覆盖比特币和以太坊;信号与市场扫描工具完全关闭,任何交易对或策略都会报错。完整访问需按引擎分别购买通行证或使用 14 天试用密钥,涉及付费。封印只证明计算可复现且非模型生成,并不证明分析正确,且目前只是校验和而非密码学签名。设置 CRYPTOCAPI_TIMEOUT_MS 会替换各工具的超时预算,可能截断耗时较长的调用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Cryptocapi,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 dbaeccd

工具

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.

输入参数viewenginecoin_id必填

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").

输入参数symbol必填

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.

输入参数symbols必填

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.

输入参数limitstrategy

版本历史

6
  1. v1.0.3最新Nov 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

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分