MongoDB MCP Server logo

MongoDB MCP Server

by seeun0210

The MongoDB MCP Server is a Model Context Protocol server for MongoDB databases. It analyzes the structure of MongoDB databases and provides AI-powered query generation capabilities.

View on GitHub

Last updated: N/A

MongoDB MCP Server

MongoDB 데이터베이스를 위한 Model Context Protocol (MCP) 서버입니다. 이 서버는 MongoDB 데이터베이스의 구조를 분석하고, AI를 활용하여 쿼리를 생성하는 기능을 제공합니다.

기능

1. ERD 생성 (generateErd)

데이터베이스의 컬렉션 구조를 분석하여 ERD(Entity Relationship Diagram)를 생성합니다.

  • 입력 파라미터:

    {
      "database": "string",
      "collections": ["string"],  // 선택적
      "format": "mermaid" | "json"  // 기본값: "mermaid"
    }
    
  • 사용 예시:

    {
      "database": "test",
      "format": "mermaid"
    }
    

2. 쿼리 생성 (generateQuery)

자연어 설명을 기반으로 MongoDB 쿼리를 생성합니다. 데이터베이스의 실제 구조를 분석하여 정확한 쿼리를 생성합니다.

  • 입력 파라미터:

    {
      "database": "string",
      "collection": "string",
      "description": "string",
      "type": "mongodb" | "mongoose",  // 기본값: "mongodb"
      "includeExplanation": boolean  // 기본값: true
    }
    
  • 사용 예시:

    {
      "database": "test",
      "collection": "users",
      "description": "오늘 가입한 사용자 찾기",
      "type": "mongodb"
    }
    

설치 및 실행

  1. 의존성 설치:

    npm install
    
  2. 빌드:

    npm run build
    
  3. 서버 실행:

    node dist/index.js "mongodb://localhost:27017"
    

Claude Desktop 설정

macOS에서 Claude Desktop과 함께 사용하려면 다음과 같이 설정하세요:

  1. 설정 파일 위치: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. MCP 서버 설정 추가:

    {
      "mcp": {
        "servers": [
          {
            "name": "mongodb",
            "command": "node /path/to/mongo-mcp-server/dist/index.js mongodb://localhost:27017/test"
          }
        ]
      }
    }
    
  3. Claude Desktop 재시작

개발

프로젝트 구조

src/
├── index.ts          # 메인 서버 코드
├── tools/
│   ├── generateErd.ts    # ERD 생성 도구
│   └── generateQuery.ts  # 쿼리 생성 도구

새로운 도구 추가

  1. src/tools 디렉토리에 새 도구 파일 생성
  2. 도구 인터페이스 구현:
    export const newTool = {
      parameters: {
        // 파라미터 정의
      },
      async execute(params: any, context: { client: MongoClient }) {
        // 도구 로직 구현
      },
    };
    
  3. src/index.ts에 도구 등록