项目简介

LongPort OpenAPI MCP服务器是一个基于Model Context Protocol (MCP) 标准构建的应用后端,旨在为大型语言模型 (LLM) 客户端提供结构化的金融市场数据和交易功能。它利用LongPort OpenAPI SDK作为数据和交易接口的桥梁,将复杂的金融API操作抽象为易于LLM理解和调用的工具,从而简化LLM在金融交易和分析场景中的应用开发。

主要功能点

  • 资源管理 (Resources): 通过LongPort OpenAPI SDK访问和管理股票、期权、轮证等金融市场数据,例如:
    • 实时行情 (Quote)
    • 市场深度 (Depth)
    • 交易明细 (Trades)
    • K线数据 (Candlesticks)
    • 账户资产 (Account Balance)
    • 持仓信息 (Positions)
  • 工具注册 (Tools): 注册并暴露LongPort OpenAPI SDK提供的交易和行情查询功能作为工具 (Tools),允许LLM客户端通过JSON-RPC调用,例如:
    • 获取实时行情报价 (quote)
    • 查询股票基本信息 (static_info)
    • 提交/取消订单 (submit_order/cancel_order)
    • 查询账户余额 (account_balance)
  • Prompt 模板 (Prompts): 虽然仓库代码中未直接体现Prompt模板功能,但作为MCP服务器,可以扩展支持Prompt模板的定义和渲染,以支持更灵活的LLM交互模式。(需要用户自行扩展)
  • 多传输协议支持: 支持Stdio和SSE (Server-Sent Events) 两种传输协议,可以根据LLM客户端的需求选择合适的协议进行通信。

安装步骤

  1. 环境准备:
    • 确保已安装 Rust 运行环境 (Rust >= 1.56.1)。
    • 确保已安装 Node.js 和 npm (如果需要使用 Node.js SDK)。
    • 确保已安装 Python 3 (如果需要使用 Python SDK)。
    • 确保已安装 Java (如果需要使用 Java SDK)。
    • 确保已安装 C/C++ 编译环境 (如果需要使用 C/C++ SDK)。
    • 确保已安装 Go (如果需要使用 Go SDK)。
  2. 获取代码: 从GitHub仓库克隆代码到本地:
    git clone https://github.com/longportapp/openapi.git
    cd openapi/mcp
  3. 配置环境变量:
    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 修改 '.env' 文件,填入 LongPort OpenAPI 的 'APP_KEY','APP_SECRET' 和 'ACCESS_TOKEN'。
    • 可以根据需要配置 'LONGPORT_HTTP_URL','LONGPORT_QUOTE_WS_URL','LONGPORT_TRADE_WS_URL' 等环境变量。
  4. 编译服务器:
    • 使用 Rust 工具链编译 MCP 服务器:
      cargo build --release
    • 编译成功后,可执行文件位于 'target/release/longport-mcp'。

服务器配置 (MCP客户端配置)

MCP客户端需要配置连接到此MCP服务器的命令和参数。以下是基于仓库信息生成的配置示例 (JSON 格式):

{
  "serverName": "LongPort OpenAPI MCP Server",
  "command": "./longport-mcp",
  "args": [],
  "transport": "stdio",
  "protocol": "json-rpc"
}

参数说明:

  • 'serverName': MCP服务器的名称,可以自定义。
  • 'command': MCP服务器的可执行文件启动命令,根据实际路径调整。
  • 'args': 启动参数,默认为空数组,可以通过 '--sse' 参数启用 SSE 传输,并通过 '--bind' 参数指定 SSE 服务器绑定地址,例如 '["--sse", "--bind", "127.0.0.1:8001"]'。也可以使用 '--log-dir' 指定日志输出目录。
  • 'transport': 传输协议,'stdio' 代表标准输入输出,'sse' 代表 Server-Sent Events。
  • 'protocol': 协议类型,固定为 'json-rpc'。

如果使用 SSE 传输,MCP客户端配置示例:

{
  "serverName": "LongPort OpenAPI MCP Server (SSE)",
  "command": "./longport-mcp",
  "args": ["--sse", "--bind", "127.0.0.1:8000"],
  "transport": "sse",
  "protocol": "json-rpc",
  "sseUrl": "http://127.0.0.1:8000/sse"
}

增加 'sseUrl' 参数说明:

  • 'sseUrl': 当 'transport' 为 'sse' 时,需要配置 SSE 服务器的 URL 地址,确保与 '--bind' 参数指定的地址和端口一致。

基本使用方法

  1. 启动 MCP 服务器:

    • Stdio 传输: 在 'openapi/mcp' 目录下,运行编译生成的可执行文件:
      ./target/release/longport-mcp
      服务器将通过标准输入输出与MCP客户端通信。
    • SSE 传输: 使用 '--sse' 参数启动服务器,并指定绑定地址:
      ./target/release/longport-mcp --sse --bind 127.0.0.1:8000
      服务器将在指定的地址和端口监听SSE连接。
  2. 配置 MCP 客户端:

    • 根据 MCP 客户端的要求,配置服务器连接信息,包括命令、参数和传输协议等。
    • 确保客户端配置与服务器启动参数一致。
  3. LLM 应用调用:

    • 在 LLM 应用中,通过 MCP 客户端向 MCP 服务器发送 JSON-RPC 请求,调用已注册的工具 (Tools),例如 'longport.quote' 获取股票行情,'longport.submit_order' 提交交易订单等。
    • MCP 服务器将处理请求,调用 LongPort OpenAPI SDK 获取数据或执行交易操作,并将结果以 JSON-RPC 响应返回给 LLM 客户端。

注意: 本MCP服务器主要提供数据查询和交易执行的工具接口,Prompt 模板功能需要用户根据自身LLM应用的需求进行扩展实现。

信息

分类

商业系统