返回市场
风筝-MCP服务器

风筝-MCP服务器

作者:zerodha193 星标更新:2025-09-24

项目介绍

Kite MCP Server

一个提供给AI助手安全访问Kite Connect交易API的Model Context Protocol (MCP)服务器。此服务器使AI代理能够通过标准化接口检索市场数据、管理投资组合并执行交易。

交易者快速指南

想用AI与您的Kite交易账户结合吗?只需在您的AI客户端配置中添加https://mcp.kite.trade/mcp。无需安装或API密钥——它是托管并随时可用的。

功能

  • 投资组合管理:查看持仓、仓位、保证金及共同基金投资
  • 订单管理:下单、修改和取消订单,并拥有完整的订单历史记录
  • GTT订单:触发前有效订单管理
  • 市场数据访问:实时报价、历史数据、OHLC数据
  • 分页支持:大型数据集(持仓、订单、交易)的自动分页
  • 全面覆盖:实现大多数Kite Connect API端点
  • 多种部署模式:标准I/O、HTTP、SSE以及混合模式(生产)
  • 内置文档:运行时自动提供的文档

快速开始

托管版本(推荐)

最简单的方式是使用我们托管的版本mcp.kite.trade/mcp/sse端点都可用——您无需安装或API密钥。

快速设置:在您的MCP配置中添加以下内容:

https://mcp.kite.trade/mcp

推荐:使用新的HTTP模式(/mcp端点)以获得更好的性能和可靠性。您可以使用mcp-remote连接到托管服务器。

对于自托管并使用自己的API密钥,请遵循下面的安装步骤。

先决条件

  • 对于托管版本(推荐):无需任何操作!只需使用https://mcp.kite.trade/mcp
  • 对于自托管:Go 1.21或更高版本
  • 对于自托管:有效的Kite Connect API凭证

开始使用

git clone https://github.com/zerodha/kite-mcp-server
cd kite-mcp-server

配置

创建一个包含您的Kite Connect凭证的.env文件:

KITE_API_KEY=your_api_key
KITE_API_SECRET=your_api_secret
APP_MODE=http
APP_PORT=8080
APP_HOST=localhost

您也可以使用提供的justfile来初始化配置。

just init-env

运行服务器

# 构建并运行
go build -o kite-mcp-server
./kite-mcp-server

# 或直接运行
go run main.go

服务器启动后,将在http://localhost:8080/提供状态页面。

客户端集成

设置指南

Claude Desktop (托管模式)

对于托管版本,在您的Claude Desktop配置中添加(~/.config/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "kite": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.kite.trade/mcp"]
    }
  }
}

Claude Desktop (HTTP模式)

在您的Claude Desktop配置中添加(~/.config/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "kite": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:8[080/mcp", "--allow-http"],
      "env": {
        "APP_MODE": "http",
        "KITE_API_KEY": "your_api_key",
        "KITE_API_SECRET": "your_api_secret"
      }
    }
  }
}

Claude Desktop (SSE模式)

在您的Claude Desktop配置中添加(~/.config/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "kite": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:8080/sse", "--allow-http"],
      "env": {
        "APP_MODE": "sse",
        "KITE_API_KEY": "your_api_key",
        "KITE_API_SECRET": "your_api_secret"
      }
    }
  }
}

Claude Desktop (标准I/O模式)

对于自托管安装,首先构建二进制文件:

go build -o kite-mcp-server

然后在您的Claude Desktop配置中添加(~/.config/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "kite": {
      "command": "/full/path/to/your/kite-mcp-server",
      "env": {
        "APP_MODE": "stdio",
        "KITE_API_KEY": "your_api_key",
        "KITE_API_SECRET": "your_api_secret"
      }
    }
  }
}

重要:使用您构建的二进制文件的完整绝对路径。例如:

  • /home/username/kite-mcp-server/kite-mcp-server (Linux)
  • /Users/username/kite-mcp-server/kite-mcp-server (macOS)
  • C:\Users\username\kite-mcp-server\kite-mcp-server.exe (Windows)

