关于 CoinStats
CoinStats 是面向需要加密货币市场、投资组合、钱包、交易所和新闻数据的 Agent 的托管 MCP 服务。托管服务通过浏览器 OAuth 授权访问,无需管理 API 密钥。
主要功能
- 01读取币种价格和市场数据
- 02查看投资组合表现与盈亏
- 03查询钱包余额和交易
- 04读取交易所持仓及交易历史
- 05比较交易所价格并获取加密新闻
适用场景
- 01查看币种当前价格和市场图表
- 02检查指定时间段的投资组合表现
- 03查看多个区块链上的钱包活动
- 04跟踪交易所持仓或查找加密新闻
MCP 相关
通过采用 OAuth 2.1 授权的托管 HTTPS 服务,向 MCP 客户端提供 CoinStats API 能力。另有面向 API 密钥集成的开发者模式 stdio 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
30收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 按名称搜索币种 |
| page | number | 否 | 页码 |
| limit | number | 否 | 每页结果数 |
| currency | string | 否 | 价格数据所用的货币 |
| symbol | string | 否 | 按符号获取币种 |
| blockchains | string | 否 | 区块链筛选条件,以逗号分隔(例如:ethereum,solana) |
| includeRiskScore | string | 否 | 是否包含风险评分:true 或 false。默认值:false |
| categories | string | 否 | 类别筛选条件,以逗号分隔(例如:memecoins,sports) |
| sortBy | string | 否 | 排序字段 |
| sortDir | enum | 否 | 排序方向asc | desc |
| marketCap-greaterThan | number | 否 | 市值大于 |
| marketCap-equals | number | 否 | 市值等于 |
| marketCap-lessThan | number | 否 | 市值小于 |
| fullyDilutedValuation-greaterThan | number | 否 | 完全稀释估值大于 |
| fullyDilutedValuation-equals | number | 否 | 完全稀释估值等于 |
| fullyDilutedValuation-lessThan | number | 否 | 完全稀释估值小于 |
| volume-greaterThan | number | 否 | 交易量大于 |
| volume-equals | number | 否 | 交易量等于 |
| volume-lessThan | number | 否 | 交易量小于 |
| priceChange1h-greaterThan | number | 否 | 1 小时价格变化大于 |
| priceChange1h-equals | number | 否 | 1 小时价格变化等于 |
| priceChange1h-lessThan | number | 否 | 1 小时价格变动小于 |
| priceChange1d-greaterThan | number | 否 | 1 天价格变动大于 |
| priceChange1d-equals | number | 否 | 1 天价格变动等于 |
| priceChange1d-lessThan | number | 否 | 1 天价格变动小于 |
| priceChange7d-greaterThan | number | 否 | 7 天价格变动大于 |
| priceChange7d-equals | number | 否 | 7 天价格变动等于 |
| priceChange7d-lessThan | number | 否 | 7 天价格变动小于 |
| availableSupply-greaterThan | number | 否 | 可用供应量大于 |
| availableSupply-equals | number | 否 | 可用供应量等于 |
| availableSupply-lessThan | number | 否 | 可用供应量小于 |
| totalSupply-greaterThan | number | 否 | 总供应量大于 |
| totalSupply-equals | number | 否 | 总供应量等于 |
| totalSupply-lessThan | number | 否 | 总供应量小于 |
| rank-greaterThan | number | 否 | 排名大于 |
| rank-equals | number | 否 | 排名等于 |
| rank-lessThan | number | 否 | 排名小于 |
| price-greaterThan | number | 否 | 价格大于 |
| price-equals | number | 否 | 价格等于 |
| price-lessThan | number | 否 | 价格小于 |
| riskScore-greaterThan | number | 否 | 风险评分大于(仅当 includeRiskScore=true 时) |
| riskScore-equals | number | 否 | 风险评分等于(仅当 includeRiskScore=true 时) |
| riskScore-lessThan | number | 否 | 风险评分小于(仅当 includeRiskScore=true 时) |
详细介绍
CoinStats MCP 服务
面向 CoinStats API 的托管式 Model Context Protocol 服务。让 AI Agent(Claude、Cursor、Codex、ChatGPT——任何支持 MCP 的工具)通过单个受 OAuth 保护的 HTTPS URL,读取和操作 CoinStats 应用使用的同一份加密货币数据。
无需复制 API 密钥,也无需管理环境变量:每位用户都可以在浏览器中授权 Agent 访问自己的 CoinStats 账户,之后 Agent 会获得该用户专属的令牌。
服务 URL
https://mcp.coinstats.app/mcp
安装
Claude.ai / Claude Desktop
进入“设置” → 连接器 → 添加自定义连接器。粘贴服务 URL,然后点击添加:
https://mcp.coinstats.app/mcp
浏览器窗口会打开 coinstats.app/openapi/consent。登录(或确认现有会话),查看请求的访问权限,然后点击批准。
Cursor
也可以手动将其添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"coinstats": {
"url": "https://mcp.coinstats.app/mcp"
}
}
}
重启 Cursor;首次调用时,会打开浏览器窗口以完成 OAuth 流程。
Claude Code
claude mcp add coinstats --transport http https://mcp.coinstats.app/mcp
Claude Code 会打开浏览器进行授权。使用以下命令验证:
claude mcp list
Codex
codex mcp add 只会注册 URL;不会打开浏览器。请另外运行 codex mcp login:
codex mcp add coinstats --url https://mcp.coinstats.app/mcp
codex mcp login coinstats
登录后,codex mcp list 应显示 coinstats 的 Auth: OAuth。
其他 MCP 客户端
任何支持通过 OAuth 2.1 授权使用 Streamable HTTP 传输方式的客户端都可以使用。将其指向 https://mcp.coinstats.app/mcp 即可——本服务支持动态客户端注册(RFC 7591),因此无需预先共享 client_id。
你可以做什么
授权后,你的 Agent 可以:
- 查询 100,000 多种代币的实时价格、图表和市场数据
- 读取 CoinStats 投资组合中的代币、盈亏以及随时间变化的表现
- 查询 120 多个区块链上的钱包余额和交易记录
- 读取已连接交易所中的未平仓永续合约和期货头寸,包括 Hyperliquid,并查看可用的杠杆、盈亏和资金费率
- 使用
get-perpetual-trades读取已同步的永续合约交易历史记录,包括可用的价格、已实现盈亏和手续费。支持portfolioId和limit/skip分页;数据覆盖范围取决于连接器和上次同步时间。 - 按预设或自定义日历范围,获取经现金流调整的钱包、交易所和投资组合历史盈亏
- 比较 200 多家交易所的行情价格
- 获取加密货币新闻(最新、热门,以及按来源或主题筛选)
完整工具目录:https://coinstats.app/api-docs/mcp/tools。
身份验证
发现 + OAuth 流程遵循标准 MCP / RFC 模式:
| 端点 | 规范 | 用途 |
|---|---|---|
GET /.well-known/oauth-protected-resource | RFC 9728 | 指向授权服务器(https://api.coin-stats.com) |
GET /.well-known/oauth-authorization-server | RFC 8414 | AS 元数据(也镜像到 MCP 主机上,以便旧版客户端无需经过间接跳转即可找到它) |
POST /v1/oauth/register(在 AS 上) | RFC 7591 | 动态客户端注册 |
GET /v1/oauth/authorize → 同意界面 | OAuth 2.1 §4.1 | 用户批准访问 |
POST /v1/oauth/token(在 AS 上) | OAuth 2.1 §4.1 | PKCE 代码交换 |
POST /v1/oauth/revoke(在 AS 上) | RFC 7009 | 按客户端断开连接 |
令牌传输方式:Authorization: Bearer <token>。目前只有一个 coinstats scope;细粒度 scope 已列入路线图。
自托管 / stdio 备用方案(开发者模式)
如果你想自行运行 MCP 服务(不使用按用户区分的 OAuth,只需开发者 API 密钥),旧版 stdio 入口已发布到 npm:
npx @coinstats/coinstats-mcp
在环境中设置 COINSTATS_API_KEY。按以下方式接入客户端:
{
"mcpServers": {
"coinstats": {
"command": "npx",
"args": ["-y", "@coinstats/coinstats-mcp"],
"env": { "COINSTATS_API_KEY": "<YOUR_API_KEY>" }
}
}
}
或通过 Docker:
{
"mcpServers": {
"coinstats": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "COINSTATS_API_KEY", "coinstats/coinstats-mcp"],
"env": { "COINSTATS_API_KEY": "<YOUR_API_KEY>" }
}
}
}
对于没有人点击“批准”的无头 / 无人值守集成,这是合适的选择。请从 CoinStats API Dashboard 获取密钥。
架构
托管服务是一个无状态的 Cloudflare Worker(约 225 KiB / gzip 压缩后约 41 KiB),它:
- 提供 RFC 9728 + RFC 8414 发现端点。
- 使用
Authorization: Bearer …令牌限制对POST /mcp的访问。 - 无需会话状态即可分发 MCP JSON-RPC(
initialize/tools/list/tools/call/ping)。 - 将每次工具调用转发到
https://openapiv1.coinstats.app,并携带相同的 bearer。
源文件:src/worker.ts。配置:wrangler.jsonc。
本地开发
仓库提供两个入口:
src/worker.ts— Cloudflare Worker。使用wrangler dev运行(默认端口为 8787)。src/index.ts— stdio 服务。构建后使用node dist/index.js运行,或通过已发布的 npm 包运行。
# Build the stdio CLI
npm run build
# Run the Worker locally (requires `wrangler login` first)
npm run dev
# Deploy the Worker manually — needs CLOUDFLARE_ACCOUNT_ID exported in the
# env (the account ID isn't committed to wrangler.jsonc). Normally you don't
# need this: merging to main deploys automatically (see "Deployment" below).
export CLOUDFLARE_ACCOUNT_ID=<your-cf-account-id>
npm run deploy
# Tail production logs
npm run tail
在本地开发 Worker 时,可以覆盖环境变量:
wrangler dev --var OAUTH_ISSUER:http://localhost:1337 \
--var COINSTATS_API_BASE_URL:http://localhost:9999
部署
GitHub Actions(.github/workflows/ci.yml)会在每个拉取请求中构建、测试并试运行打包 Worker。每次推送到 main 时,都会运行相同的检查,然后部署到 mcp.coinstats.app 并探测 /healthz。部署作业使用 production 环境,该环境仅限受保护分支使用,并从中读取两个密钥:CLOUDFLARE_API_TOKEN(Workers 部署权限)和 CLOUDFLARE_ACCOUNT_ID。来自 fork 的拉取请求会运行检查,但无法访问这两个密钥中的任何一个。若要在没有新提交的情况下重新部署,请在 main 上手动运行工作流;部署作业只会部署 main 当前的最新提交,因此重新运行旧的运行记录会失败,而不会回滚。
部署后的健康检查失败时不会自动回滚。若要恢复到先前版本,请运行 npx wrangler rollback(或在 Cloudflare 控制面板的 Workers & Pages → coinstats-mcp → Deployments 下选择一个版本),然后在 main 上提交修复。
OpenAI 插件域名验证
OpenAI 插件提交门户会通过获取 https://mcp.coinstats.app/.well-known/openai-apps-challenge 来验证域名所有权,并要求以纯文本形式返回它签发的令牌。Worker 会在该路径提供 OPENAI_APPS_CHALLENGE 环境变量;如果未设置该变量,则返回 404。请在每次部署时单独设置,不要写入已提交的配置:
wrangler secret put OPENAI_APPS_CHALLENGE
相关内容
- CoinStats API 文档 — 完整的 REST 接口、MCP 设置指南、工具目录
- API 控制面板 — 供 stdio 模式用户管理其开发者 API 密钥
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。