使用说明
博客MCP服务器
MCP(模型上下文协议)服务器,用于通过搜索和创建管理博客文章。
📖 MCP服务器的设计
本项目是使用MCP服务器的示例实现 SDK Java (无框架Spring ou autre)。
架构MCP
模型上下文协议(MCP)定义了 沙发建筑 明确划分责任:
1. 客户端/服务器层
McpServer:管理协议操作McpSession:管理同步和异步交互- 支持编程模型 同步器 (
McpSyncServer)et 异步 (McpAsyncServer)
2. 运输层
- JSON-RPC消息序列化的抽象
- 运输标准 :通过stdin/stdout进行通信(本项目中使用)
- 备选方案:HTTP SSE、流式HTTP分布式体系结构
3. 协议层
SDK支持以下MCP功能:
- 工具 :发现和执行工具(此处使用)
- 资源 :使用URI和订阅进行资源管理
- 提示词 :用于IA交互的提示模板
- 完成 :完成建议
- 日志记录 :日志系统
- 进展 :监控操作进度
概念原则
此服务器说明 良好做法 du SDK Java MCP:
-
无框架依赖性的模块化
- 模块利用率
mcp-core唯一 - 不依赖Spring或其他web框架
- 默认情况下包括STDIO传输
- 模块利用率
-
收件人姓名首字母
// 1. Créer le transport StdioServerTransportProvider transport = new StdioServerTransportProvider(McpJsonMapper.getDefault()); // 2. Créer le serveur avec capabilities McpSyncServer server = McpServer.sync(transport) .serverInfo("blog-mcp-server", "1.0.0") .capabilities(ServerCapabilities.builder() .tools(true) .build()) .build(); -
工具注册
- 使用JSON模式为参数定义工具
- 业务逻辑处理程序
- 错误管理
CallToolResult
-
能力谈判
- 协议版本兼容性检查
- 初始化期间的功能交换
- 类型安全错误验证和管理
Java SDK?
- 简单性 :没有复杂的框架配置
- 轻 :最小依赖性
- 便携性 :JAR独立可执行文件
- 理解 :学习MCP协议的清晰代码
- 演出 :通过stdio进行本地流程的直接通信
参考
📚 官方文件: MCP Java SDK概述
🚀 构建
mvn clean package
可执行JAR将在中生成 target/mcp-server-1.0-SNAPSHOT-executable.jar
⚙️ Claude桌面的配置
选项1:通过Claude配置文件进行配置
将此配置添加到Claude桌面配置文件:
在macOS上 : ~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上 : %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"blog-mcp-server": {
"command": "java",
"args": [
"-jar",
"/<absolute_path>/mcp-server/target/mcp-server-1.0-SNAPSHOT-executable.jar"
]
}
}
}
⚠️ 重要 :将绝对路径替换为JAR的实际路径。
选项2:脚本配置
创建脚本 run-server.sh :
#!/bin/bash
java -jar /<absolute_path>/mcp-server/target/mcp-server-1.0-SNAPSHOT-executable.jar
然后在Claude配置中:
{
"mcpServers": {
"blog-mcp-server": {
"command": "/chemin/vers/run-server.sh"
}
}
}
🛠️ 可用工具
1. search_articles
按关键字和/或类型搜索博客文章。
设置 :
query(字符串,可选):要搜索的关键字type(string,optionel):键入d’article(TECHNICAL哦SCIENTIFIC)
例子 :
{
"query": "Java",
"type": "TECHNICAL"
}
2. create_article
创建新的博客文章。
设置 :
title(字符串,必填):文章标题content(字符串,必需):文章内容type(字符串,必需):项目类型(TECHNICAL哦SCIENTIFIC)
例子 :
{
"title": "Introduction à Spring Boot",
"content": "Spring Boot est un framework...",
"type": "TECHNICAL"
}
🧪 测试手册
要手动测试服务器:
java -jar target/mcp-server-1.0-SNAPSHOT-executable.jar
服务器根据MCP协议通过stdin/stdout进行通信。
📝 示例数据
服务器从3个预加载项目开始:
- “Java MCP服务器简介”(技术)
- “理解机器学习算法”(科学)
- “使用Spring Boot创建RESTful API”(技术)
🔧 故障排除
错误“无法连接到MCP服务器”
-
检查JAR是否已生成 :
ls -l target/mcp-server-1.0-SNAPSHOT-executable.jar -
检查JAR是否可以运行 :
java -jar target/mcp-server-1.0-SNAPSHOT-executable.jar服务器应显示:
Serveur MCP Blog démarré et en attente de connexions -
检查Claude配置中的路径 :
- 道路必须是 绝对
- 检查执行权限
- 验证Java是否在路径中
-
检查Claude桌面日志 :
- 在macOS上:
~/Library/Logs/Claude/ - 查找MCP服务器错误
- 在macOS上:
-
重新启动Claude桌面 更改配置后
📄 版本
- Java:21
- MCP SDK:0.16.0
- Maven:3.x
🏗️ 建筑
src/main/java/com/rickenbazolo/mcp/
├── BlogMcpServer.java # Serveur MCP principal
├── Article.java # Modèle Article (record)
└── ArticleRepository.java # Repository en mémoire
