BCS MCP 服务端
- 项目简介
- 这是一个实现了 MCP(Model Context Protocol)后端服务器功能的应用,旨在为 LLM 客户端提供标准化的上下文信息和功能访问。服务器端通过 JSON-RPC 风格的协议与客户端通信,提供数据资源读取、工具执行,以及与提示模板相关的能力展示。当前实现包含了市场数据读取、私有数据访问、脚本执行、以及与外部系统(如 BCS API、嵌入向量服务)整合的多种工具。
- 主要功能点
- MCP 协议核心能力:实现对 MCP 客户端的工具发现、工具调用等请求的处理与响应(包括错误处理与结果返回)。
- 资源与数据访问:提供市场数据与私有数据的查询、聚合、最近值、以及快照等读取工具。
- 工具注册与执行:内置一组工具,如 market.fetch、private.fetch、bcs.* 系列操作、嵌入向量队列等,支持参数校验、执行日志与结果返回。
- 脚本与计算能力:支持脚本化计算(scripts.*),包括简单统计、技术指标计算与自定义公式执行。
- 与外部系统的集成:REST/WebSocket 数据抓取的后端对接(如 BCS API、Ollama 嵌入模型服务、行情和订单等流数据)。
- 本地化与安全性:提供简单的访问控制(MCP HTTP Token 选项)、日志记录、以及本地化的存储与查询策略,便于在本地或容器化环境中部署。
- 安装步骤
- 准备阶段:确保 Docker/Docker Compose 已安装(仓库提供了 compose.yml),并按照 README 中的说明准备好数据库、环境变量配置文件及所需的外部服务地址。
- 启动服务:使用仓库内的 Docker Compose 快速在本地离线环境启动服务,默认以 stdio 传输模式运行 MCP 服务器。
- 验证运行状态:启动后可通过健康接口或工具列表接口检查 MCP 服务是否正常响应。
- 服务器配置(MCP 客户端连接所需的配置示例,JSON 格式;此处为说明性文本,实际客户端无需提交代码)
{
"server_name": "bcs-mcp",
"transport": "stdio",
"host": "127.0.0.1",
"port": 3333,
"start_command": "docker-compose",
"start_args": ["-f", "compose.yml", "up", "-d"],
"notes": "服务器默认使用 stdio 传输;如需切换到其他传输模式,请参考 MCP 服务器实现的相关文档。",
"description": "该配置用于 MCP 客户端在本地或容器化环境中启动并连接到 BCS MCP 服务端。实际使用中,请确保环境变量与数据库、外部服务地址已正确配置。"
}
注释说明:
- server_name 对应仓库中 MCP 服务的名称,便于客户端在多服务器场景下识别。
- transport 指明客户端如何与服务器建立通信通道;本实现默认使用 stdio,便于本地集成和测试。
- start_command 与 start_args 描述了启动服务器的方式(以 Docker Compose 为例),用于自动化部署时的服务器启动过程。
- host 与 port 是若未来扩展为网络传输时的连接信息,当前以 stdio 为主时可忽略。
- 基本使用方法
- 启动与连接:按上述安装步骤启动服务器,MCP 客户端通过规定的传输方式与服务器建立连接,发起 ListTools/CallTool 请求。
- 工具发现与调用:通过 ListTools 接口获取可用工具清单,使用 CallTool 请求执行指定工具及参数,服务器返回执行结果或错误信息。
- 数据与脚本处理:通过 market/private 等工具读取数据、聚合、计算,或使用嵌入式脚本完成复杂运算与分析,结果可用于后续的 LLM 对话上下文中。
- 安全与监控:如需要,启用 MCP_HTTP_TOKEN 进行简单的 HTTP 层鉴权;日志级别可通过 LOG_LEVEL 控制,帮助调试与排错。