该项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将 Dhan 交易平台的 API 功能暴露给支持 MCP 的 LLM 客户端(如 Claude Desktop)。
项目简介
该服务器作为 LLM 客户端与您的 Dhan 交易账户之间的桥梁。它将 Dhan API 提供的功能(如查询余额、持仓、获取行情)和操作(如下单、管理订单)转换为 LLM 可以理解和调用的“资源”和“工具”。
主要功能点
- 账户查询: 允许 LLM 查询您的 Dhan 账户余额、持仓和头寸。
- 市场数据: 获取股票和指数的实时行情价格。
- 订单管理: 支持通过 LLM 下达多种类型的交易订单(市价、限价、止损、盘后订单 AMO),并可设置止损和止盈。
- 股票识别: 辅助 LLM 识别用户提及的股票。
- 交易策略: 部分代码包含自动化交易策略逻辑(例如,根据盘中高低点或缺口进行交易),但这部分并非 MCP 服务器核心功能,而是可以由 MCP 服务器执行的工具。
安装步骤
- 前提条件:
- 安装 Python 3.8 或更高版本。
- 安装支持 MCP 协议的 LLM 客户端应用程序(例如 Claude Desktop)。
- 拥有一个 Dhan 交易账户并获取 API 凭据 (Client ID 和 Access Token)。
- 安装依赖:
- 打开终端或命令提示符。
- 运行以下命令安装 MCP CLI 工具和 Dhan 交易库:
pip install "mcp[cli]" Dhan-Tradehull requests pandas pytz
- 克隆仓库:
- 找到您想要下载此项目的目录。
- 运行以下命令克隆项目仓库(假设您使用 SSH,如果使用 HTTPS 请调整):
git clone [email protected]:mayankthole/Dhan-MCP-Trades.git cd Dhan-MCP-Trades
服务器配置 (为您的 MCP 客户端配置)
MCP 服务器由 LLM 客户端负责启动。您需要在 LLM 客户端的配置中指定如何启动该服务器。对于 Claude Desktop,这意味着编辑位于您用户主目录下的 '.claude-desktop.json' 文件。
请在 'mcpServers' 部分添加一个配置条目,例如:
- 'server name': 给您的服务器起一个独一无二的名字,比如 'dhan-trading'。
- 'command': 指定 Python 解释器的完整路径。例如,如果您使用的是 'venv',可能是 '/path/to/your/venv/bin/python';如果您直接安装在系统,可能是 '/usr/bin/python3' 或 'C:\Python\Python3x\python.exe'。
- 'args': 指定要运行的 MCP 服务器 Python 脚本的完整路径。根据您希望使用的功能,可以选择仓库中的一个文件,例如 '/path/to/cloned/repo/Dhan-MCP-Trades/v3-place-more-amo-order.py' 或 '/path/to/cloned/repo/Dhan-MCP-Trades/simple_dhan_mcp.py'。
- 'env': 包含您的 Dhan API 凭据的环境变量。将 'your_client_code' 和 'your_token_id' 替换为您实际的 Dhan Client ID 和 Access Token。
示例 '.claude-desktop.json' 配置片段:
{ "mcpServers": { "your-server-name": { "command": "/path/to/your/python", "args": [ "/path/to/your/dhan_mcp_script.py" ], "env": { "DHAN_CLIENT_CODE": "your_client_code", "DHAN_TOKEN_ID": "your_token_id" } } // ... 其他 MCP 服务器配置 } }
请确保替换上面的 'your-server-name', '/path/to/your/python', '/path/to/your/dhan_mcp_script.py', 'your_client_code', 'your_token_id' 为您实际的值。
基本使用方法
- 确保您已完成上述安装和客户端配置步骤。
- 启动您的 MCP 客户端应用程序(例如 Claude Desktop)。客户端会自动根据 '.claude-desktop.json' 启动配置的 MCP 服务器。
- 在 LLM 客户端中,直接向其提问或发出指令,LLM 将通过 MCP 协议与您的 Dhan 交易 MCP 服务器通信以获取信息或执行操作。例如:
- "Check my account balance." (查询账户余额)
- "Show me my holdings." (显示我的持仓)
- "What is the current price of Reliance Industries?" (请问 Reliance Industries 的当前价格是多少?)
- "Buy 1 share of TCS at market price." (以市价买入 1 股 TCS。)
- "Place a limit order to sell 10 shares of Infosys at 1500." (为 Infosys 下一个限价卖出单,10 股,价格 1500。)
信息
分类
商业系统