交易协议服务器

Fyers MCP服务器是一个支持自动化OAuth认证的交易协议服务器,提供投资组合管理、订单处理和实时市场数据等核心交易功能,适用于算法交易和金融分析场景。

  • by DreamsOfImran
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 DreamsOfImran/fyers-mcp-server

使用说明

Fyers MCP 服务器

Fyers API v3 的 MCP(模型上下文协议)服务器,支持自动 OAuth 认证

一个全面的MCP(中间件通信协议)服务器,它使Claude Desktop能够通过安全、自动的认证流程与Fyers交易平台进行交互。支持所有主要的交易操作,包括投资组合管理、订单下达以及实时市场数据获取。

🎬 演示

✨ 特点

🔐(锁形符号,常用于表示保密、安全或需要密码解锁的含义) 智能认证

  • 一键OAuth流程 具备自动浏览器处理功能
  • 持久化令牌存储 在 .env 文件
  • 自动刷新 具备会话管理功能

📊(表格) 完整的交易工具包

  • 投资组合管理持仓、仓位、资金、概况
  • 订单管理下单、修改订单、取消订单
  • 市场数据多个股票代码的实时报价
  • 订单历史完整的订单和交易记录

🚀 表情符号“🚀”在中文中通常被翻译为“火箭”或直接保留原样作为表情使用,表示快速、前进或激动兴奋的情绪。所以,可以翻译为“火箭”或直接用“🚀”来表达。 生产就绪

  • 全面的错误处理 带有详细的错误信息
  • 类型安全 带有参数验证
  • 全面记录(或详尽记录) 用于调试
  • Claude Desktop 集成 配置简单

🚀 快速入门

先决条件

1. 安装

# Clone the repository
git clone https://github.com/quantabox/fyers-mcp-server.git
cd fyers-mcp-server

# Install dependencies using uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# Or install with pip
pip install .

2. 获取Fyers API凭据

  1. 创建Fyers API应用:

    • 参观 Fyers API控制面板
    • 创建一个带有重定向URI的新应用: http://localhost:8080/
    • 记下你的 App ID 并且 Secret Key
  2. 配置环境:

    cp .env.example .env
    

    编辑 .env 文件:

    FYERS_CLIENT_ID=YOUR_APP_ID-100     # e.g., ABC123XYZ-100
    FYERS_SECRET_KEY=YOUR_SECRET_KEY    # Secret from Fyers app
    FYERS_REDIRECT_URI=http://localhost:8080/
    

3. 配置Claude桌面版

在您的Claude桌面配置文件中添加:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "fyers-mcp-server": {
      "command": "uv",
      "args": [
        "run", 
        "--directory",
        "/path/to/fyers-mcp-server",
        "python",
        "fyers_mcp_complete.py"
      ],
      "env": {
        "PYTHONWARNINGS": "ignore"
      }
    }
  }
}

4. 首次运行

  1. 重启Claude桌面版
  2. 认证在Claude中,类型: authenticate
  3. 浏览器将打开 → 登录到Fyers → 自动获取令牌
  4. 开始交易所有11个工具现已全部可用!

🛠️ 可用工具

身份验证与配置文件

  • authenticate() 一键OAuth认证
  • check_auth_status() - 验证当前身份认证
  • get_profile() - 用户个人资料信息

投资组合与基金

  • get_funds() - 账户余额和保证金详情
  • get_holdings() - 持仓及损益(P&L)
  • get_positions() - 当前交易头寸

订单与交易

  • place_order(symbol, quantity, order_type, side, ...) - 下新订单
  • modify_order(order_id, quantity, limit_price, ...) - 修改现有订单
  • cancel_order(order_id) - 取消待处理订单
  • get_orders() - 订单历史和状态

市场数据

  • get_quotes(symbols) - 多个股票代码的实时报价

📖 使用示例

投资组合分析

# Check account balance
get_funds()

# View all holdings with P&L
get_holdings()

# Check current positions
get_positions()

