MongoDB协议服务器

提供标准化协议与MongoDB数据库交互的Model Context Protocol(MCP)服务器实现,支持CRUD操作、异步处理和错误管理。

  • by TeiNam
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 teinam/mongo-mcp-server

使用说明

MongoDB MCP服务器

强大的Model Context Protocol(MCP)服务器实现,以标准协议的形式提供与MongoDB数据库的无缝交互。

作者

拉斯塔利翁

概述

该MCP服务器实现提供了通过Model Context Protocol与MongoDB数据库进行交互的强大界面。数据库、集合和文档的操作 通过async/await模式和错误处理提供可靠的支持。

特点

  • 完全支持MongoDB CRUD操作
  • 处理与MongoDB的安全连接
  • 异步(async/await)模式以实现最佳性能
  • 全面的错误处理
  • Docker支持,便于部署
  • 运行带有类型提示的查询
  • 支持服务器-发送事件(SSE)进行实时更新

快速入门

使用CLI工具

# 저장소 복제
git clone https://github.com/yourusername/mongo-mcp-server.git
cd mongo-mcp-server

# 개발 모드로 설치
pip install -e .

# 로컬에서 CLI 명령으로 실행
mongo-mcp-server

# SSE 트랜스포트로 실행
mongo-mcp-server --transport=sse

# MongoDB URL 지정
mongo-mcp-server --mongodb-url="mongodb://username:password@hostname:port/dbname"

# 도움말 보기
mongo-mcp-server --help

通过UVX运行

# UVX가 설치된 경우
uvx mongo-mcp-server

# SSE 트랜스포트 모드
uvx mongo-mcp-server --transport=sse

直接运行Python

# 저장소 복제
git clone https://github.com/yourusername/mongo-mcp-server.git
cd mongo-mcp-server

# 의존성 설치
pip install -r requirements.txt

# 환경 변수 설정
export MONGODB_URL="mongodb://username:password@hostname:port/dbname?authSource=admin"

# 서버 실행
uvicorn app.main:app --host 0.0.0.0 --port 3000

使用Docker

# 저장소 복제
git clone https://github.com/yourusername/mongo-mcp-server.git
cd mongo-mcp-server

# Docker Compose로 빌드 및 실행
docker-compose up -d

# 로그 확인
docker-compose logs -f mongo-mcp

使用UVX

UVX是一种可以在各种环境中轻松管理服务的工具。

# 등록 스크립트에 실행 권한 부여
chmod +x uvx-register.sh

# UVX에 서비스 등록
./uvx-register.sh

# 서비스 시작
uvx start mongo-mcp

# 상태 확인
uvx status mongo-mcp

# 로그 확인
uvx logs mongo-mcp

更多详细信息 UVX指南请参阅。

环境变量

在运行服务器之前,请设置以下环境变量:

# 필수
MONGODB_URL="mongodb://username:password@hostname:port/dbname?authSource=admin"

# 선택 - 기본값 표시
PORT=3000
MCP_TRANSPORT=http  # 'http' 또는 'sse'

API端点

  • 检查状态: GET /health
  • MCP API: GET /mcp -FastMCP端点(OpenAPI文档)
  • SSE连接: GET /sse -Sent Events端点
  • 消息处理: POST /messages -消息处理端点

集成IDE

VS Code设置

在VS Code settings.json中添加以下内容:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "mongodbUri",
        "description": "MongoDB 연결 URI"
      }
    ],
    "servers": {
      "mongodb": {
        "command": "mongo-mcp-server",
        "args": [
          "--mongodb-url",
          "$(mongodbUri)"
        ],
        "env": {}
      }
    }
  }
}

Claude或其他AI助手

为Claude或其他AI助手配置MCP服务器:

{
  "mcp": {
    "servers": {
      "mongodb": {
        "url": "http://localhost:3000/mcp"
      }
    }
  }
}

可用工具

工具名称 说明
listCollections 查询数据库中所有可用集合的列表
find 使用MongoDB查询语法查询集合中的文档
insertOne 在集合中插入单个文档
updateOne 更新集合中的单个文档
deleteOne 从集合中删除单个文档
indexes 查询集合中的所有索引列表
createIndex 在集合中创建新索引
dropIndex 从集合中删除现有索引

高级使用

添加自定义工具

  1. app/tools/documents/ 或者 app/tools/collection/在中创建新工具:
from ..base.tool import BaseTool


class MyNewTool(BaseTool):
    @property
    def name(self) -> str:
        return "my_new_tool"

    @property
    def description(self) -> str:
        return "새 도구에 대한 설명"

    @property
    def input_schema(self) -> Dict[str, Any]:
        return {
            "type": "object",
            "properties": {
                # 도구 입력 스키마 정의
            }
        }

    async def execute(self, params: Dict[str, Any]) -> Dict[str, Any]:
        # 도구 실행 로직 구현
        pass
  1. app/tools/registry.py在中注册工具:
from .documents.my_new_tool import MyNewTool

# ToolRegistry.__init__ 메서드 내에서
self.register_tool(MyNewTool())

安装和部署CLI工具

在PyPI中注册为软件包并全局可用:

# setup.py 확인 후 빌드
python setup.py sdist bdist_wheel

# 패키지 업로드 (PyPI 계정 필요)
twine upload dist/*

# 전역 설치
pip install mongodb-mcp-bridge

# 어디서든 실행 가능
mongodb-mcp-bridge

故障排除

  • 如果服务器无法启动: mongo-mcp-server --help通过查看帮助
  • MongoDB连接问题: --mongodb-url 验证参数是否正确
  • 工具运行错误:验证工具实现和输入参数
  • Docker问题: docker-compose logs mongo-mcp通过日志确认

配置Docker

Docker设置包括:

  • Python 3.12基本映像
  • 亚洲/首尔타임존
  • MongoDB 4.4实例
  • 用于数据库存储的永久卷
  • 两项服务的健康检查
  • 自动化网络配置

许可证

该项目在MIT许可下分发-有关详细信息 许可证 请参考文件。