关于配置mcp服务端sse-message-endpoint和sse-endpoint的注意点
在spring ai配置mcp服务时,这里的pom配置如下(alibaba的配置不用管):
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ai</groupId> <artifactId>mcp-server</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.9</version> </parent> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>1.1.8</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-bom</artifactId> <version>1.1.2.2</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-extensions-bom</artifactId> <version>1.1.2.2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> <repository> <name>Central Portal Snapshots</name> <id>central-portal-snapshots</id> <url>https://central.sonatype.com/repository/maven-snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </project>application.yml配置如下:
spring: application: name: mcp-server ai: mcp: server: name: mcp-server1 version: 1.0.0 type: SYNC # sse消息端点路径 sse-message-endpoint: /api/v1/mcp/message # sse端点路径 sse-endpoint: /api/v1/sse # url访问前缀 # base-url: /api/v1 stdio: false server: port: 8085这里可以看到有一个base_url的配置,这个配置目前感觉是没有多大的作用,我在客户端访问MCP服务端的时候这个base_url的配置主要作用在sse-message-endpoint链接前缀,但是当客户端连接上sse-endpoint端点的时候访问的/api/v1/mcp/message出现404的错误,但是当把base_url注释掉,直接把sse-message-endpoint端点修改为/api/v1/mcp/message就可以正常访问了,客户端的配置如下:
spring: ai: mcp: client: mcp-server: url: http://localhost:8085 sse-endpoint: /api/v1/sse