MCP 服务器实现示例(JavaScript 与 Java)

使用说明(Markdown格式)

  • 项目简介

    • 该仓库包含基于 Model Context Protocol(MCP)的服务器实现示例,覆盖 JavaScript 与 Java 语言两种实现,演示如何定义服务器名称、版本、注册工具、实现工具调用、提供能力,以及通过标准的 MCP JSON-RPC 通信与客户端对接。
  • 主要功能点

    • 接收并处理 MCP 请求与响应,遵循 MCP 标准的 JSON-RPC 形式。
    • 注册并暴露 Tools(工具),并为工具定义输入输出约束(输入模式/描述)。
    • 提供并管理服务器能力(如工具能力、日志等)。
    • 支持通过标准传输(如 STDIO)与客户端通信,便于在不同环境中接入。
    • 提供多语言实现示例(JavaScript 与 Java),展示在同一仓库中对 MCP 的多实现路径。
    • 基本的工具调用回调实现,演示服务端如何执行外部动作并返回结果。
  • 安装步骤

    • JavaScript 版本(Node.js 环境)
      • 安装 Node.js 与 npm。
      • 进入 javascript/ch04 目录,启动 MCP 服务器脚本,例如 node ch04/mcp-selenium-server.js。
    • Java 版本
      • 使用 Maven/Gradle 等构建工具构建 Java 项目,编译并运行对应的主类(如 McpSeleniumServer)。
      • 运行前确保本地环境具备 Java 开发工具链与所需依赖。
  • 服务器配置(示例,供 MCP 客户端参考)

    • 说明:以下配置用于 MCP 客户端连接 MCP 服务器,无需客户端实现代码,仅提供连接信息。
    • 示例配置(针对 JS 版本的 Selenium MCP 服务器): { "server_name": "mcp-selenium-server", "command": "node", "args": ["javascript/ch04/mcp-selenium-server.js"], "transport": "stdio", "capabilities": { "tools": true, "logging": true } }
    • 备注:该配置中 server_name 与实现类在代码中定义一致;command 与 args 对应运行服务器的入口命令与脚本路径;transport 指定通信传输方式;capabilities 声明服务器支持的能力。
  • 基本使用方法

    • 启动服务器后,MCP 客户端可以通过 MCP 标准的请求格式向服务器请求资源、调用工具、获取提示等。
    • 客户端与服务器之间通过指定传输通道(如 STDIO)进行 JSON-RPC 的请求/响应交互。
    • 服务器在执行工具调用时,按照注册时的回调实现返回结果,客户端可据此进行后续交互。
  • 运行与验证

    • 使用示例 MCP 客户端向已启动的服务发送请求,验证工具调用、能力查询、以及资源渲染等核心能力是否按照 MCP 协议返回正确的 JSON-RPC 响应。

服务器信息