Zerodha交易助手

一个基于Python的交易助手,通过连接Zerodha MCP服务器帮助用户管理交易账户,提供账户管理、订单操作和自然语言交互功能。

  • by shr-chauhan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shr-chauhan/Zerodha-MCP

使用说明

Zerodha MCP服务器和客户端

一个基于Python的交易助手,连接到Zerodha MCP服务器,帮助用户管理他们的交易账户。

特性

  • 账户管理:管理Zerodha交易账户、订单和头寸
  • 交互式聊天界面:交易操作的自然语言界面
  • MCP集成:建立在标准化通信的模型上下文协议之上
  • Zerodha API集成:使用Zerodha的API与交易平台进行交互
  • Agno代理人:使用Agno Agent与交易平台进行交互

技术栈

工具

  • 下订单:在交易平台下订单
  • 修改订单:在交易平台中修改订单
  • 取消订单:取消交易平台中的订单
  • 获取订单:在交易平台上获取订单
  • 获取订单历史记录:在交易平台中获取订单历史记录
  • 获取订单交易:在交易平台上获取订单交易
  • 获取利润:在交易平台获得利润
  • 获取控股权:在交易平台上获得持股
  • 获取位置:在交易平台中获取头寸
  • 获取用户资料:在交易平台中获取用户资料

先决条件

  • python
  • Zerodha交易账户,可从访问个人API 这里
  • Zerodha API密钥和秘密
  • OpenAI API密钥(用于Agno代理)

安装

  1. 克隆存储库:
git clone https://github.com/mtwn105/zerodha-mcp-server-client.git
cd zerodha-mcp-server-client
  1. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量:
# Copy the example environment file
cp .env.example .env

# Edit the .env file with your credentials
  1. 创建一个 .env 使用您的配置文件:
# Server Configuration
ZERODHA_API_KEY=your_api_key
ZERODHA_API_SECRET=your_api_secret
PORT=8001
SERVER_MODE=sse  # or stdio

# Client Configuration
MCP_HOST=localhost
MCP_PORT=8001
OPENAI_API_KEY=your_openai_api_key

服务器使用情况

服务器提供了一组与Zerodha交易平台交互的工具。要启动服务器,请执行以下操作:

  1. 确保你的 .env 文件已使用Zerodha API凭据正确配置。

  2. 使用以下方法之一启动服务器:

# Using environment variables
python server.py

# Or using command line arguments
python server.py --api-key your_api_key --api-secret your_api_secret --port 8001 --mode sse

服务器提供以下工具:

  • get_login_url:获取用户身份验证的登录URL
  • get_access_token:使用请求令牌生成访问令牌
  • get_user_profile:获取用户的Zerodha个人资料信息
  • get_margins:获取可用保证金和基金详细信息
  • get_holdings:获取投资组合持有量
  • get_positions:获取当前职位
  • get_orders:获取当天的所有订单
  • get_order_history:获取特定订单的历史记录
  • get_order_trades:获取订单生成的交易
  • place_order:下新订单
  • modify_order:修改现有订单
  • cancel_order:取消订单

客户端使用情况

该项目提供了两个客户端实现:

  1. 使用Agno框架(client/agno_client.py)
  2. 使用Agno和Gradio web界面(client/agno_gradio_client.py)

两个客户端都连接到MCP服务器,并为交易操作提供交互式界面。

运行Agno客户端

  1. 确保您的 .env 文件包括 OPENAI_API_KEY.
  2. 使用以下方法之一启动客户端:
# Using environment variables from .env file
python client/agno_client.py

# Using command line arguments
python client/agno_client.py --host localhost --port 8001

# Using a combination (command line arguments take precedence)
MCP_HOST=localhost MCP_PORT=8001 python client/agno_client.py --host otherhost --port 9000

运行Gradio Web界面

  1. 确保您的 .env 文件包括 OPENAI_API_KEY.
  2. 启动Gradio web界面:
# Using environment variables from .env file
python client/agno_gradio_client.py

# Using command line arguments for server configuration
python client/agno_gradio_client.py --host localhost --port 8001
  1. 打开网络浏览器,导航到终端中显示的URL(通常 http://localhost:7860).

  2. 使用web界面可以:

    • 通过输入主机和端口连接到MCP服务器
    • 使用自然语言与AI助手聊天
    • 通过用户友好的界面管理您的Zerodha帐户

Gradio界面提供:

  • 通过主机/端口配置轻松进行连接管理
  • 与AI助手的实时聊天界面
  • 连接状态的视觉反馈
  • 移动友好的响应式设计

客户端配置

客户端支持通过多个来源进行配置,优先级如下:

  1. 命令行参数(最高优先级)
  2. 环境变量
  3. .env 文件变量

配置选项:

  • 环境变量: MCP_HOST 和 MCP_PORT
  • 命令行参数: --host 和 --port
  • .env 文件变量: MCP_HOST, MCP_PORT,以及 OPENAI_API_KEY

默认值(如果未提供配置):

  • 主机:本地主机
  • 端口:8001

客户端自动从以下位置加载环境变量 .env 项目根目录中的文件。确保你的 .env 文件包含必要的配置:

# Client Configuration
MCP_HOST=localhost
MCP_PORT=8001
OPENAI_API_KEY=your_openai_api_key
  1. 客户端将使用提供的配置自动连接到MCP服务器。

  2. 连接后,您可以使用自然语言命令与助手进行交互。例如:

    • “显示我的投资组合”
    • “我目前的职位是什么?”
    • “下单购买10股RELIANCE”
    • “取消订单ID 123456”
  3. 要退出客户端,请在提示时键入“quit”。

发展

项目结构

  • client/agno_client.py:使用Agno实现MCP客户端
  • client/agno_gradio_client.py:使用Gradio和Agno的Web界面
  • server.py:与Zerodha API集成的MCP服务器实现
  • generate_token.py:用于生成访问令牌的实用程序
  • requirements.txt:项目依赖关系
  • .env:环境配置

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

致谢