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 控制,帮助调试与排错。

服务器信息