订单管理

# Place a market order
place_order("NSE:SBIN-EQ", 10, "MARKET", "BUY")

# Place a limit order
place_order("NSE:RELIANCE-EQ", 5, "LIMIT", "BUY", limit_price=2500)

# Modify an order
modify_order("ORDER_ID", quantity=15, limit_price=2550)

# Cancel an order
cancel_order("ORDER_ID")

市场数据

# Get live quotes
get_quotes("NSE:SBIN-EQ,NSE:RELIANCE-EQ,NSE:TCS-EQ")

🔧 配置选项

订单类型

  • MARKET - 市价单(立即执行)
  • LIMIT - 限价单(以特定价格执行)
  • STOP - 止损单
  • STOPLIMIT - 止损限价单

产品类型

  • MARGIN - 保证金交易(日内杠杆交易)
  • CNC - 现货提货(送货)
  • INTRADAY - 日内交易
  • BO - 括号订单(Bracket Order)
  • CO - 覆盖订单(或对冲订单)

有效性选项

  • DAY - 适用于当前交易日
  • IOC - 立即执行或取消
  • GTD - 直至当日有效(或“有效期至当日”)

🐛 故障排除

常见问题

1. 认证失败

# Check credentials in .env file
cat .env | grep FYERS

# Verify app configuration at https://myapi.fyers.in/dashboard/

2. Claude 桌面连接问题

# Test MCP server directly
cd /path/to/fyers-mcp-server
uv run python fyers_mcp_complete.py

# Check Claude Desktop logs (macOS)
tail -f ~/Library/Logs/Claude/mcp.log

3. 订单下达错误

  • 验证符号格式: NSE:SYMBOL-EQ 为了公平/股权
  • 查看市场交易时间(印度标准时间上午9:15至下午3:30)
  • 确保有足够的资金/保证金

调试模式

启用详细日志记录:

export LOG_LEVEL=DEBUG
uv run python fyers_mcp_complete.py

🚧 开发中

项目结构

fyers-mcp-server/
├── fyers_mcp_complete.py    # Main MCP server
├── pyproject.toml          # Dependencies
├── .env.example           # Environment template
├── claude_config.json     # Claude Desktop config
└── README.md             # This file

添加新功能

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建特性分支: git checkout -b feature/new-tool
  3. 添加MCP工具使用 @mcp.tool() 装饰器
  4. 使用Claude桌面版进行测试
  5. 提交拉取请求

测试

# Install development dependencies
uv sync --dev

# Run tests
uv run pytest

# Type checking
uv run mypy fyers_mcp_complete.py

API 参考

认证流程

graph TD
    A[Claude: authenticate] --> B[Generate Auth URL]
    B --> C[Open Browser]
    C --> D[User Login]
    D --> E[Auth Code Capture]
    E --> F[Exchange for Token]
    F --> G[Store in .env]
    G --> H[Ready for Trading]

错误处理

所有函数都返回标准化的响应:

  • ✅ 成功提供包含相关数据的明确确认
  • ❌(表示错误或不正确) 错误详细的错误信息,附带故障排除提示

🤝 贡献

我们欢迎投稿!请参阅我们的 贡献指南 详情见下。

贡献领域

  • WebSocket实时数据流
  • 高级订单类型(OCO,冰山订单)
  • 投资组合分析与报告
  • 期权链分析工具
  • 风险管理功能

📄 许可证

这个项目遵循MIT许可证授权——详见 许可证 文件中包含详细信息。

⚠️ 免责声明

这款软件仅供教育和开发使用。交易涉及财务风险。用户需对其交易决策负责,并应在实际交易前在模拟环境中进行充分测试。

🔗 链接

📊 状态

  • 当前版本1.0.0
  • API 兼容性Fyers API v3.1.7
  • Python 支持3.10+
  • 可用工具11月11日 ✅
  • 生产就绪是 ✅

Made with ❤️ for the trading community
Enable algorithmic trading with Claude's intelligence