内容
# hood-mcp
**面向 [Robinhood Chain](https://docs.robinhood.com/chain/)(链 ID 4663)的模型上下文协议服务器。**
两个服务器,一个软件包:一个 **零配置数据服务器**,任何 MCP 客户端都可以在一行命令中添加,还有一个 **显式选择的交易服务器**,适用于希望进行交易的钱包。构建于 [`hoodchain`](https://nirholas.github.io/robinhood-chain-sdk/) 之上,即链的 TypeScript SDK。
文档:**https://nirholas.github.io/hood-mcp/**
## 为什么
Robinhood Chain 目前有两个其他 MCP 服务器,都是零星、仅有几天历史的、只读的爱好者项目。这是产品化的版本:一个完整的数据表面(股票代币、迷因币、启动、链统计)加上一个受保护的交易表面,具有严格的支出上限和确认门槛 —— 构建符合 three.ws 的标准工具链。
## 60 秒安装
### Claude Code
```bash
claude mcp add hood-mcp -- npx -y hood-mcp
```
### Claude 桌面版
在 `claude_desktop_config.json` 中添加:
```json
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": ["-y", "hood-mcp"]
}
}
}
```
### Cursor
在 `.cursor/mcp.json` 中添加:
```json
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": ["-y", "hood-mcp"]
}
}
}
```
### 任意 stdio MCP 客户端
```bash
npx -y hood-mcp
```
无需 API 密钥,无需钱包,无需配置。它与公共 Robinhood Chain RPC 连接,并立即开始响应工具调用。
## 两个服务器
### 1. `hood-mcp` — 数据服务器(零配置,只读)
默认 stdio;传递 `--http`(或 `HOOD_MCP_TRANSPORT=http`)以获取 `HOOD_MCP_PORT`(默认为 `8730`)上的可流式 HTTP,服务 `POST /mcp` 和 `GET /health`。
| 工具 | 功能 |
|---|---|
| `get_chain_stats` | 最新区块,gas 价格,TVL,网络总数。 |
| `list_stock_tokens` | 95 个股票代币注册表(代码,名称,合约,数据源)。 |
| `get_stock_quote` | Chainlink 价格 + Uniswap DEX 价格 + 溢价/折价 + 股票代码的股价。 |
| `get_portfolio` | 任何地址的乘数修正股票代币投资组合 + USDG 余额。 |
| `get_coin` | 任何代币的价格/数量/流动性/持有者(迷因币或股票代币)。 |
| `list_trending_coins` | 当前链上热门池。 |
| `get_recent_launches` | 最近的 NOXA + The Odyssey 启动,从链上日志扫描。 |
| `watch_launches` | 实时监视新启动,持续时间可达 120 秒。 |
| `search_token` | 按代码,名称或地址查找代币。 |
```bash
HOOD_MCP_NETWORK=mainnet # 或 testnet — 默认 mainnet
ALCHEMY_KEY= # 可选:私有 RPC 而非公共 RPC
```
### 2. `hood-mcp-trading` — 钱包服务器(显式选择)
独立二进制文件,仅限 stdio,除非同时设置 **两者**,否则拒绝启动:
```bash
HOOD_MCP_ENABLE_TRADING=1
ROBINHOOD_CHAIN_PRIVATE_KEY=0x...
```
```json
{
"mcpServers": {
"hood-mcp-trading": {
"command": "npx",
"args": ["-y", "hood-mcp-trading"],
"env": {
"HOOD_MCP_ENABLE_TRADING": "1",
"ROBINHOOD_CHAIN_PRIVATE_KEY": "0xYOUR_KEY"
}
}
}
}
```
| 工具 | 功能 |
|---|---|
| `get_my_portfolio` | 此钱包的 ETH,USDG 和股票代币仓位。只读。 |
| `get_swap_quote` | 无需签名的 Uniswap 兑换报价。只读。 |
| `execute_swap` | **受保护。** 预览 → `confirm: true` → 广播。支出上限。 |
| `transfer_usdg` | **受保护。** 预览 → `confirm: true` → 广播。支出上限。 |
查看 [**安全模型**](docs/safety.html) 以获取完整保护设计。摘要:
1. **终止开关** — 服务器进程本身在没有 `HOOD_MCP_ENABLE_TRADING=1` 的情况下拒绝启动。
2. **资格门槛** — 购买代币化股票代币需要 `HOOD_MCP_ACKNOWLEDGE_ELIGIBILITY=1`(股票代币禁止美国/加拿大/英国/瑞士个人持有 — 见下文)。
3. **支出上限** — 每个变更调用都以美元估值,并与 `HOOD_MCP_MAX_SPEND_USDG`(每次调用)和 `HOOD_MCP_MAX_SESSION_USDG`(每个会话,内存中,重启后重置)进行检查 **在** 任何内容被签名之前。
4. **确认门槛** — `execute_swap` / `transfer_usdg` 的第一次调用始终返回模拟(收款人,金额,代币, 最低接收金额)且不签名。仅第二次调用带有 `confirm: true` 和相同参数时才广播。
```bash
HOOD_MCP_MAX_SPEND_USDG=25 # 默认 25 — 每次调用
HOOD_MCP_MAX_SESSION_USDG=100 # 默认 100 — 累积生命周期
HOOD_MCP_ACKNOWLEDGE_ELIGIBILITY=0 # 仅在有资格持有股票代币时设置为 1
```
**股票代币是代币化的债务证券**(发行人:Robinhood Assets (Jersey) Ltd),可能不被提供,销售或交付给美国人(额外限制:加拿大,英国,瑞士)。限制是合法的/前端强制的,而不是合约级别的 — `execute_swap` 在操作员未明确确认资格时抛出。迷因币是无限制的。
## 环境参考
查看 [.env.example](.env.example) 以获取完整的注解列表。数据服务器不需要任何内容;交易服务器需要上述两个终止开关变量。
## x402 货币化(无缝,不活动)
HTTP 传输有一个文档化的无缝接口(`src/x402-seam.ts`),用于通过兄弟 [`hood402`](../hood402) USDG-on-Robinhood-Chain x402 轨道(当其存在时)对未来计量工具(深度历史,火表)进行付费墙。当前发布的每个工具都保持免费。
## 开发
```bash
npm install
npm run build # tsup → dist/
npm run dev:data # tsx src/data-server.ts (stdio)
npm run dev:trading # tsx src/trading-server.ts (stdio,需要环境变量)
npm test # 密封:模式 + 保护测试(真实网络读取,无钱包资金)
npm run test:live # 现场:针对真实主网 4663 数据的每个数据工具
npm run test:swap # 现场,保护:通过 execute_swap 进行真实测试网交换(需要一个预先充值的 ROBINHOOD_CHAIN_PRIVATE_KEY — 查看测试文件)
```
依赖于 npm 上的 `hoodchain`;对于针对未发布的 SDK 检查的本地开发:`npm i ../robinhood-chain-sdk`。
## 注册提交(所有者操作)
元数据已准备就绪,但未提交 — 发布到注册表是一种单向的,受信任的操作:
- **模型上下文协议注册表** — 此仓库中的 `server.json` 验证对抗 [官方模式](https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json)。一旦 `hood-mcp` 在 npm 上上线,使用 [`mcp-publisher`](https://github.com/modelcontextprotocol/registry) CLI 提交。
- **Smithery** — 他们的当前流程发布一个 *正在运行的* 服务器 URL 或一个 `.mcpb` 包(`smithery mcp publish <url> -n <org/server>`),而不是静态配置文件。部署 HTTP 传输(`hood-mcp --http`)到公共位置,然后运行 `smithery mcp publish https://your-deployment/mcp -n nirholas/hood-mcp`。
## 许可证
Apache License 2.0 2026 nirholas
---
由 [nirholas](https://x.com/nichxbt) · [three.ws](https://three.ws) 构建