AI新闻工具服务器

一个基于Spring Boot的微服务,为AI聊天应用提供新闻和趋势话题获取工具,通过Google Custom Search API实现数据查询。

  • by TheHyperEngineer
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 TheHyperEngineer/news-mcp-server

使用说明


人工智能通讯社的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的凭据:

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框架使添加新工具变得非常简单:

  1. 打开 McpServerTools.java 文件。
  2. 添加执行所需动作的新公共方法(例如。, getWeather(String location)).
  3. 用以下内容注释该方法 @Tool 并提供 name 和 description描述至关重要,因为它是AI代理用来决定是否调用您的工具的工具。
  4. 重新启动服务器。

新工具将由自动发现 chat-app 在下次启动时,无需在客户端进行任何更改