项目简介
Kite MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将 Zerodha Kite Connect API 的功能暴露给支持 MCP 的大型语言模型 (LLM) 客户端。它允许 LLM 通过标准化的工具调用方式获取用户账户信息、交易数据、市场报价以及执行交易操作(如下单、修改订单、取消订单、管理 GTT 订单)。
主要功能点
- 账户及交易数据访问: 获取用户资料、保证金信息、持仓、头寸、历史交易记录和当前订单状态。
- 市场数据获取: 查询股票或合约的实时报价、搜索交易品种、获取历史价格数据。
- 交易执行: 支持通过 LLM 下单、修改现有订单、取消订单以及创建、修改和删除 GTT (Good Till Triggered) 订单。
- 用户认证流程: 包含一个登录工具,引导用户完成 Kite Connect API 的认证过程,以便服务器能代表用户执行操作。
- 多协议支持: 支持通过 Stdio (标准输入输出) 和 SSE (Server-Sent Events) 协议与 MCP 客户端通信。
安装步骤
- 安装 Go 语言环境: 确保您的系统已安装 Go 1.18 或更高版本。您可以从 Go 官方网站 下载安装。
- 获取源代码: 打开终端或命令提示符,克隆该 GitHub 仓库:
git clone https://github.com/zerodha/kite-mcp-server.git cd kite-mcp-server - 获取 Kite Connect API Key 和 Secret: 您需要拥有 Zerodha Kite Connect API 的账户并获取 API Key 和 API Secret。详情请参考 Zerodha 官方文档。
- 设置环境变量: 在运行服务器前,需要设置以下环境变量:
- 'KITE_API_KEY':您的 Kite Connect API Key。
- 'KITE_API_SECRET':您的 Kite Connect API Secret。
- 'APP_MODE':选择运行模式,'stdio' (默认) 或 'sse'。
- 'APP_HOST' (SSE模式下可选):服务器绑定的 IP 地址或主机名,默认为 'localhost'。
- 'APP_PORT' (SSE模式下可选):服务器监听的端口,默认为 '8080'。
- 例如 (Linux/macOS):
export KITE_API_KEY="your_api_key" export KITE_API_SECRET="your_api_secret" export APP_MODE="stdio" # 或 "sse" # 如果是 SSE 模式并需要指定端口/主机 # export APP_HOST="localhost" # export APP_PORT="8080" - 例如 (Windows PowerShell):
$env:KITE_API_KEY="your_api_key" $env:KITE_API_SECRET="your_api_secret" $env:APP_MODE="stdio" # 或 "sse" # 如果是 SSE 模式并需要指定端口/主机 # $env:APP_HOST="localhost" # $env:APP_PORT="8080"
- 运行服务器: 在项目根目录下执行以下命令启动服务器:
服务器启动后,您会看到相应的日志输出,指示其运行模式和监听地址。go run main.go
服务器配置 (供 MCP 客户端使用)
MCP 服务器需要配置到您的 MCP 客户端(如 Claude Desktop)中。配置信息通常是一个 JSON 对象,指定客户端如何启动或连接到 MCP 服务器。根据您选择的运行模式,您需要将类似如下的配置片段添加到客户端的 MCP 服务器配置列表中(例如 'claude_desktop_config.json' 文件中的 'mcpServers' 字段):
-
Stdio 模式配置示例说明:
客户端配置需要一个名为 '"kite"' 的服务器条目。
- '"command"': 指定用于启动服务器进程的命令,这里是 '"go"'。
- '"args"': 指定传递给启动命令的参数,这里是 '["run", "<ABSOLUTE_PATH>/main.go"]'。'<ABSOLUTE_PATH>' 需要替换为您克隆的 'kite-mcp-server' 仓库的绝对路径。
- '"env"': 一个 JSON 对象,包含服务器运行时所需的环境变量,例如 '"APP_MODE": "stdio"' 以及您的 Kite Connect API 密钥和 Secret。
-
SSE 模式配置示例说明:
SSE 模式下,您可以直接运行 'go run main.go' 启动服务器(默认监听 'localhost:8080' 的 '/sse' 或 '/message' 路径)。客户端配置需要一个名为 '"kite"' 的服务器条目。
- '"command"': 指定用于连接到 SSE 端点的命令,通常使用 'npx mcp-remote' 工具,这里是 '"npx"'。
- '"args"': 指定传递给连接命令的参数,这里是 '["mcp-remote", "http://localhost:8080/sse"]'。如果服务器运行在不同的主机或端口,需要相应修改 URL。如果使用官方托管版本,URL 会是 'http://mcp.kite.trade/sse'。
基本使用方法 (通过 LLM 客户端)
一旦 MCP 服务器成功运行并配置到您的 LLM 客户端中,您就可以通过与 LLM 对话来利用其功能:
- 启动对话: 开始与配置了该 MCP 服务器的 LLM 客户端进行对话。
- 登录 Kite: LLM 可能会提示您需要登录 Kite Connect API。请遵循 LLM 的指示,它会通过调用服务器的 'login' 工具生成一个登录 URL。您需要在浏览器中打开该 URL 完成认证。认证完成后,服务器的 '/callback' 端点会处理重定向,并建立用户会话。告诉 LLM 您已完成登录即可继续。
- 进行查询或操作: 使用自然语言向 LLM 提出请求,例如:
- "显示我的持仓。" (LLM 调用 'get_holdings' 工具)
- "查询 Reliance 的最新报价。" (LLM 调用 'search_instruments' 查找 Reliance 的交易代码,然后调用 'get_quotes' 获取报价)
- "以市价买入 10 股 Infosys。" (LLM 调用 'place_order' 工具)
- "显示我所有的待处理订单。" (LLM 调用 'get_orders' 工具)
LLM 会将您的请求转换为对 Kite MCP Server 暴露的相应工具的调用,并将结果反馈给您。
信息
分类
商业系统