Java
MCP 服务器
学习如何实现和配置模型上下文协议 (MCP) 服务器
概述
MCP 服务器是模型上下文协议 (MCP) 架构中的基础组件,为客户端提供工具、资源和功能。它实现了协议的服务器端,负责:
- 暴露客户端可以发现和执行的工具
- 使用基于 URI 的访问模式管理资源
- 提供提示模板并处理提示请求
- 支持与客户端的功能协商
- 实现服务器端协议操作
- 管理并发客户端连接
- 提供结构化日志记录和通知
服务器支持同步和异步 API,允许在不同的应用场景中灵活集成。
服务器传输
MCP SDK 中的传输层负责处理客户端和服务器之间的通信。它提供了不同的实现来支持各种通信协议和模式。SDK 包含几个内置的传输实现:
创建基于进程的传输:
提供通过标准输入/输出流的双向 JSON-RPC 消息处理,支持非阻塞消息处理、序列化/反序列化和优雅关闭。
关键特性:
- 通过 stdin/stdout 的双向通信
- 基于进程的集成支持
- 简单的设置和配置
- 轻量级实现
服务器能力
服务器可以配置各种能力:
日志支持
服务器提供结构化日志记录能力,允许发送不同严重级别的日志消息给客户端:
客户端可以通过 mcpClient.setLoggingLevel(level)
请求控制接收的最低日志级别。低于设置级别的消息将被过滤掉。
支持的日志级别(按严重程度递增):DEBUG (0)、INFO (1)、NOTICE (2)、WARNING (3)、ERROR (4)、CRITICAL (5)、ALERT (6)、EMERGENCY (7)
工具注册
资源注册
提示注册
错误处理
SDK 提供了全面的错误处理机制,通过 McpError 类,涵盖协议兼容性、传输通信、JSON-RPC 消息、工具执行、资源管理、提示处理、超时和连接问题。这种统一的错误处理方法确保了在同步和异步操作中的一致和可靠的错误管理。