项目简介
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客户端的需求选择合适的协议进行通信。
安装步骤
- 环境准备:
- 确保已安装 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)。
- 获取代码: 从GitHub仓库克隆代码到本地:
git clone https://github.com/longportapp/openapi.git cd openapi/mcp - 配置环境变量:
- 复制 '.env.example' 文件并重命名为 '.env'。
- 修改 '.env' 文件,填入 LongPort OpenAPI 的 'APP_KEY','APP_SECRET' 和 'ACCESS_TOKEN'。
- 可以根据需要配置 'LONGPORT_HTTP_URL','LONGPORT_QUOTE_WS_URL','LONGPORT_TRADE_WS_URL' 等环境变量。
- 编译服务器:
- 使用 Rust 工具链编译 MCP 服务器:
cargo build --release - 编译成功后,可执行文件位于 'target/release/longport-mcp'。
- 使用 Rust 工具链编译 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' 参数指定的地址和端口一致。
基本使用方法
-
启动 MCP 服务器:
- Stdio 传输: 在 'openapi/mcp' 目录下,运行编译生成的可执行文件:
服务器将通过标准输入输出与MCP客户端通信。./target/release/longport-mcp - SSE 传输: 使用 '--sse' 参数启动服务器,并指定绑定地址:
服务器将在指定的地址和端口监听SSE连接。./target/release/longport-mcp --sse --bind 127.0.0.1:8000
- Stdio 传输: 在 'openapi/mcp' 目录下,运行编译生成的可执行文件:
-
配置 MCP 客户端:
- 根据 MCP 客户端的要求,配置服务器连接信息,包括命令、参数和传输协议等。
- 确保客户端配置与服务器启动参数一致。
-
LLM 应用调用:
- 在 LLM 应用中,通过 MCP 客户端向 MCP 服务器发送 JSON-RPC 请求,调用已注册的工具 (Tools),例如 'longport.quote' 获取股票行情,'longport.submit_order' 提交交易订单等。
- MCP 服务器将处理请求,调用 LongPort OpenAPI SDK 获取数据或执行交易操作,并将结果以 JSON-RPC 响应返回给 LLM 客户端。
注意: 本MCP服务器主要提供数据查询和交易执行的工具接口,Prompt 模板功能需要用户根据自身LLM应用的需求进行扩展实现。
信息
分类
商业系统