为服务器开发者准备
开始构建您自己的服务器,以便在Claude for Desktop和其他客户端中使用。
在本教程中,我们将构建一个简单的MCP天气服务器,并将其连接到主机Claude for Desktop。我们将从基本设置开始,然后逐步进阶到更复杂的用例。
我们将构建的内容
许多LLM目前无法获取天气预报和严重天气警报。让我们使用MCP来解决这个问题!
我们将构建一个服务器,暴露两个工具:get-alerts
和get-forecast
。然后我们将服务器连接到MCP主机(在本例中为Claude for Desktop):
核心MCP概念
MCP服务器可以提供三种主要类型的功能:
- 资源:可以被客户端读取的类似文件的数据(如API响应或文件内容)
- 工具:可以由LLM调用的函数(需用户批准)
- 提示:帮助用户完成特定任务的预编写模板
本教程将主要关注工具。
让我们开始构建我们的天气服务器吧!您可以在这里找到我们将要构建的完整代码。
前置知识
本快速入门假设您熟悉:
- Python
- 像Claude这样的LLM
系统要求
- 安装Python 3.10或更高版本。
- 您必须使用Python MCP SDK 1.2.0或更高版本。
设置您的环境
首先,让我们安装uv
并设置我们的Python项目和环境:
确保之后重启您的终端,以确保uv
命令被识别。
现在,让我们创建并设置我们的项目:
现在让我们深入构建您的服务器。
构建您的服务器
导入包并设置实例
将这些添加到您的weather.py
顶部:
FastMCP类使用Python类型提示和文档字符串自动生成工具定义,使创建和维护MCP工具变得简单。
辅助函数
接下来,让我们添加辅助函数,用于查询和格式化来自国家气象局API的数据:
实现工具执行
工具执行处理程序负责实际执行每个工具的逻辑。让我们添加它:
运行服务器
最后,让我们初始化并运行服务器:
您的服务器已完成!运行uv run weather.py
以确认一切正常。
现在让我们从现有的MCP主机Claude for Desktop测试您的服务器。
使用Claude for Desktop测试您的服务器
Claude for Desktop尚未在Linux上可用。Linux用户可以继续构建客户端教程,以构建一个连接到我们刚刚构建的服务器的MCP客户端。
首先,确保您已安装Claude for Desktop。您可以在这里安装最新版本。 如果您已经有Claude for Desktop,请确保它已更新到最新版本。
我们需要为您想要使用的MCP服务器配置Claude for Desktop。为此,请在文本编辑器中打开您的Claude for Desktop应用配置~/Library/Application Support/Claude/claude_desktop_config.json
。确保在文件不存在时创建该文件。
例如,如果您安装了VS Code:
然后,您将在mcpServers
键中添加您的服务器。只有至少一个服务器正确配置时,Claude for Desktop中的MCP UI元素才会显示。
在这种情况下,我们将像这样添加我们的单个天气服务器:
您可能需要在command
字段中放入uv
可执行文件的完整路径。您可以通过在MacOS/Linux上运行which uv
或在Windows上运行where uv
来获取此路径。
确保传入服务器的绝对路径。
这告诉Claude for Desktop:
- 有一个名为”weather”的MCP服务器
- 通过运行
uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py
来启动它
保存文件,并重启Claude for Desktop。
让我们开始构建我们的天气服务器吧!您可以在这里找到我们将要构建的完整代码。
前置知识
本快速入门假设您熟悉:
- Python
- 像Claude这样的LLM
系统要求
- 安装Python 3.10或更高版本。
- 您必须使用Python MCP SDK 1.2.0或更高版本。
设置您的环境
首先,让我们安装uv
并设置我们的Python项目和环境:
确保之后重启您的终端,以确保uv
命令被识别。
现在,让我们创建并设置我们的项目:
现在让我们深入构建您的服务器。
构建您的服务器
导入包并设置实例
将这些添加到您的weather.py
顶部:
FastMCP类使用Python类型提示和文档字符串自动生成工具定义,使创建和维护MCP工具变得简单。
辅助函数
接下来,让我们添加辅助函数,用于查询和格式化来自国家气象局API的数据:
实现工具执行
工具执行处理程序负责实际执行每个工具的逻辑。让我们添加它:
运行服务器
最后,让我们初始化并运行服务器:
您的服务器已完成!运行uv run weather.py
以确认一切正常。
现在让我们从现有的MCP主机Claude for Desktop测试您的服务器。
使用Claude for Desktop测试您的服务器
Claude for Desktop尚未在Linux上可用。Linux用户可以继续构建客户端教程,以构建一个连接到我们刚刚构建的服务器的MCP客户端。
首先,确保您已安装Claude for Desktop。您可以在这里安装最新版本。 如果您已经有Claude for Desktop,请确保它已更新到最新版本。
我们需要为您想要使用的MCP服务器配置Claude for Desktop。为此,请在文本编辑器中打开您的Claude for Desktop应用配置~/Library/Application Support/Claude/claude_desktop_config.json
。确保在文件不存在时创建该文件。
例如,如果您安装了VS Code:
然后,您将在mcpServers
键中添加您的服务器。只有至少一个服务器正确配置时,Claude for Desktop中的MCP UI元素才会显示。
在这种情况下,我们将像这样添加我们的单个天气服务器:
您可能需要在command
字段中放入uv
可执行文件的完整路径。您可以通过在MacOS/Linux上运行which uv
或在Windows上运行where uv
来获取此路径。
确保传入服务器的绝对路径。
这告诉Claude for Desktop:
- 有一个名为”weather”的MCP服务器
- 通过运行
uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py
来启动它
保存文件,并重启Claude for Desktop。
让我们开始构建我们的天气服务器吧!您可以在这里找到我们将要构建的完整代码。
前置知识
本快速入门假设您熟悉:
- TypeScript
- 像Claude这样的LLM
系统要求
对于TypeScript,请确保您安装了最新版本的Node。
设置您的环境
首先,如果您还没有安装Node.js和npm,请安装它们。您可以从nodejs.org下载。 验证您的Node.js安装:
对于本教程,您需要Node.js版本16或更高。
现在,让我们创建并设置我们的项目:
更新您的package.json以添加type: “module”和一个构建脚本:
在项目的根目录创建一个tsconfig.json
:
现在让我们深入构建您的服务器。
构建您的服务器
导入包并设置实例
将这些添加到您的src/index.ts
顶部:
辅助函数
接下来,让我们添加辅助函数,用于查询和格式化来自国家气象局API的数据:
实现工具执行
工具执行处理程序负责实际执行每个工具的逻辑。让我们添加它:
运行服务器
最后,实现主函数以运行服务器:
确保运行npm run build
以构建您的服务器!这是让您的服务器连接的一个非常重要的步骤。
现在让我们从现有的MCP主机Claude for Desktop测试您的服务器。
使用Claude for Desktop测试您的服务器
Claude for Desktop尚未在Linux上可用。Linux用户可以继续构建客户端教程,以构建一个连接到我们刚刚构建的服务器的MCP客户端。
首先,确保您已安装Claude for Desktop。您可以在这里安装最新版本。 如果您已经有Claude for Desktop,请确保它已更新到最新版本。
我们需要为您想要使用的MCP服务器配置Claude for Desktop。为此,请在文本编辑器中打开您的Claude for Desktop应用配置~/Library/Application Support/Claude/claude_desktop_config.json
。确保在文件不存在时创建该文件。
例如,如果您安装了VS Code:
然后,您将在mcpServers
键中添加您的服务器。只有至少一个服务器正确配置时,Claude for Desktop中的MCP UI元素才会显示。
在这种情况下,我们将像这样添加我们的单个天气服务器:
这告诉Claude for Desktop:
- 有一个名为”weather”的MCP服务器
- 通过运行
node /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather/build/index.js
来启动它
保存文件,并重启Claude for Desktop。
这是基于Spring AI MCP自动配置和启动启动器的快速入门演示。 要了解如何手动创建同步和异步MCP服务器,请查阅Java SDK服务器文档。
让我们开始构建我们的天气服务器吧! 您可以在这里找到我们将要构建的完整代码。
有关更多信息,请参阅MCP服务器启动启动器参考文档。 有关手动MCP服务器实现,请参阅MCP服务器Java SDK文档。
系统要求
- 安装Java 17或更高版本。
- Spring Boot 3.3.x或更高版本
设置您的环境
使用Spring Initializer引导项目。
您需要添加以下依赖项:
然后通过设置应用程序属性来配置您的应用程序:
服务器配置属性文档记录了所有可用的属性。
现在让我们深入构建您的服务器。
构建您的服务器
天气服务
让我们实现一个WeatherService.java,它使用REST客户端查询来自国家气象局API的数据:
@Service
注解会自动将服务注册到您的应用程序上下文中。
Spring AI的@Tool
注解使创建和维护MCP工具变得简单。
自动配置将自动将这些工具注册到MCP服务器。
创建您的启动应用程序
使用MethodToolCallbackProvider
工具将@Tools
转换为MCP服务器使用的可操作回调。
运行服务器
最后,让我们构建服务器:
这将在target
文件夹中生成一个mcp-weather-stdio-server-0.0.1-SNAPSHOT.jar
文件。
现在让我们从现有的MCP主机Claude for Desktop测试您的服务器。
使用Claude for Desktop测试您的服务器
Claude for Desktop尚未在Linux上可用。
首先,确保您已安装Claude for Desktop。 您可以在这里安装最新版本。 如果您已经有Claude for Desktop,请确保它已更新到最新版本。
我们需要为您想要使用的MCP服务器配置Claude for Desktop。
为此,请在文本编辑器中打开您的Claude for Desktop应用配置~/Library/Application Support/Claude/claude_desktop_config.json
。
确保在文件不存在时创建该文件。
例如,如果您安装了VS Code:
然后,您将在mcpServers
键中添加您的服务器。
只有至少一个服务器正确配置时,Claude for Desktop中的MCP UI元素才会显示。
在这种情况下,我们将像这样添加我们的单个天气服务器:
确保传入服务器的绝对路径。
这告诉Claude for Desktop:
- 有一个名为”my-weather-server”的MCP服务器
- 通过运行
java -jar /ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-weather-stdio-server-0.0.1-SNAPSHOT.jar
来启动它
保存文件,并重启Claude for Desktop。
使用Java客户端测试您的服务器
手动创建MCP客户端
使用McpClient
连接到服务器:
使用MCP客户端启动启动器
使用spring-ai-starter-mcp-client
依赖项创建一个新的启动启动器应用程序:
并设置spring.ai.mcp.client.stdio.servers-configuration
属性以指向您的claude_desktop_config.json
。
您可以重用现有的Anthropic Desktop配置:
当您启动客户端应用程序时,自动配置将从claude_desktop_config.json中自动创建MCP客户端。
有关更多信息,请参阅MCP客户端启动启动器参考文档。
更多Java MCP服务器示例
starter-webflux-server演示了如何使用SSE传输创建MCP服务器。 它展示了如何使用Spring Boot的自动配置功能定义和注册MCP工具、资源和提示。
让我们开始构建我们的天气服务器吧!您可以在这里找到我们将要构建的完整代码。
前置知识
本快速入门假设您熟悉:
- Kotlin
- 像Claude这样的LLM
系统要求
- 安装Java 17或更高版本。
设置您的环境
首先,如果您还没有安装java
和gradle
,请安装它们。
您可以从官方Oracle JDK网站下载java
。
验证您的java
安装:
现在,让我们创建并设置您的项目:
运行gradle init
后,您将看到用于创建项目的选项。
选择Application作为项目类型,Kotlin作为编程语言,Java 17作为Java版本。
或者,您可以使用IntelliJ IDEA项目向导创建Kotlin应用程序。
创建项目后,添加以下依赖项:
还要将以下插件添加到您的构建脚本:
现在让我们深入构建您的服务器。
构建您的服务器
设置实例
添加一个服务器初始化函数:
天气API辅助函数
接下来,让我们添加函数和数据类,用于查询和转换来自国家气象局API的响应:
实现工具执行
工具执行处理程序负责实际执行每个工具的逻辑。让我们添加它:
运行服务器
最后,实现主函数以运行服务器:
确保运行./gradlew build
以构建您的服务器。这是让您的服务器连接的一个非常重要的步骤。
现在让我们从现有的MCP主机Claude for Desktop测试您的服务器。
使用Claude for Desktop测试您的服务器
Claude for Desktop尚未在Linux上可用。Linux用户可以继续构建客户端教程,以构建一个连接到我们刚刚构建的服务器的MCP客户端。
首先,确保您已安装Claude for Desktop。您可以在这里安装最新版本。 如果您已经有Claude for Desktop,请确保它已更新到最新版本。
我们需要为您想要使用的MCP服务器配置Claude for Desktop。为此,请在文本编辑器中打开您的Claude for Desktop应用配置~/Library/Application Support/Claude/claude_desktop_config.json
。确保在文件不存在时创建该文件。
例如,如果您安装了VS Code:
然后,您将在mcpServers
键中添加您的服务器。只有至少一个服务器正确配置时,Claude for Desktop中的MCP UI元素才会显示。
在这种情况下,我们将像这样添加我们的单个天气服务器:
这告诉Claude for Desktop:
- 有一个名为”weather”的MCP服务器
- 通过运行
java -jar /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather/build/libs/weather-0.1.0-all.jar
来启动它
保存文件,并重启Claude for Desktop。
让我们开始构建我们的天气服务器吧!您可以在这里找到我们将要构建的完整代码。
前置知识
本快速入门假设您熟悉:
- C#
- 像Claude这样的LLM
- .NET 8或更高版本
系统要求
- 安装.NET 8 SDK或更高版本。
设置您的环境
首先,如果您还没有安装dotnet
,请安装它。您可以从官方Microsoft .NET网站下载。验证您的dotnet
安装:
现在,让我们创建并设置您的项目:
运行dotnet new console
后,您将看到一个新的C#项目。
您可以在您喜欢的IDE中打开该项目,例如Visual Studio或Rider。
或者,您可以使用Visual Studio项目向导创建C#应用程序。
创建项目后,添加NuGet包以用于Model Context Protocol SDK和托管:
现在让我们深入构建您的服务器。
构建您的服务器
打开项目中的Program.cs
文件,并将其内容替换为以下代码:
创建ApplicationHostBuilder
时,请确保使用CreateEmptyApplicationBuilder
而不是CreateDefaultBuilder
。这确保服务器不会向控制台写入任何其他消息。这仅适用于使用STDIO传输的服务器。
此代码设置了一个使用Model Context Protocol SDK创建MCP服务器的基本控制台应用程序,使用标准I/O传输。
天气API辅助函数
接下来,定义一个类,其中包含用于查询和转换来自国家气象局API的响应的工具执行处理程序:
运行服务器
最后,使用以下命令运行服务器:
这将启动服务器并监听标准输入/输出上的传入请求。
使用Claude for Desktop测试您的服务器
Claude for Desktop尚未在Linux上可用。
首先,确保您已安装Claude for Desktop。
您可以在这里安装最新版本。 如果您已经有Claude for Desktop,请确保它已更新到最新版本。
我们需要为您想要使用的MCP服务器配置Claude for Desktop。
为此,请在文本编辑器中打开您的Claude for Desktop应用配置~/Library/Application Support/Claude/claude_desktop_config.json
。
确保在文件不存在时创建该文件。
例如,如果您安装了VS Code:
然后,您将在mcpServers
键中添加您的服务器。
只有至少一个服务器正确配置时,Claude for Desktop中的MCP UI元素才会显示。
在这种情况下,我们将像这样添加我们的单个天气服务器:
这告诉Claude for Desktop:
- 有一个名为”weather”的MCP服务器
- 通过运行
dotnet run /ABSOLUTE/PATH/TO/PROJECT
来启动它
保存文件,并重启Claude for Desktop。
使用命令进行测试
让我们确保Claude for Desktop正在识别我们在weather
服务器中公开的两个工具。您可以通过寻找锤子图标来做到这一点:
点击锤子图标后,您应该会看到列出的两个工具:
如果您的服务器没有被Claude for Desktop识别,请查看故障排除部分以获取调试提示。
如果锤子图标已经显示,您现在可以通过在Claude for Desktop中运行以下命令来测试您的服务器:
- 萨克拉门托的天气怎么样?
- 德克萨斯州的活跃天气警报是什么?
由于这是美国国家气象局,因此查询仅适用于美国位置。
背后发生了什么
当您提出问题时:
- 客户端将您的问题发送给Claude
- Claude分析可用工具并决定使用哪一个(或多个)
- 客户端通过MCP服务器执行选定的工具
- 结果被发送回Claude
- Claude形成自然语言响应
- 响应显示给您!
故障排除
有关更高级的故障排除,请查看我们的调试MCP指南