MongoDB MCP服务器
一个用于MongoDB操作的模型上下文协议(MCP)服务器,使用TypeScript构建。
特性
- 🔌 连接到多个MongoDB实例
- 🔍 查询、聚合和分析集合
- 📊 模式推理和数据采样
- 🚀 使用TypeScript构建类型安全
- ⚡ 无需构建步骤-直接与运行
tsx
先决条件
- Node.js 18+(推荐:v22.4.1+)
- 要连接的MongoDB实例
- Claude Desktop(用于MCP集成)
安装
1.克隆和安装依赖项
git clone
cd mongo-ts-mcp
npm install2.配置MongoDB连接
创建一个 config.json 项目根目录中的文件:
cp config.json.example config.json编辑 config.json 使用您的MongoDB连接详细信息:
{
"connections": {
"local": {
"uri": "mongodb://localhost:27017",
"database": "mydb"
},
"production": {
"uri": "mongodb://user:password@host:27017",
"database": "prod_db"
}
}
}3.使start-mcp.sh可执行(Linux/MOSC/WSL)
chmod +x start-mcp.sh用法
本地运行(开发)
# Direct execution with tsx (no build needed!)
npm start
# Or with npx
npx tsx src/index.ts
# Watch mode (auto-reload on changes)
npm run watch使用Claude Desktop运行
添加到您的Claude Desktop配置文件中:
地点:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
配置:
选项A:使用start-mcp.sh(推荐)
{
"mcpServers": {
"mongodb": {
"command": "bash",
"args": ["/path/to/mongo-ts-mcp/start-mcp.sh"]
}
}
}选项B:直接npx(跨平台)
{
"mcpServers": {
"mongodb": {
"command": "npx",
"args": [
"-y",
"tsx",
"/path/to/mongo-ts-mcp/src/index.ts"
],
"cwd": "/path/to/mongo-ts-mcp"
}
}
}选项C:WSL(仅限Windows)
{
"mcpServers": {
"mongodb": {
"command": "wsl",
"args": [
"bash",
"-l",
"-c",
"cd /home/user/projects/mongo-ts-mcp && npx tsx src/index.ts 2>/tmp/mcp-mongodb-error.log"
]
}
}
}替换 /path/to/mongo-ts-mcp 根据您的实际项目路径。
重新启动克劳德桌面
更新配置后,完全重新启动Claude Desktop以使更改生效。
可用工具
MCP服务器为Claude提供以下工具:
list_collections-列出数据库中的所有集合query_collection-使用过滤器和排序查询文档aggregate-运行MongoDB聚合管道count_documents-统计与筛选器匹配的文档get_schema-从采集样本推断模式sample_data-获取随机样本文档distinct_values-获取字段的不同值
发展
项目结构
mongo-ts-mcp/
├── src/
│ ├── index.ts # Main entry point
│ ├── connection.ts # MongoDB connection management
│ ├── tools.ts # MCP tool implementations
│ └── logger.ts # Logging utilities
├── config.json # MongoDB connections (not committed)
├── config.json.example # Example configuration
├── start-mcp.sh # Shell script for easy startup
├── package.json
├── tsconfig.json
└── README.md技术栈
- 运行时间: Node.js与
tsx(无构建步骤!) - 语言: TypeScript
- MCP-SDK:
@modelcontextprotocol/sdk - 数据库: MongoDB Node.js驱动程序
- 模块系统: ES模块
为什么是tsx?
此项目使用 tsx 而不是传统的TypeScript编译:
✅ 无构建步骤 -直接编辑并运行\ ✅ 清洁进口 -没有 .js TypeScript文件中所需的扩展名\ ✅ 快速发展 -更改后立即重新加载\ ✅ 生产准备就绪 -被许多大型项目使用
建筑(可选)
如果你需要编译JavaScript进行分发:
npm run build输出将在 dist/ 文件夹。但对于MCP的使用,这是 不必要!
故障排除
错误:找不到模块
确保所有导入都在TypeScript文件中 不要 有 .js 扩展名:
// ✅ Correct
import { something } from "./module";
// ❌ Wrong (when using tsx)
import { something } from "./module.js";检查日志
Linux/MOSC/WSL:
# If using error log redirect
cat /tmp/mcp-mongodb-error.log
# Or check Claude Desktop logs
tail -f ~/.config/Claude/logs/mcp*.log窗户:
# Check Claude Desktop logs
type %APPDATA%\Claude\logs\mcp*.log连接问题
验证您的 config.json:
- MongoDB URI正确
- 数据库名称存在
- 允许网络访问
- 身份验证凭据有效
贡献
欢迎投稿!拜托:
- 复刻仓库
- 创建要素分支
- 进行更改
- 使用Claude Desktop进行测试
- 提交拉取请求
支持
对于问题或疑问:
- 在GitHub上打开一个问题
- 检查MCP文件:https://modelcontextprotocol.io
致谢
与 模型上下文协议 通过Anthropic。
