使用说明
Zerodha MCP服务器和客户端
一个基于Python的交易助手,连接到Zerodha MCP服务器,帮助用户管理他们的交易账户。
特性
- 账户管理:管理Zerodha交易账户、订单和头寸
- 交互式聊天界面:交易操作的自然语言界面
- MCP集成:建立在标准化通信的模型上下文协议之上
- Zerodha API集成:使用Zerodha的API与交易平台进行交互
- Agno代理人:使用Agno Agent与交易平台进行交互
- 谷歌ADK代理:使用Google ADK Agent与交易平台进行交互
技术栈
- 协议: 模型上下文协议(MCP)
- 代理框架:
工具
- 下订单:在交易平台下订单
- 修改订单:在交易平台中修改订单
- 取消订单:取消交易平台中的订单
- 获取订单:在交易平台上获取订单
- 获取订单历史记录:在交易平台中获取订单历史记录
- 获取订单交易:在交易平台上获取订单交易
- 获取利润:在交易平台获得利润
- 获取控股权:在交易平台上获得持股
- 获取职位:在交易平台中获取头寸
- 获取用户资料:在交易平台中获取用户资料
先决条件
- python
- Zerodha交易账户,可从访问个人API 这里
- Zerodha API密钥和秘密
- OpenAI API密钥(用于Agno代理)
- Gemini API密钥或应用程序默认凭据(适用于Google ADK代理)
安装
- 克隆存储库:
git clone https://github.com/mtwn105/zerodha-mcp-server-client.git
cd zerodha-mcp-server-client
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 设置环境变量:
# Copy the example environment file
cp .env.example .env
# Edit the .env file with your credentials
- 创建一个
.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
# GOOGLE_API_KEY=your_google_api_key
服务器使用情况
服务器提供了一组与Zerodha交易平台交互的工具。要启动服务器,请执行以下操作:
-
确保你的
.env文件已使用Zerodha API凭据正确配置。 -
使用以下方法之一启动服务器:
# 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:获取用户身份验证的登录URLget_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:取消订单
客户端使用情况
该项目提供了三种客户端实现:
- 使用Agno框架(
client/agno_client.py) - 使用Agno和Gradio web界面(
client/agno_gradio_client.py) - 使用谷歌ADK(
client/google_adk_client.py)
所有客户端都连接到MCP服务器,并为交易操作提供交互式界面。
运行Agno客户端
- 确保您的
.env文件包括OPENAI_API_KEY. - 使用以下方法之一启动客户端:
# 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
运行Google ADK客户端
- 通过设置
GOOGLE_API_KEY环境变量(并在中取消注释.env)或使用应用程序默认凭据(运行gcloud auth application-default login). - 使用以下方法之一启动客户端:
# Using environment variables from .env file
python client/google_adk_client.py
# Using command line arguments
python client/google_adk_client.py --host localhost --port 8001
# Using a combination (command line arguments take precedence)
MCP_HOST=localhost MCP_PORT=8001 python client/google_adk_client.py --host otherhost --port 9000
运行Gradio Web界面
- 确保您的
.env文件包括OPENAI_API_KEY. - 启动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
-
打开网络浏览器,导航到终端中显示的URL(通常
http://localhost:7860). -
使用web界面可以:
- 通过输入主机和端口连接到MCP服务器
- 使用自然语言与AI助手聊天
- 通过用户友好的界面管理您的Zerodha帐户
Gradio界面提供:
- 通过主机/端口配置轻松进行连接管理
- 与AI助手的实时聊天界面
- 连接状态的视觉反馈
- 移动友好的响应式设计
客户端配置
两个客户端都支持通过多个源进行配置,优先级如下:
- 命令行参数(最高优先级)
- 环境变量
.env文件变量
配置选项:
- 环境变量:
MCP_HOST和MCP_PORT - 命令行参数:
--host和--port .env文件变量:MCP_HOST,MCP_PORT,OPENAI_API_KEY,以及GOOGLE_API_KEY
默认值(如果未提供配置):
- 主机:本地主机
- 端口:8001
客户端自动从以下位置加载环境变量 .env 项目根目录中的文件。确保你的 .env 文件包含必要的配置:
# Client Configuration
MCP_HOST=localhost
MCP_PORT=8001
OPENAI_API_KEY=your_openai_api_key
# GOOGLE_API_KEY=your_google_api_key
-
客户端将使用提供的配置自动连接到MCP服务器。
-
连接后,您可以使用自然语言命令与助手进行交互。例如:
- “显示我的投资组合”
- “我目前的职位是什么?”
- “下单购买10股RELIANCE”
- “取消订单ID 123456”
-
要退出客户端,请在提示时键入“quit”。
发展
项目结构
client/agno_client.py:使用Agno实现MCP客户端client/google_adk_client.py:使用Google ADK实现MCP客户端client/agno_gradio_client.py:使用Gradio和Agno的Web界面server.py:与Zerodha API集成的MCP服务器实现generate_token.py:用于生成访问令牌的实用程序requirements.txt:项目依赖关系.env:环境配置
贡献
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到分支
- 创建拉取请求
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 使用 阿格诺
- 使用 谷歌ADK
- 用途 主控程序 用于标准化通信
- 由...驱动 KiteConnect 用于Zerodha API集成