Token导航 LogoToken导航TokenDH.com
Langchain4j Micronaut MCP logo
AI代理未说明官方级别未说明来源级核验

Langchain4j Micronaut MCP

MCP Server

一个基于Micronaut框架实现的简单MCP服务器,提供城市天气数据查询功能,支持MCP协议的子集操作。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
位置天气Java本地部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

glaforge

提供方

glaforge

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

用Micronaut实现的简单MCP服务器

该项目实现了一个简单的MCP(模型上下文协议)服务器, 使用HTTP SSE传输,使用 微型宇航员.

测试类使用 LangChain4j的MCP客户端 支持调用Micronaut MCP服务器并与之交互。

它做什么

服务器提供虚拟天气信息☀️ 对于一个特定的城市。

MCP服务器实现了MCP协议的一个子集,以处理对天气数据的请求。

特别是,它实现了以下操作:

  • initialize
  • notifications/initialize
  • tools/list
  • tools/call

所有MCP协议类都可以在 mcp.server.model 包裹。

有两个主要控制器协同工作,通过HTTP/SSE实现MCP通信的服务器端:

SseController (服务 /mcp/sse):

此控制器充当服务器发送事件(SSE)连接的入口点。 当MCP客户端想要连接时,它首先向此端点发出HTTP GET请求(/mcp/sse).

它是如何工作的:

  • 它被标注为 @Controller("/mcp/sse").
  • 它只有一种方法 connectSse() 注释如下 @Get(produces = MediaType.TEXT_EVENT_STREAM).此消息会告诉Micronaut GET请求 /mcp/sse 应该用这种方法处理,并且响应将是SSE流。
  • 它注入 SseBroadcaster 单生豆。
  • connectSse() 方法只是调用 broadcaster.getEventsPublisher() 并返回结果。

它的作用:

  • 它与客户端建立持久的SSE连接。
  • 它将实际通过此连接向SseBroadcaster发送事件的责任委托给SseBroadcast。广播程序确保发送的第一个事件告诉客户端在哪里发送POST请求(端点事件),然后发送后续响应或通知。

PostController (/mcp/post):

此控制器在建立SSE连接后处理客户端发送的传入MCP命令请求。客户端学习此控制器的路径(/mcp/post)从通过SseController接收到的初始端点事件开始。

它是如何工作的:

  • 它被标注为 @Controller("/mcp/post").
  • 它有一种方法 handleMcpPostRequest(@Body McpRequest request) 注释如下 @Post(consumes = MediaType.APPLICATION_JSON)这意味着它处理HTTP POST请求 /mcp/post 其中正文包含符合以下条件的JSON数据 McpRequest 结构。
  • 它还注入了 SseBroadcaster.

内部 handleMcpPostRequest:

  • 它将JSON请求体反序列化为 McpRequest 对象。
  • 它调用一个私有助手方法 processRequest(request) 根据 request.method() (例如。, initialize, tools/list, tools/call).
  • processRequest 生成一个 McpResponse 包含结果(或错误)的对象,或 null 通知)。
  • 如果 processRequest 返回响应对象, handleMcpPostRequest 电话 broadcaster.broadcastResponse(mcpResponse)这通过先前建立的SSE连接将实际的MCP结果发送回客户端。
  • 最后,它立即返回 HttpResponse.ok() 到原始POST请求。此HTTP响应只是确认服务器收到了POST请求;它不包含实际的MCP结果。

它的作用:

  • 它从MCP客户端接收特定命令(如“列出可用工具”或“执行天气工具”)。它处理这些命令,生成相应的MCP响应,并使用 SseBroadcaster 通过最初由管理的SSE通道异步发送该响应 SseController.

SseBroadcaster

SseBroadcaster 管理SSE流,发送初始配置(端点事件),并为服务器的其他部分(如 PostController)通过该流将JSON格式的响应和通知发送回连接的客户端。

McpWeatherClientTest 客户端

McpWeatherClientTest 类是一个集成测试,用于验证MCP服务器的功能。

您可以使用以下命令运行测试类 ./gradlew test.

它的作用:

  • 它启动本地服务器(通过Micronaut)。
  • 它设置了一个LangChain4j AI助手(WeatherAssistant)配置为使用Google Cloud Vertex AI的Gemini 2.0 Flash模式。
  • 它配置此助手以查找和使用本地服务器通过特定协议(MCP over HTTP/SSE)提供的工具。
  • 它测试客户端是否能正确发现工具。
  • 它测试助手在被问及天气时是否正确使用远程天气工具。
  • 它测试助手是否正确避免使用天气工具来回答简单的问候提示等无关的问题。

______________________________________________________________________

\[!注意\] 这个项目不是谷歌的官方项目。

目录标签

目录标签

位置天气Java本地部署MCP协议天气数据服务器HTTPSSEMicronaut

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP