返回 MCP 目录
public公开dns本地运行

mcp-weather-stdio-server

一个基于Java和Spring Boot的极简MCP服务器示例,通过调用高德天气API实现天气查询功能,支持AI客户端通过MCP协议获取天气数据。

article

README

🚀 简单的MCP服务器

本项目是一个示例项目,以极简的方式展示了如何构建一个MCP Server。借助该MCP Server,能实现天气查询功能,为用户提供实时和未来的天气信息。

🚀 快速开始

效果展示

Cherry Studio的使用示例

如上图所示,使用流程如下:

  • 用户询问:"西安今天需要穿棉袄吗?"
  • AI自动判断是否需要调用天气MCP Server
  • AI根据MCP Server的要求,将西安的经纬度信息提供给MCP Server
  • MCP Server内部调用了高德提供的天气查询API,并将结果返回给AI
  • AI对天气信息进行汇总整理后,输出给用户

环境准备

MCP Server的构建与运行

  • Java 17或更高版本
  • Maven 3.6或更高版本
  • 对Spring Boot和Spring AI概念的理解
  • (可选)Claude Desktop等AI助手工具的使用

MCP Client和大模型

支持MCP协议的任何AI对话客户端程序均可,例如:Cline、Continue、Claude Desktop等。本文中使用的是Cherry Studio。

Cherry Studio 是一个AI对话客户端,支持众多国内外的大模型提供商,如硅基流动、阿里云百炼、OpenAI等,每个提供商都有多个大模型服务,功能和性能各有差异,涵盖免费和收费选项。

本文使用的是硅基流动提供的Qwen2.5-7B-Instruct模型。请先注册硅基流动账户,申请API密钥,并在Cherry Studio中进行配置。

⚠️ 重要提示

请选择支持Function Call功能的大模型(Cherry Studio中标有🔧图标的大模型),例如:Qwen2.5-7B-Instruct

大模型和密钥的配置

高德开放平台API密钥

从高德开放平台申请Web API密钥(key)

构建与运行

MCP服务器使用STDIO传输模式,通常由客户端自动启动。要构建server jar,可执行以下命令:

./mvnw clean install -DskipTests

构建完成后,在项目路径下会生成target/mcp-weather-stdio-server-0.0.1-SNAPSHOT.jar文件。

安装与使用

在Cherry Studio中打开设置 > MCP服务器,添加MCP服务器,如下图所示:

添加MCP服务器

复制配置参数

具体配置信息如下:

  • 名称:随意填写
  • 类型:STDIO
  • 命令:java
  • MCP配置参数(按截图复制粘贴复制配置参数):
{
    "servers": [
        {
            "id": "mcp-server-id",
            "name": "MCP Server Name",
            "description": "MCP Server Description",
            "type": "stdio",
            "command": "java -jar target/mcp-weather-stdio-server-0.0.1-SNAPSHOT.jar"
        }
    ]
}

使用方法

在Cherry Studio中开启MCP功能,按照以下步骤操作:

⚠️ 重要提示

  • 选择支持Function Call的大模型
  • 确保所有依赖项和配置正确无误
  • 完成构建后运行服务器

✨ 主要特性

  • 天气查询:使用高德开放平台提供的天气查询API实现MCP Server,可以获取实时和未来天气信息。
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端