使用说明
电影MCP服务器
一种模型上下文协议(MCP)服务器,使用OMDB API提供电影信息。此服务器支持三种不同的传输协议:STDIO、SSE(服务器发送事件)和流式HTTP。
特性
- 电影信息工具:获取电影的详细信息,包括情节、演员、收视率等
- 多种传输协议:支持STDIO、SSE和流式HTTP传输
- 基于配置文件的配置:在不同运输方式之间轻松切换
可用工具
getMovieInfo:按标题检索全面的电影信息
配置
先决条件
-
构建项目:
./gradlew build -
服务器支持三种配置文件:
stdio(默认):标准输入/输出通信sse:服务器通过HTTP发送事件streamable:可流式HTTP传输
MCP客户端配置
将以下配置之一添加到MCP客户端配置文件中:
选项1:STDIO传输(推荐)
{
"mcpServers": {
"movie-mcp-server": {
"type": "stdio",
"command": "java",
"args": [
"-Dspring.profiles.active=stdio",
"-jar",
"/Users/shaama/Documents/openai-mcp-demo/movie-mcp-server/build/libs/movieserver_streamable-0.0.1-SNAPSHOT.jar"
]
}
}
}
方案2:苏格兰和南方能源公司运输
{
"mcpServers": {
"movie-mcp-server-sse": {
"type": "sse",
"url": "http://localhost:8080/sse"
}
}
}
启动SSE服务器:
java -Dspring.profiles.active=sse -jar build/libs/movieserver_streamable-0.0.1-SNAPSHOT.jar
选项3:流式HTTP传输
{
"mcpServers": {
"movie-mcp-server-streamable": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
启动Streamable服务器:
java -Dspring.profiles.active=streamable -jar build/libs/movieserver_streamable-0.0.1-SNAPSHOT.jar
建设与发展
使用任务文件
此项目包括一个用于常见操作的任务文件:
# Build all profiles
task build
# Build specific profile
task build-stdio
task build-sse
task build-streamable
# Run specific profile
task run-stdio
task run-sse
task run-streamable
手动构建
# Build with specific profile
./gradlew bootJar -Pprofile=stdio
./gradlew bootJar -Pprofile=sse
./gradlew bootJar -Pprofile=streamable
# Run tests
./gradlew test
配置文件
application.properties:通用配置(默认stdio配置文件)application-stdio.properties:STDIO特定设置application-sse.properties:SSE特定设置application-streamable.properties:可流式传输的HTTP特定设置
API配置
服务器对电影数据使用OMDB API。API密钥在中配置 application.properties:
movie.api.url=http://www.omdbapi.com/?apikey=
movie.api.key=dummy
传输协议详细信息
STDIO传输
- 最适合:与MCP客户端直接集成
- 沟通:标准输入/输出流
- 端口:不适用(无HTTP服务器)
- 日志记录:仅限文件,以避免干扰STDIO通信
SSE 运输
- 最适合:需要实时更新的基于Web的客户端
- 沟通:带有服务器发送事件响应的HTTP POST请求
- 端口: 8080
- 端点:
/sse
可流式HTTP传输
- 最适合:具有保持活动连接的基于HTTP的客户端
- 沟通:使用分块传输编码的HTTP POST/GET请求
- 端口: 8080
- 端点:
/mcp - 特性:会话管理,可恢复连接
示例用法
配置后,您可以在MCP客户端中使用电影工具:
Get information about "The Matrix"
服务器将返回详细的电影信息,包括情节、演员、导演、收视率等。
故障排除
STDIO模式
- 检查日志文件:
~/mcp-server-stdio.log - 确保没有其他输出写入stdout
HTTP模式(SSE/流式传输)
- 验证服务器是否正在运行:
curl http://localhost:8080/actuator/health - 检查服务器日志是否有任何启动错误
- 确保端口8080可用
发展
集成测试
默认情况下,集成测试处于禁用状态,可以手动运行:
# Run specific integration test
./gradlew test --tests "McpServerStdioE2ETest"
./gradlew test --tests "McpServerSseE2ETest"
./gradlew test --tests "McpServerStreamableE2ETest"
电影API测试
# Test movie info functionality
./gradlew test --tests "MovieInfoIntegrationTest"