使用说明

  • 项目简介

    • 该仓库实现了一个具备 MCP(Model Context Protocol)协议能力的后端服务,核心职责是向语言模型客户端提供可读的资源、可执行的工具以及可渲染的提示词等上下文服务,并通过 JSON-RPC/HTTP 方式与 MSP 客户端进行交互。代码同时支持 Java 主服务通过 HTTP 调用独立部署的 Python MCP Server 实现的工具,形成跨语言工具调用的能力。
  • 主要功能点

    • MCP 服务端实现与管理
      • MCPServer 接口定义了 ServerInfo、Tool、ToolResult 等协议要素,满足 MCP 的基本通信格式与工具执行能力的扩展。
      • HttpMcpServer 作为 MCP 客户端桥接实现,通过 HTTP 调用 Python MCP Server 提供的工具。
      • McpManager 提供 MCP Server 的注册、查询与工具执行分发等管理能力。
    • 跨语言工具桥接
      • McpToolProvider 暴露了 Java 实现的工具(如 calculator、get_time、readFile、writeFile 等),并通过 McpManager 将调用分发到相应 MCP Server。
    • 支持的工具与服务
      • 提供了用于天气、地点、时间、文件等外部服务的工具,以及对文本与 SQL 的处理能力。
    • 配套的 Python MCP 服务器
      • docs/mcp_server_http.py 提供了一个简单的 Flask HTTP API 实现,作为独立部署的 MCP 服务端,用于与 Java MCP 服务端进行交互与测试。
    • 自动注册与启动
      • McpAutoConfiguration 在应用启动后尝试连接并注册 Python MCP Server,形成自动化的 MCP 服务发现与注册流程。
    • 资源、Prompts、Knowledge 与 Memory
      • 系统内置的资源/知识向量化、Memory、Prompt 管理等核心组件与流程,支持 MCP 与 LangChain4j 等框架整合。
  • 安装步骤

    • 克隆并构建后端(Java)
      • 使用 Maven 构建并运行后端应用(需要 JDK 21 及 MySQL 等相关依赖)。应用启动后将自动尝试连接到 Python MCP Server(如可用),并注册 MCP 服务。
    • 启动 Python MCP Server(独立部署)
      • 按文档在 docs/mcp_server_http.py 下的脚本运行 Flask 服务器,默认端口 5001。确保 Python、Flask、所需依赖已正确安装。
    • 环境与配置
      • 如需 Docker、本地开发等方式,请根据 README 中提供的快速启动指南完成环境搭建与配置。
  • 服务器配置(MCP 服务器对接配置示例)

    • 服务器名称(serverName)对应运行中的 Python MCP Server 的实例标识,例如 python-mcp-server。
    • 启动命令(command)示例:运行独立的 Python MCP Server 的命令,例如 "python3 docs/mcp_server_http.py"。
    • 参数(args)示例: ["--port=5001"],用于指定 MCP Server 监听端口。
    • 以上字段用于 MCP 客户端在对接时的连接信息,客户端不需要额外配置即可与服务器建立连接。具体示例(以文字描述呈现,非代码块): { "serverName": "python-mcp-server", "command": "python3 docs/mcp_server_http.py", "args": ["--port=5001"] } 注解:MCP 客户端需要的仅是 serverName、command 与 args 的信息来启动并连接到 MCP 服务器;客户端对该配置的内部实现细节无须理解。
  • 基本使用方法

    • 启动顺序
      1. 启动独立的 Python MCP Server(docs/mcp_server_http.py)以提供工具服务。
      2. 启动 Java 后端应用(Robot 的 MCP 服务端实现)。
      3. Java 服务端在启动时会尝试自动注册 Python MCP Server,若成功则可通过 Java 提供的 MCP 功能进行工具调用等操作。
    • 客户端交互
      • 客户端通过 MCP 协议向 MCP 服务器请求工具、资源与提示词等能力;服务器返回标准的 ToolResult,并根据需要进行跨语言工具调用。
      • 机器人系统也提供了统一的对话/服务入口,支持跨语言工具协同、RAG、Prompt 热更新等能力。
  • 其他注意

    • 代码中包含了大量对 MCP 的实现、工具绑定、跨语言调用示例,适合在企业场景中做进一步扩展与整合。
    • 如需二次开发,请参考 McpManager、HttpMcpServer、McpAutoConfiguration、McpToolProvider 等核心组件的实现。

信息

分类

AI与计算