使用说明
🚀 Zerodha MCP服务器
模型上下文协议(MCP)服务器,提供与Zerodha交易平台交互的工具。该服务器使人工智能助手能够通过Zerodha的API发布股票订单、查看持股情况和管理共同基金投资。
🎯 特性
交易工具
- 下库存订单 -执行NSE和BSE的买入/卖出订单
- 查看控股 -获取当前股票投资组合持有量
- 共同基金SIPs -查看活跃的系统性投资计划
- 共同基金控股 -检查共同基金投资组合(实验性)
认证
- Zerodha登录 -基于OAuth的安全身份验证
- 许可证管理 -自动令牌存储和刷新
- 会话处理 -持续登录会话
技术特性
- TypeScript -整个代码库的完全类型安全
- MCP协议 -标准化AI助手集成
- 错误处理 -全面的错误管理
- 日志记录 -详细的操作日志
🏗️ 建筑
zerodha-mcp/
├── config/
│ ├── KiteConfig.ts
│ └── tokens.json
├── functions/
│ └── OrderRelated.ts
├── utils/
│ └── readWrite.ts
├── .env
├── bun.lock
├── main.ts
└── package.json
🛠️ 技术栈
- TypeScript -类型安全的JavaScript
- MCP-SDK -模型上下文协议实现
- KiteConnect -Zerodha的官方交易API
- 阿西奥斯 -API请求的HTTP客户端
- 包子 -必需的JavaScript运行时
📦 安装
先决条件
- 包子 -所需运行时间
- Zerodha交易账户
- Zerodha API证书
1.克隆存储库
git clone git@github.com:ManikLakhanpal/Zerodha-MCP.git
cd zerodha-mcp
2.安装依赖项
bun install
3.环境设置
创建一个 .env 根目录中的文件:
API_KEY=your_zerodha_api_key
API_SECRET=your_zerodha_api_secret
4.获取Zerodha API证书
- 登录您的Zerodha帐户
- 首选 Zerodha开发人员
- 创建新应用程序
- 复制您的API密钥和API机密
🚀 用法
启动MCP服务器
bun main.ts
与克劳德一起使用
此MCP服务器旨在与Claude AI助手配合使用。以下是如何设置它:
1.安装克劳德桌面
首先,下载并安装 克劳德桌面 对于您的操作系统。
2.配置Claude以使用MCP⚙️
- 📱 打开克劳德桌面
- 🔧 首选 设置 → 开发人员设置
- 📄 点击 打开配置文件 打开
claude_desktop_config.json在默认编辑器中 - ✏️ 将以下配置添加到
mcpServers章节:
{
"mcpServers": {
"kite": {
"command": "/opt/homebrew/bin/bun", # Use `which bun` to get path
"env": {
"API_KEY": "your_zerodha_api_key",
"API_SECRET": "your_zerodha_api_secret"
},
"args": ["/path/to/your/zerodha-mcp/main.ts"] # Paste the absolute path to main.ts
}
}
}
🔧 重要提示:
- 🛠️ 替换
/opt/homebrew/bin/bun使用Bun安装路径(使用which bun找到它) - 📁 替换
/path/to/your/zerodha-mcp/main.ts与项目的实际路径main.ts文件 - 🔑 替换
your_zerodha_api_key和your_zerodha_api_secret使用您的实际Zerodha API证书 - 🏷️ 服务器名称
"kite"可以更改为您喜欢的任何名称
3.身份验证流程🔐
- 🔑 首次登录:要求克劳德“登录Zerodha”
- 🌐 获取登录URL:Claude将提供登录URL
- ✅ 完成登录:在浏览器中打开URL并完成Zerodha登录
- 🔧 设置令牌:从URL复制请求令牌,并要求Claude使用令牌“设置Zerodha令牌”
4.Claude中的可用命令💬
连接后,您可以要求Claude:
- 🔐 “登录Zerodha” -获取身份验证URL
- 🔧 “使用[request_token]设置Zerodha令牌” -完成身份验证
- 📈 “在NSE上购买10股RELIANCE股票” -执行交易
- 📊 “显示我当前持有的资产” -查看投资组合
- 💰 “获取我的共同基金SIP” -查看SIP投资
- 🏦 “检查我的共同基金持有量” -查看MF投资组合
5.对话示例💭
You: 🔐 "Login to Zerodha"
Claude: 🌐 [Provides login URL]
You: 🔧 "Set Zerodha tokens with abc123xyz"
Claude: ✅ [Confirms token setup]
You: 📈 "Buy 5 shares of TCS on NSE"
Claude: 💰 [Executes order and shows result]
You: 📊 "What stocks do I currently hold?"
Claude: 📋 [Shows your portfolio holdings]
可用工具🛠️
1.🔐 登录Zerodha
// Tool: login-to-zerodha
// Returns a login URL for user authentication
2.🔧 设置身份验证令牌
// Tool: set-zerodha-tokens
// Parameters: { request_token: string }
// Sets access tokens after successful login
3.📈 下库存订单
// Tool: place-stock-order
// Parameters: {
// variety: "regular" | "amo" | "co" | "auction" | "iceberg",
// stock: string,
// qty: number,
// exchange: "NSE" | "BSE",
// orderType: "BUY" | "SELL"
// }
4.📊 获取控股权
// Tool: get-zerodha-holdings
// Returns current stock portfolio holdings
5.💰 获得共同基金SIP
// Tool: get-zerodha-mutual-fund-sips
// Returns active Systematic Investment Plans
6.🏦 获得共同基金控股
// Tool: zerodha-mf-holdings
// Returns mutual fund portfolio (experimental)
🔧 配置
🔐 许可证管理
服务器自动管理身份验证令牌:
- 📁 代币存储在
config/tokens.json - 🔄 会话到期时自动刷新令牌
- 🛡️ 具有错误恢复功能的安全令牌处理
⚡ API限值
- ⏱️ Zerodha对API调用有速率限制
- 🛠️ 服务器内置了错误处理功能
- 📝 失败的请求会记录详细的错误信息
🔒 安全
- 🔐 环境变量 -API凭据安全存储在本地计算机上
- 📝 错误记录 -错误消息中没有敏感数据
📊 api参考
🏢 Zerodha API集成
服务器使用Zerodha的官方KiteConnect API:
- 📈 交易 -下单,查看持仓
- 💰 共同基金 -SIP管理和持股
- 🔐 认证 -基于OAuth的登录流程
🤖 MCP协议
实现AI助手集成的模型上下文协议:
- 🛠️ 工具定义 -结构化参数模式
- 🛡️ 错误处理 -优雅的失败反应
- 🔒 类型安全 -Zod模式验证
🧪 发展
📁 项目结构
src/
├── main.ts # Server entry point
├── config/
│ └── KiteConfig.ts # Zerodha configuration
├── functions/
│ └── OrderRelated.ts # Trading functions
└── utils/
└── readWrite.ts # File utilities
🛠️ 添加新工具
- 📝 在中定义工具
main.ts - ⚙️ 在中实现该功能
functions/ - 🛡️ 添加适当的错误处理
- 📚 更新此自述文件
🚨 重要提示
⚠️ 交易风险
- 💰 现实金钱交易 -此服务器执行真实交易
- ⏰ 市场交易时间 -订单仅在市场交易时间有效
- 🛡️ 风险管理 -实施适当的止损机制
- 🧪 测试 -使用纸质交易进行测试
🔧 API限制
- ⏱️ 速率限制 -遵守Zerodha的API费率限制
- 🕐 市场交易时间 -有些功能仅在交易时间工作
- 🏦 账户类型 -需要Zerodha交易账户
🔧 故障排除
🚨 常见问题
🔐 身份验证错误
# Check if tokens are valid
cat config/tokens.json
# Re-authenticate if needed
# Use login-to-zerodha tool
⚠️ API错误
- 🔑 在中验证API凭据
.env - 🏦 检查Zerodha帐户状态
- ⏰ 确保交易功能的市场交易时间
🌐 网络问题
- 📡 检查互联网连接
- 🏢 验证Zerodha API状态
- 📝 查看错误日志以了解详细信息
🤖 Claude MCP连接问题
- 🔍 找不到服务器:确保工作目录路径正确
- 🛠️ 未找到命令:确保
bun已安装并位于PATH中 - 🔐 认证失败:检查环境变量是否设置正确
- ⏰ 令牌已过期:使用登录流重新进行身份验证
- 🚫 权限不足:确保项目文件夹具有适当的读/写权限
🤝 贡献
- 🍴 分叉存储库
- 🌿 创建要素分支(
git checkout -b feature/new-tool) - ⚙️ 实施您的更改
- 🛡️ 添加适当的错误处理
- 📚 更新文档
- 📤 提交拉取请求
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
⚠️ 免责声明
此软件仅供教育和个人使用。交易涉及巨大的损失风险,并不适合所有投资者。开发人员不对因使用此软件而产生的任何经济损失负责。 🛡️
🆘 支持
- 🐛 问题 -通过GitHub Issues报告错误
- 📚 文档 -查看此README和代码注释
- 🏢 Zerodha支持 -联系Zerodha了解API相关问题
🙏 致谢
- 🏢 Zerodha -交易平台和API
- 🤖 MCP-SDK -模型上下文协议实现
- 🔒 TypeScript -类型安全和开发经验
由Kshitij Banerjee制作🔥