内容
# tiger-mcp
[](https://github.com/yogyrahmawan/tiger-mcp/actions/workflows/ci.yml)
[](https://pkg.go.dev/github.com/yogyrahmawan/tiger-mcp)
[](LICENSE)
[](go.mod)
一个MCP(模型上下文协议)服务器,使用Go编写,允许MCP客户端(Claude Desktop、Claude Code或任何其他支持MCP的客户端)通过自然语言查询您自己的[虎豹证券](https://www.tigerbrokers.com/)账户和市场数据——**只读**。
该服务器从不放置、修改或取消订单。它只读取市场数据和您的账户仓位、资产和订单历史。
> [!IMPORTANT]
> 这是一个独立的、社区建设的项目,**与虎豹证券无关、不受其支持或认可**。它按“现状”提供,不提供任何保证(参见[LICENSE](LICENSE))。该工具返回的市场数据和账户信息仅用于信息目的,不应作为财务建议。您在采取任何行动之前,应自行验证数据,并确保您的虎豹证券API凭证的安全。使用风险自负。
## 适用人群
任何拥有虎豹证券账户和API访问权限的人,都可以使用LLM客户端回答诸如“我的投资组合价值多少?”或“给我获取AAPL的报价”等问题。每个人都在本地运行自己的**独立实例**,使用自己的虎豹证券凭证——这不是共享或托管服务。
## 先决条件
- Go 1.25或更高版本(参见[go.mod](go.mod))。
- 一个虎豹证券开放平台账户,启用API访问权限:虎豹证券ID、RSA私钥和交易账户号码。参见[虎豹证券开放平台](https://quant.itigerup.com/openapi/)了解如何注册和生成这些。
## 安装
从源代码克隆并构建:
```sh
git clone https://github.com/yogyrahmawan/tiger-mcp.git
cd tiger-mcp
go build -o tiger-mcp ./cmd/tiger-mcp
```
或直接使用Go安装:
```sh
go install github.com/yogyrahmawan/tiger-mcp/cmd/tiger-mcp@latest
```
## 配置
服务器在启动时从环境变量中读取其虎豹证券凭证。**服务器从不将这些凭证持久化到磁盘上**。
| 变量名 | 是否必填 | 描述 |
| --- | --- | --- |
| `TIGER_ID` | 是 | 您的虎豹证券开放平台开发者/虎豹证券ID。 |
| `TIGER_PRIVATE_KEY` | 是 | 您的RSA私钥,作为原始PEM字符串(不是文件路径)。 |
| `TIGER_ACCOUNT` | 是 | 您的虎豹证券交易账户号码。 |
如果这些变量中任何一个缺失或为空,服务器将记录一个明确的错误,指出缺少的特定变量,并立即退出——它不会在凭证不完整的情况下启动。
**请保持您的`TIGER_PRIVATE_KEY`私钥安全**。像对待密码一样:不要提交它,不要在共享聊天或问题中粘贴它,也不要记录它。
## 运行
```sh
TIGER_ID="您的虎豹证券ID" \
TIGER_PRIVATE_KEY="$(cat /path/to/your/private_key.pem)" \
TIGER_ACCOUNT="您的账户号码" \
./tiger-mcp
```
服务器通过stdio使用MCP协议进行通信;它旨在由MCP客户端作为子进程启动,而不是交互式运行。
## 与Claude Desktop / Claude Code一起使用
在您的MCP客户端的配置文件中添加类似以下内容(例如Claude Desktop的`claude_desktop_config.json`),将`command`指向您构建的二进制文件:
```json
{
"mcpServers": {
"tiger-mcp": {
"command": "/绝对路径/to/tiger-mcp",
"env": {
"TIGER_ID": "您的虎豹证券ID",
"TIGER_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----",
"TIGER_ACCOUNT": "您的账户号码"
}
}
}
}
```
## 可用工具
所有工具均为只读。
| 工具 | 描述 |
| --- | --- |
| `get_quote` | 获取一个或多个股票代码的实时报价,来自虎豹证券。 |
| `get_market_status` | 获取虎豹证券市场的当前交易状态(开市/闭市等)。 |
| `get_kline` | 获取单个股票代码的历史K线(蜡烛图)数据,来自虎豹证券。 |
| `get_depth` | 获取一个或多个股票代码的订单簿深度(买入/卖出),来自虎豹证券。 |
| `get_account_assets` | 获取操作员的虎豹证券账户资产摘要(购买力、现金、净清算、盈亏)。 |
| `get_positions` | 获取操作员当前在虎豹证券上持有的仓位。 |
| `get_orders` | 获取操作员在虎豹证券上的订单历史记录(只读;此版本中无筛选器)。 |
## 项目文档
参见[specs/mission.md](specs/mission.md)、[specs/tech-stack.md](specs/tech-stack.md)和[specs/roadmap.md](specs/roadmap.md),了解项目的宗旨和实现历史。
## 开发
```sh
go build ./...
go vet ./...
gofmt -l .
go test ./...
```
## 贡献
问题和拉取请求是欢迎的。由于该项目按照设计严格只读(参见[specs/mission.md](specs/mission.md)),因此不会接受添加交易/下单功能的贡献。
## 许可证
[MIT](LICENSE)