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 开发工具链与所需依赖。
- JavaScript 版本(Node.js 环境)
-
服务器配置(示例,供 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 响应。