证券交易API服务与投资组合管理系统

集成Zerodha Kite Connect交易API的MCP服务器和具有XIRR计算功能的多账户投资组合管理Web应用

  • by chandantherefore
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 chandantherefore/kite-mcp

使用说明

Kite MCP服务器+OneApp投资组合管理器

此存储库包含两个集成系统:

  1. Kite MCP服务器:模型上下文协议(MCP)服务器 Zerodha风筝连接 交易API
  2. OneApp投资组合经理:具有XIRR跟踪功能的多账户投资组合管理web应用程序

🚀 快速入门-MCP | 📖 MCP使用示例 | 🎯 投资组合应用指南 | 📊 项目状态


🎉 新:OneApp投资组合管理器

一个全面的投资组合管理系统,用于通过历史数据导入和XIRR计算跟踪多个Zerodha账户。

特性

  • 📊 多账户支持:在一个地方管理3个以上Zerodha帐户
  • 📥 CSV导入:上传交易簿和分类账数据(5年以上)
  • 💰 XIRR跟踪:计算投资组合和股票层面的年化回报率
  • 🔄 综合视图和个人视图:在所有帐户或特定帐户之间切换
  • 📈 持股分析:每只股票的详细损益和绩效指标
  • 🎨 现代用户界面:干净、响应迅速的界面,带有数据隐私切换功能

快速入门(投资组合应用程序)

# Start DDEV environment
ddev start

# Access the application
open https://oneapp.ddev.site

有关详细的设置说明:参见 GETTING_STARTED.md

完整的实施细节:参见 项目状态.md


Kite MCP服务器

特性

  • 🔐 认证:使用API密钥和访问令牌管理的安全登录流
  • 📊 市场数据:实时报价、OHLC、LTP和历史数据
  • 📈 交易:下单、修改和取消订单(常规、AMO、CO、冰山、拍卖)
  • 💼 投资组合:查看持有量、头寸和共同基金持有量
  • 🎯 GTT订单:下达和管理触发前有效的订单
  • 🔍 仪器搜索:搜索和筛选交易工具
  • 📉 订单管理:跟踪订单历史和交易

安装

先决条件

设置

  1. 克隆此存储库:
git clone <repository-url>
cd oneapp
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 测试安装:
npm test

你应该看到:”✅ 成功!MCP服务器已正确启动。"

配置

适用于克劳德桌面

将以下内容添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "kite": {
      "command": "node",
      "args": ["/absolute/path/to/oneapp/dist/index.js"]
    }
  }
}

对于其他MCP客户端

配置您的MCP客户端以运行:

node /path/to/oneapp/dist/index.js

用法

1.身份验证

首先,使用Kite Connect进行身份验证:

Use the login tool with your API key and API secret

服务器将返回一个登录URL。单击它以授权应用程序。授权后,您将被重定向到包含以下内容的URL request_token 参数。

Use the generate_session tool with the request_token

这将完成身份验证过程,并将您的访问令牌本地存储在 ~/.kite-mcp-credentials.json.

2.可用工具

通过身份验证后,您可以使用以下任何工具:

个人资料和帐户

  • get_profile:获取用户配置文件信息
  • get_margins:获取账户保证金详细信息

交易

  • 下单:下新订单
  • 修改订单:修改现有订单
  • 取消订单:取消订单
  • 获取订单:获取所有订单
  • 获取订单历史:获取特定订单的订单历史记录
  • 获取订单交易:获取特定订单的交易

投资组合

  • get_positions:获取当前职位
  • get_holdings:获取持股
  • get_mf_holdings:持有共同基金
  • get_trades:获取交易历史记录

市场数据

  • 搜索_仪器:搜索交易工具
  • get_quotes:获取仪器的详细报价
  • get_ohlc:获取OHLC数据
  • get_ltp:获取最后交易价格
  • 获取历史数据:获取历史蜡烛数据

GTT订单

  • 地点_订单:下GTT订单
  • 修改gtt_order:修改GTT订单
  • 删除gtt_order:删除GTT订单
  • get_gtts:获取所有有效的GTT订单

对话示例

示例1:检查轮廓和边距

User: What's my profile information?
Assistant: [Uses get_profile tool]

User: How much margin do I have?
Assistant: [Uses get_margins tool]

示例2:下市价单

User: Buy 10 shares of INFY at market price
Assistant: [Uses place_order tool with parameters:
  - variety: "regular"
  - exchange: "NSE"
  - tradingsymbol: "INFY"
  - transaction_type: "BUY"
  - quantity: 10
  - product: "CNC"
  - order_type: "MARKET"
]

示例3:获取市场数据

User: What's the current price of Reliance?
Assistant: [Uses search_instruments to find the instrument, then get_ltp]

User: Show me the OHLC data for TCS
Assistant: [Uses get_ohlc tool with instruments: ["NSE:TCS"]]

示例4:查看位置

User: What positions do I have open?
Assistant: [Uses get_positions tool]

User: Show me my holdings
Assistant: [Uses get_holdings tool]

安全

  • 凭据存储:API密钥和访问令牌存储在本地 ~/.kite-mcp-credentials.json
  • 从不提交凭据:The .gitignore 文件配置为排除凭据
  • API安全:遵循Zerodha关于API使用的安全最佳实践

发展

构建

npm run build

观看模式

npm run dev

项目结构

oneapp/                   # Root project directory
├── equity/               # Next.js portfolio management app
│   ├── app/              # Next.js app directory
│   ├── lib/              # Library files
│   ├── components/       # React components
│   └── package.json      # Next.js app dependencies
├── src/                  # MCP server source code
│   ├── index.ts          # Main MCP server implementation
│   └── config.ts         # Configuration helpers
├── dist/                 # Compiled JavaScript (generated, gitignored)
├── .ddev/                # DDEV configuration
├── docs/                 # Documentation
├── documentation/        # Additional documentation
├── package.json          # MCP server dependencies
├── tsconfig.json         # TypeScript configuration
└── README.md

API 参考

此服务器包装官方 kiteconnectjs 图书馆。有关API的详细文档,请参阅:

故障排除

“未通过身份验证”错误

如果您看到此错误,则需要进行身份验证:

  1. 打电话给 login 带有API密钥和机密的工具
  2. 遵循登录URL
  3. 呼叫 generate_session 使用请求令牌

会话已过期

Kite Connect访问令牌在整个交易日有效。如果您的会话到期:

  1. 通过访问登录URL获取新的请求令牌
  2. 呼叫 generate_session 使用新的请求令牌

API费率限制

Kite Connect有速率限制:

  • 每秒3个请求
  • 某些端点有特定的限制

服务器没有实现速率限制,因此请注意您的请求频率。

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

免责声明

这是Kite Connect的非官方MCP服务器。使用风险自负。在使用真钱之前,一定要用小额和纸笔交易进行测试。作者不对任何交易损失负责。

支持

有关Kite Connect API问题,请联系 Zerodha支持

对于MCP服务器问题,请在此存储库上打开问题。