其他MCP客户端

对于其他兼容MCP的客户端,使用托管端点https://mcp.kite.trade/mcpmcp-remote一起使用,或者配置您的客户端直接连接到HTTP端点。

可用工具

设置与认证

  • login - 登录Kite API并生成授权链接

市场数据

  • get_quotes - 获取实时市场报价
  • get_ltp - 获取最后成交价
  • get_ohlc - 获取OHLC数据
  • get_historical_data - 历史价格数据
  • search_instruments - 搜索交易工具

投资组合与账户

  • get_profile - 用户资料信息
  • get_margins - 账户保证金
  • get_holdings - 投资组合持仓
  • get_positions - 当前仓位
  • get_mf_holdings - 共同基金持仓

订单与交易

  • place_order - 下新订单
  • modify_order - 修改现有订单
  • cancel_order - 取消订单
  • get_orders - 列出所有订单
  • get_trades - 交易历史
  • get_order_history - 订单执行历史
  • get_order_trades - 获取特定订单的交易

GTT订单

  • get_gtts - 列出GTT订单
  • place_gtt_order - 创建GTT订单
  • modify_gtt_order - 修改GTT订单
  • delete_gtt_order - 删除GTT订单

API覆盖

此服务器实现了大多数Kite Connect API端点,并提供了额外的工具。

开发

开发环境

此项目包括一个Nix flake用于一致的开发环境:

# 进入开发shell
nix develop

# 或使用direnv
direnv allow

使用Just命令

安装Just以方便开发命令:

just build      # 构建项目
just run        # 运行服务器
just test       # 运行测试
just lint       # 格式化和检查代码
just coverage   # 生成覆盖率报告

运行测试

需求

  • Go 1.23+,带有GOEXPERIMENT=synctest(用于依赖时间的测试)
# 运行所有测试
just test

# 带有覆盖率
just coverage

# 带有竞态检测器
just test-race

# 直接使用go命令(如果您更喜欢)
CGO_ENABLED=0 GOEXPERIMENT=synctest go test -v ./...

Synctest集成

此项目需要Go的synctest包用于依赖时间的测试(会话过期、时钟偏移容忍)。所有时间测试均使用synctest.Run()进行:

  • 快速执行:依赖时间的测试在毫秒内完成,而不是几分钟
  • 确定性计时:没有基于时间的测试失败
  • 可控时间:测试可以推进时间而无需实际延迟

justfile自动在所有测试命令中包含GOEXPERIMENT=synctest

配置选项

环境变量默认值描述
KITE_API_KEY必需您的Kite Connect API密钥
KITE_API_SECRET必需您的Kite Connect API密钥
APP_MODEhttp服务器模式:stdiohttpssehybrid
APP_PORT8080服务器端口(HTTP/SSE/混合模式)
APP_HOSTlocalhost服务器主机(HTTP/SSE/混合模式)
EXCLUDED_TOOLS(空)不注册的工具名称的逗号分隔列表

注意:在生产中,我们使用混合模式,该模式同时支持/sse/mcp端点,使得HTTP和SSE协议对不同客户端需求都可用。

工具排除

您可以通过设置EXCLUDED_TOOLS环境变量为逗号分隔的工具名称列表来排除特定工具。这对于创建只读实例非常有用。

示例

EXCLUDED_TOOLS=place_order,modify_order,cancel_order

托管版本在mcp.kite.trade上为了安全起见排除了潜在破坏性的交易操作。要访问其他操作,您可以生成自己的API密钥并在本地运行服务器。

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 为新功能添加测试
  5. 运行just lintjust test
  6. 提交拉取请求

许可证

本项目根据MIT许可证发布——详情请参阅LICENSE文件。

支持

对于错误和一般建议,请使用GitHub讨论。

对于Kite Connect API文档,请访问:https://kite.trade/docs/connect/