使用说明
人工智能通讯社的MCP工具服务器
该项目是一个专用的、独立的Spring Boot微服务,充当 工具提供者 我们的主要AI聊天应用程序。它使用Spring AI模型上下文协议(MCP)来公开一组函数(工具),我们的AI代理可以调用这些函数与现实世界进行交互。
该服务器的主要职责是抽象出调用外部API的复杂性,为我们的AI代理提供干净、安全和一致的接口。
核心技术
- Spring Boot 3和Java 17+
- 项目反应堆(WebFlux): 用于完全无堵塞、反应性的基础。
- Spring AI MCP服务器: 项目的核心,使用
spring-ai-mcp-server-webflux-spring-boot-starter通过Streamable HTTP传输自动公开工具。 - Google自定义搜索API: 我们工具的外部数据源。
外露工具
此服务器向任何连接的MCP客户端公开以下工具:
| 工具名称 | 描述 | 实施细节 |
|---|---|---|
get-latest-news |
获取特定主题的最新突发新闻头条。非常适合研究时事。 | 使用主题调用Google自定义搜索API,按日期排序,并将格式化的“标题-代码段”字符串流式传输回代理。 |
get-trending-topics |
获取社交媒体上当前热门话题或标签的列表,以使内容具有相关性。 | 聪明地在谷歌上搜索“热门标签”,然后使用正则表达式从搜索结果中解析并提取标签列表。 |
设置和配置
若要运行此服务器,您必须提供Google自定义搜索API的凭据。
1.先决条件
您需要两个来自Google Cloud Platform的凭据:
- API密钥: 在中创建一个 谷歌云控制台.
- 自定义搜索引擎ID(CX): 在中创建搜索引擎 可编程搜索引擎控制面板. 重要提示: 在设置中,启用“搜索整个网络”。
2.配置
获得凭据后,将其添加到 src/main/resources/application.properties 文件。
# Server Configuration
server.port=8081
spring.ai.mcp.path=/mcp
# --- Google Custom Search API Credentials ---
# Replace with your actual API Key and Search Engine ID (CX)
google.api.key=YOUR_GOOGLE_API_KEY
google.api.cx=YOUR_SEARCH_ENGINE_ID
运行应用程序
您可以使用标准的Spring Boot Maven命令运行服务器:
./mvnw spring-boot:run
运行后,服务器将在以下时间可用 http://localhost:8081 MCP端点将在以下时间激活 http://localhost:8081/mcp.
与主聊天应用程序集成
此服务器是我们主服务器的“工具棚” chat-app (“工厂”)。这 chat-app 连接到此服务器以使用其工具。
graph TD
subgraph The Factory (chat-app)
A[AI Agent]
end
subgraph The Tool Shed (mcp-server)
B(MCP Endpoint `/mcp`)
C[get-latest-news Tool]
D[get-trending-topics Tool]
end
subgraph The Real World
E[Google Search API 🌐]
end
A -- "I need to use 'get-latest-news'!" --> B;
B --> C;
C -- "Calls for data" --> E;
E -- "Returns search results" --> C;
C -- "Streams formatted headlines" --> B;
B -- "Streams results back to agent" --> A;
style A fill:#90EE90,stroke:#333,stroke-width:2px
style B fill:#87CEEB,stroke:#333,stroke-width:2px
这 chat-app 在其 application.properties:
# In chat-app/src/main/resources/application.properties
spring.ai.mcp.streamable.http.client.base-url=http://localhost:8081/mcp
如何添加新工具
MCP框架使添加新工具变得非常简单:
- 打开
McpServerTools.java文件。 - 添加执行所需动作的新公共方法(例如。,
getWeather(String location)). - 用以下内容注释该方法
@Tool并提供name和description描述至关重要,因为它是AI代理用来决定是否调用您的工具的工具。 - 重新启动服务器。
新工具将由自动发现 chat-app 在下次启动时,无需在客户端进行任何更改
