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 位址與逾時預算。需要能連上該 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 分