基于MongoDB的Spring AI MCP服务器
使用Spring AI构建的模型上下文协议(MCP)服务器,将MongoDB操作作为AI模型的工具公开。该项目演示了如何在人工智能应用程序和MongoDB之间创建一个标准化的接口,允许人工智能模型通过一个简单的待办事项列表应用程序执行数据库操作。
这是什么?
这是一个连接AI模型和MongoDB的MCP服务器。AI模型不需要理解数据库连接字符串、查询语法或数据建模,它们可以简单地调用以下工具 todo-add-task 或 todo-get-tasks服务器处理AI请求和实际MongoDB操作之间的所有转换。
模型上下文协议(MCP)是一个开放标准,使AI应用程序能够安全地连接到各种数据源和工具。本项目向您展示了如何使用Spring AI和Spring Data MongoDB构建MCP服务器。
先决条件
- Java 17+ -用于运行Spring Boot应用程序
- 梅文 -用于构建和依赖关系管理
- MongoDB Atlas帐户 -M0免费版运行完美
- 注册MongoDB Atlas 如果你没有账户
- MCP检查员 (可选,用于测试)-安装
npx @modelcontextprotocol/inspector
设置
- 克隆存储库
git clone
cd springai-mcp- 配置MongoDB连接
将MongoDB连接字符串设置为环境变量:
export SPRING_DATA_MONGODB_URI="your-mongodb-atlas-connection-string"- 构建项目
mvn clean install运行服务器
启动Spring Boot应用程序:
mvn spring-boot:runMCP服务器将在 http://localhost:8080/mcp
MCP检验员测试
- 安装并运行MCP检查器:
npx @modelcontextprotocol/inspector- 在浏览器界面中:
- 将运输类型更改为 流式HTTP - 输入URL: http://localhost:8080/mcp - 点击 连接
- 导航到 工具 选项卡,查看可用工具并对其进行测试
可用工具
服务器公开了三个用于管理todo任务的MCP工具:
todo-add-task
向MongoDB数据库添加新任务。
参数:
name(必填):任务的名称或描述
例子:
{
"name": "Write documentation"
}todo-complete-task
按任务名称将其标记为已完成。
参数:
name(必填):要标记为已完成的任务的名称
例子:
{
"name": "Write documentation"
}todo-get-tasks
使用可选的按完成状态筛选来检索任务。
参数:
filter(可选):按完成状态筛选-接受"complete","incomplete",或"all"(默认)
例子:
{
"filter": "incomplete"
}项目结构
src/main/java/com/timkelly/springaimcp/
├── Task.java # MongoDB document model
├── TodoRepository.java # Spring Data MongoDB repository
├── TodoService.java # Business logic layer
└── MongoDbTools.java # MCP tools definition配置
中的关键配置 application.properties:
spring.application.name=springai-mcp
spring.ai.mcp.server.name=mongodb-mcp
spring.ai.mcp.server.version=1.0.0
spring.ai.mcp.server.protocol=streamable
spring.ai.mcp.server.stdio=false
spring.ai.mcp.server.type=sync
spring.data.mongodb.uri=${SPRING_DATA_MONGODB_URI}
spring.data.mongodb.database=todo了解更多
想更深入地了解MongoDB的AI功能吗?看看 矢量搜索基础课程 学习嵌入、语义搜索和向量数据库(在学习过程中获得技能徽章)。
