关于 Kite Connect MCP
Kite Connect MCP 是可自托管的 MCP 服务,用于将 AI 助手连接到 Zerodha Kite Connect v3 API。它涵盖账户、市场和交易操作,写入默认采用 dry run,并为实盘操作提供可配置的安全措施。
主要功能
- 01账户、投资组合和订单工具
- 02行情、历史数据和实时行情订阅
- 03GTT、提醒和共同基金操作
- 04写入默认预演并需确认
- 05限额、允许列表、紧急开关和审计日志
适用场景
- 01通过 AI 助手查看投资组合和市场数据
- 02提交前预览并验证订单
- 03通过 MCP 客户端管理提醒和 GTT
MCP 相关
该服务通过 stdio 或 HTTP 向 MCP 客户端提供 Zerodha Kite Connect v3 功能。可配置为只读模式,写入操作默认采用 dry run。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx kite-connect-mcpKITE_API_KEY密钥API key of your Kite Connect app (developers.kite.trade)KITE_API_SECRET密钥API secret of your Kite Connect app, needed for the daily login (or use KITE_API_SECRET_FILE)KITE_MCP_AUTH_MODE密钥managed (this server owns the daily login) or external (read a token file another program writes)KITE_TOKEN_FILE密钥Path of the access-token file (default: ~/.local/state/kite-connect-mcp/access_token.json)KITE_MCP_TRADING_MODEdry_run (default: writes are only previewed) or live (writes need a confirmation token)KITE_MCP_READ_ONLYtrue hides every tool that can change the account本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
53收录的工具列表 · 更新于 4 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| verify | boolean | 否 | 同时向 Kite 发起一次请求(GET /user/profile),确认其是否仍接受该令牌,并返回账户的用户 ID 或 Kite 错误 |
详细介绍
kite-connect-mcp
适用于 Zerodha Kite Connect v3 API 的可自托管模型上下文协议服务。 在自己的计算机或服务上使用自己的 Kite Connect 应用运行它,让 AI 助手读取账户、市场数据和订单。所有写入操作默认均为 试运行。
状态:测试版(0.x)。 已涵盖 Kite Connect v3 的所有功能,并通过模拟 Kite 离线测试。读取工具、保证金和费用计算器以及行情订阅器也已使用实时 API 进行验证;实时写入操作(订单、GTT、提醒、共同基金)尚未验证,因此这些功能可能不够完善,欢迎报告问题。变更 详见 CHANGELOG.md。 本项目与 Zerodha 无关,也未获得 Zerodha 的认可。
为什么还要开发另一个 Kite MCP 服务?
Zerodha 发布了官方服务(zerodha/kite-mcp-server),并将其托管在 mcp.kite.trade。本项目有三点不同:
- 涵盖完整的付费 Kite Connect API。 包括提醒、GTT、订单和篮子保证金、费用、持仓转换、持仓授权、拍卖、共同基金和 WebSocket 行情订阅器。
- 专为个人自托管打造。 每日令牌会持久化保存,并由你连接的所有客户端共用。
- 为订单提供安全层: 试运行、两步确认、价值上限、允许列表、紧急停止开关、审计日志和速率限制。
完整评估和理由见 docs/DECISION.md。
所需条件
- 拥有 Zerodha 账户,以及在开发者控制台创建的 Kite Connect 应用。
- Connect(付费,每个 API 密钥每月 ₹500) 包含实时报价、WebSocket 和历史 K 线。
- Personal(免费) 支持订单、GTT、提醒、投资组合和保证金,但不包含市场数据。市场数据工具 会返回明确的“需要付费套餐”错误。
- Python 3.11+(或 Docker)。
- 如需下达实时订单:订单请求必须来自在开发者控制台注册的静态 IP。 这是 SEBI/NSE 规定,自 2026 年 4 月起生效。读取操作可从任何 IP 执行。
开发者控制台的操作步骤见 docs/KITE_SETUP.md:创建应用、API 密钥和密钥、重定向和回调 URL、订阅及静态 IP。
快速开始(本地,stdio)
# install
uv tool install kite-connect-mcp # or: pipx install kite-connect-mcp / pip install kite-connect-mcp
# or run without installing: uvx kite-connect-mcp --help
# or the image: docker pull ghcr.io/techfreakworm/kite-connect-mcp
# configure: credentials from env vars or files (mode 600)
export KITE_API_KEY=your_api_key
export KITE_API_SECRET_FILE=~/.config/kite-connect-mcp/api_secret
kite-connect-mcp check-config # validates settings, never prints credentials
kite-connect-mcp login --listen # prints the Kite login link and waits for the redirect (managed mode)
kite-connect-mcp status # session and safety status
对于 login --listen,请将 http://127.0.0.1:8765/callback 注册为应用的重定向 URL。所有设置详见
docs/CONFIGURATION.md。
将其添加到 MCP 客户端,例如 Claude Desktop(claude_desktop_config.json),或任何可启动 stdio 服务的客户端:
{
"mcpServers": {
"kite": {
"command": "kite-connect-mcp",
"args": ["serve"],
"env": { "KITE_API_KEY": "your_api_key", "KITE_API_SECRET_FILE": "/home/you/.config/kite-connect-mcp/api_secret" }
}
}
}
要通过 HTTP 在服务上运行,请参阅 docs/SELF_HOSTING.md。其中介绍了 systemd 和 Docker、 使用 TLS 的反向代理、Bearer 令牌身份验证以及登录回调。
简要安全模型
| 防护措施 | 默认值 |
|---|---|
每个写入工具都接受 dry_run | true:验证、运行检查、预览确切请求和 Kite 的保证金计算;不发送任何内容 |
| 实盘交易开关 | 关闭(KITE_MCP_TRADING_MODE=dry_run) |
| 确认 | 实盘写入需要来自完全相同调用的 dry run 所生成的单次使用 confirmation_token(或者,如果你选择启用,则需要明确列入允许列表的工具标的) |
| 价值上限 | 每笔订单 ₹10,000,每日 ₹50,000,每天 20 笔实盘订单 |
| 允许列表 | 工具标的、交易所、产品、类别、订单类型、买卖方向(均为可选) |
| 只读模式 | KITE_MCP_READ_ONLY=true 会隐藏所有写入工具,HTTP 客户端也会拒绝写入端点 |
| 紧急停止开关 | 一个文件;工具可以将其开启,只有人可以将其关闭 |
| 审计日志 | 将每次 dry run、拒绝、实盘发送和结果记录为 JSON 行;发送前会对意图执行 fsync |
| 速率限制 | 控制在 Kite 的限制以内:报价 1 次/秒、历史数据 3 次/秒、订单及其他请求 10 次/秒、每分钟 400 笔订单 |
| 重试 | 读取请求会退避并重试;写入请求绝不重试。超时会报告为结果未知:再次尝试前请检查订单簿 |
详情:docs/SAFETY.md。
会话与每日登录
Kite 访问令牌每天约在 06:00 IST 过期。请求令牌只能使用一次。使用同一个 API 密钥重新登录会使之前的访问令牌失效。因此,每个应用都应当只有一个程序负责每日登录。
managed模式(默认)。 此服务负责登录。login工具(或kite-connect-mcp login)会提供链接。Kite 会重定向到此服务的/callback,由其检查一次性state、交换request_token,并以权限模式 600 存储令牌。external模式。 由另一个程序负责登录并写入令牌文件。此服务只读取该文件,每天早晨无需重启即可获取新令牌,并且绝不会写入、删除或注销该令牌。
工具
共 11 个工具集中的 58 个工具(默认启用 53 个:共同基金写入工具需选择启用)。如果存在官方服务,工具名称会与其保持一致,方便沿用提示词。使用 KITE_MCP_TOOLSETS 选择工具集,并使用 KITE_MCP_EXCLUDED_TOOLS 隐藏单个工具;kite-connect-mcp tools 会列出你的配置所公开的内容。
| 工具集 | 工具 |
|---|---|
| session(会话) | session_status、login、complete_login、logout |
| account(账户) | get_profile、get_margins |
| orders(订单) | place_order、modify_order、cancel_order、get_orders、get_order_history、get_trades、get_order_trades |
| gtt | get_gtts、get_gtt、place_gtt_order、modify_gtt_order、delete_gtt_order |
| alerts(提醒) | get_alerts、get_alert、get_alert_history、create_alert(简单提醒和 ATO)、modify_alert、delete_alerts |
| portfolio(投资组合) | get_holdings、get_positions、get_auctions、convert_position、authorise_holdings |
| market(市场) | get_quotes、get_ohlc、get_ltp、get_historical_data、search_instruments、get_instrument、get_instruments_status、refresh_instruments |
| margins(保证金) | get_order_margins、get_basket_margins、get_order_charges |
| mf(共同基金) | get_mf_holdings、get_mf_orders、get_mf_sips、search_mf_instruments;需选择启用:place_mf_order、cancel_mf_order、place_mf_sip、modify_mf_sip、cancel_mf_sip |
| ticker(行情推送) | ticker_subscribe、ticker_unsubscribe、ticker_get_ticks、ticker_status、ticker_order_updates、ticker_stop |
| safety(安全) | get_safety_status、get_audit_log、engage_kill_switch |
所有工具的每个参数都列于 docs/TOOLS.md。
开发
git clone https://github.com/techfreakworm/kite-connect-mcp && cd kite-connect-mcp
python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytest # never touches the network: Kite is faked in-process
.venv/bin/ruff check . && .venv/bin/ruff format --check .
请参阅 CONTRIBUTING.md。安全问题报告:SECURITY.md。
免责声明
交易涉及风险。配置本软件后,它可以在真实经纪账户上执行真实订单。 AI 系统具有不可预测性:请设置较低的上限,使用模拟运行,并仔细检查你确认的内容。本软件按“现状”提供,不提供任何形式的保证(参见 LICENSE)。你有责任遵守 Zerodha 的条款、SEBI 的规则(包括静态 IP 和算法交易规则)以及交易所的数据政策。Kite Connect 数据不得再分发。
许可
MIT © 2026 Mayank Gupta
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。