CCXT
Official CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets
Decide by policy, gate behind a human, verify by read-back, record a hash-chained ledger.
选择你使用的 AI 应用,然后复制设置。
通过 3/3 项检查 · 在你的电脑上运行
第一步:你用哪个 AI?
选择你用的应用,步骤会显示在下方。
可连接 Claude,但需要先准备
需要 Attest 的密钥(在开发者网站创建) · 需要先在电脑上安装 Python (uv)(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
SettingsDeveloperEdit Config
正在检查命令 · 通过后才会显示复制按钮
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
用 Attest 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude 说正在使用 Attest,或回答中出现 Attest 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
ChatGPT 暂时无法连接 Attest
Attest 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器
A · 使用能连接 Attest 的应用
B · 会计、财务与税务 类中能连接 ChatGPT 的其他服务器
从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的
可连接 Claude Code,但需要先准备
需要 Attest 的密钥(在开发者网站创建) · 需要先在电脑上安装 Python (uv)(只需一次)
Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell
正在检查命令 · 通过后才会显示复制按钮
按 Enter 前,把“your-value”改成你的密钥
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
应能看到 Attest 在列表中并显示已连接
用 Attest 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude Code 说正在使用 Attest,或回答中出现 Attest 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Cursor,但需要先准备
需要 Attest 的密钥(在开发者网站创建) · 需要先在电脑上安装 Python (uv)(只需一次)
正在检查命令 · 通过后才会显示复制按钮
在 Attest 的设置中,ATTEST_POLICY, ATTEST_LEDGER, ATTEST_AUTO_APPROVE, ATTEST_CONFIRM_TIMEOUT, GMAIL_TOKEN, GOOGLE_TOKEN, SLACK_BOT_TOKEN, HUBSPOT_TOKEN, NOTION_TOKEN, LINEAR_API_KEY, GRAPH_TOKEN 还是空的,填入你的密钥并保存
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
用 Attest 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Cursor 说正在使用 Attest,或回答中出现 Attest 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同
可连接 VS Code,但需要先准备
需要 Attest 的密钥(在开发者网站创建) · 需要先在电脑上安装 Python (uv)(只需一次)
正在检查命令 · 通过后才会显示复制按钮
在 Attest 的设置中,ATTEST_POLICY, ATTEST_LEDGER, ATTEST_AUTO_APPROVE, ATTEST_CONFIRM_TIMEOUT, GMAIL_TOKEN, GOOGLE_TOKEN, SLACK_BOT_TOKEN, HUBSPOT_TOKEN, NOTION_TOKEN, LINEAR_API_KEY, GRAPH_TOKEN 还是空的,填入你的密钥并保存
只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人
用 Attest 告诉我你能帮我做什么,然后做一件给我看✓ 如果 VS Code 说正在使用 Attest,或回答中出现 Attest 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同
Claude Code
正在检查命令 · 通过后才会显示复制按钮
Claude Desktop (claude_desktop_config.json)
正在检查命令 · 通过后才会显示复制按钮
Cursor (~/.cursor/mcp.json)
正在检查命令 · 通过后才会显示复制按钮
VS Code (mcp.json)
正在检查命令 · 通过后才会显示复制按钮
ATTEST_POLICY envATTEST_LEDGER envATTEST_AUTO_APPROVE envATTEST_CONFIRM_TIMEOUT envGMAIL_TOKEN 机密 envGOOGLE_TOKEN 机密 envSLACK_BOT_TOKEN 机密 envHUBSPOT_TOKEN 机密 envNOTION_TOKEN 机密 envLINEAR_API_KEY 机密 envGRAPH_TOKEN 机密 env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
在你的电脑上运行,适用于
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月13日
注册名称已通过 GitHub 账户 dev-prathap 验证,该账户拥有此仓库
代码最后更新于2个月前
使用 MIT
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
提问、分享技巧或报告无法使用。按“有帮助”数量排序。
还没有评价
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:GMAIL_TOKEN, GOOGLE_TOKEN, SLACK_BOT_TOKEN, HUBSPOT_TOKEN, NOTION_TOKEN, LINEAR_API_KEY, GRAPH_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于2个月前,最新版本(0.1.0)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:CCXT, Finance Toolkit, AKQuant
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Official CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Write and backtest trading strategies with AKQuant: API lookup, strategy checks, backtest runs
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Decide → Gate → Verify → Attest. Your agent sends the email, updates the CRM, moves the money. Attest decides whether it may, gates it behind a human when it matters, reads back from the system of record to check it actually happened, and records tamper-evident evidence either way.
Attest never executes your action. Your tool does. That is why it works with any app and any framework on day one.
Two identical CRM writes, both reported success by the tool, both approved by a human:
$ attest ledger
#2 2026-09-19 10:16:46 someweirdcrm.create → leads ask approved unverified a09e7641db12 #1 2026-09-19 10:16:46 someweirdcrm.create → leads ask approved verified 77a6d99a60f6
The second one read back clean. The first did not, and the ledger says which field disagreed:
{ "level": "unverified", "matched": false,
"evidence": { "compared": 4, "exists": true, "failed": ["stage"], "fields": { "stage": { "want": "qualified", "got": "new", "ok": false } } } }
A trace would have shown two green steps. That gap is the entire product.
pip install attestlayer # Python
npm install attestlayer # TypeScript — byte-identical ledger format
import attest
@attest.action(system="gmail", verb="send", target="to") def send_email(to, subject, body): ...
import { Attest } from "attestlayer";
const at = new Attest({ agent: "followup-agent@v3", readers: { gmail: process.env.GMAIL_TOKEN! } }); const sendEmail = at.wrap({ system: "gmail", verb: "send", target: "to" }, async ({ to, subject, body }) => gmail.send({ to, subject, body }));
That is the whole change. The first external send now pauses for a human, and the ledger row says acknowledged, or verified once Attest can read back with the agent's own credentials (Attest(readers={"gmail": service})). Nothing else in your code moves.
Every row states exactly how much was checked. A check that could not run is never dressed up as a pass.
| level | what it means |
|---|---|
verified | read back from the system of record, and the fields matched |
verified-custom | your own check ran and passed |
acknowledged | the action was accepted, but no read-back could run here |
attested-only | recorded with no verifier available for this action |
unverified | a check ran and contradicted the claim |
Only a contradiction earns unverified. Missing credentials, a read-only scope or an unsupported verb degrade to acknowledged, because "we could not check" and "it did not happen" are different facts.
| surface | how |
|---|---|
| Decorator / wrapper | @attest.action(...) · at.wrap(...) |
| LangGraph | tool node wrapper, gate as a graph interrupt |
| OpenAI Agents · Claude Agent SDK · CrewAI · DeerFlow | adapters in attest/ |
| MCP | zero-code proxy in front of any server, plus a verify server |
| HTTP gateway | point outbound traffic at it, no SDK at all |
| API only | POST the descriptor yourself |
Human confirmation lands where the team already works: Slack, the web inbox, a webhook, a LangGraph interrupt, or the console. Approvers can edit the parameters before approving, and the edit is recorded.
Hash-chained ledger, SQLite locally and Postgres per organisation in the cloud. Signed checkpoints let you prune old rows and still verify the chain. Optional Ed25519 signing, and external anchoring to a file, a git repo or an HTTP endpoint. Exports: JSON, CSV, the IETF draft-sharif-agent-audit-trail JSONL format, and an EU AI Act event-log pack.
Overhead is roughly a sixth of a millisecond per action, measured in benchmarks/ (published numbers).
python examples/unknown_app.py # an app Attest has never seen, L1 → L3
ATTEST_AUTO_APPROVE=1 python examples/langgraph_agent.py cd deploy && cp .env.example .env && docker compose up # cloud API :8400 + dashboard :3400
The SDK is MIT and works standalone with a local ledger. Attest Cloud adds the shared ledger, the confirm inbox, versioned org policy, agent keys and compliance exports. Your vendor tokens never reach it: read-back happens in your process with your own credentials, and only hashes and previews are sent. Self-host it from deploy/, or read DEPLOY.md.
| where | how |
|---|---|
| PyPI | pip install attestlayer → attest, attest-mcp, attest-mcp-server, attest-gateway |
| npm | npm install attestlayer |
| MCP Registry | io.github.dev-prathap/attest (verify server) · io.github.dev-prathap/attest-proxy (zero-code proxy) |
| Smithery | attestlayer/attest |
| Claude Desktop | attest- .mcpb on the latest release |
| Docker | ghcr.io/dev-prathap/attest-api · ghcr.io/dev-prathap/attest-dashboard |
Full docs at [dev-prathap.github.io/ATTEST](https://dev-prathap.github.io/ATTEST/) — quickstart · verification levels · policy · read-back recipes · ledger & exports · hardening
| path | what |
|---|---|
| attest/ | Python SDK — descriptor, policy, ledger, verification ladder, gates, adapters, MCP proxy, CLI |
| packages/attest-ts/ | TypeScript SDK — same canonical hashes, fixture-tested against Python |
| cloud/ | Attest Cloud — FastAPI + Postgres: orgs, keys, policy versions, ledger, confirm inbox, exports |
| dashboard/ | Next.js dashboard — ledger drill-down, confirm inbox, policy and keys |
| examples/ | unknown app, LangGraph, OpenAI Agents, MCP config, API-only, cloud |
| deploy/ | Dockerfiles and compose |
| benchmarks/ | what the layer costs per action |
| docs/ | documentation site source, plus design notes |
pytest -q && (cd cloud && pytest -q) # 355 + 37 offline tests
pytest tests/live # 8 live suites; need real credentials, skipped without them
Read-back recipes are the easiest place to start: each one teaches Attest how to confirm a write in one more app, and needs nothing but that app's read API. See CONTRIBUTING.md, and SECURITY.md for reporting a vulnerability.
The thinking behind the product, kept in the open: vision · product · universal adapter · architecture · market · build plan · decisions · phase plan
Attest's core mechanisms are extracted from two working codebases: DO (policy engine, read-back verification pairs, evidence ledger) and DeerFlow (tool receipts, verification patterns, MCP and chat-channel adapters), which run against real Gmail, Slack, HubSpot, Notion, Linear and Google Workspace. Attest ships its own live suites for those systems in tests/live/; they need real credentials and are skipped without them.