Skip to main content
Glama
MCP-MongoDB-MySQL-Server

MCP-MongoDB-MySQL-Server

MCP-MongoDB-MySQL-Server

GitHub stars GitHub forks GitHub license

这是一个基于 enemyrr/mcp-mysql-server 项目的二次开发版本,添加了MongoDB支持。

This is a fork of enemyrr/mcp-mysql-server with added MongoDB support.

项目简介 | Introduction

这是一个Model Context Protocol服务器,提供MySQL和MongoDB数据库操作功能。该服务器使AI模型能够通过标准化接口与MySQL和MongoDB数据库交互。

A Model Context Protocol server that provides MySQL and MongoDB database operations. This server enables AI models to interact with MySQL and MongoDB databases through a standardized interface.

Related MCP server: MongoDB MCP Server

二次开发说明 | About This Fork

作者 | Author: yaoxiaolinglong

二次开发原因 | Reason for Fork: 原项目只支持MySQL数据库,但在实际应用中经常需要使用MongoDB。由于找不到现成的MongoDB MCP工具,因此在原项目基础上添加了MongoDB支持,使其成为一个同时支持MySQL和MongoDB的数据库服务器。

The original project only supports MySQL database, but MongoDB is often needed in practical applications. Due to the lack of ready-made MongoDB MCP tools, MongoDB support was added to the original project, making it a database server that supports both MySQL and MongoDB.

安装与设置 | Installation & Setup for Cursor IDE

通过Smithery安装 | Installing via Smithery

通过Smithery为Claude Desktop自动安装MySQL/MongoDB数据库服务器:

To install MySQL/MongoDB Database Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @yaoxiaolinglong/mcp-mongodb-mysql-server --client claude

手动安装 | Installing Manually

  1. 克隆并构建项目 | Clone and build the project:

git clone https://github.com/yaoxiaolinglong/mcp-mongodb-mysql-server.git
cd mcp-mongodb-mysql-server
npm install
npm run build
  1. 在Cursor IDE设置中添加服务器 | Add the server in Cursor IDE settings:

    • 打开命令面板(Cmd/Ctrl + Shift + P) | Open Command Palette (Cmd/Ctrl + Shift + P)

    • 搜索"MCP: Add Server" | Search for "MCP: Add Server"

    • 填写以下字段 | Fill in the fields:

      • 名称 | Name: mysql-mongodb

      • 类型 | Type: command

      • 命令 | Command: node /absolute/path/to/mcp-mongodb-mysql-server/build/index.js

注意 | Note: 将/absolute/path/to/替换为您克隆并构建项目的实际路径。

Replace /absolute/path/to/ with the actual path where you cloned and built the project.

数据库配置 | Database Configuration

MySQL配置 | MySQL Configuration

您可以通过以下三种方式配置MySQL数据库连接:

You can configure the MySQL database connection in three ways:

  1. .env文件中的数据库URL(推荐)| Database URL in .env (Recommended):

DATABASE_URL=mysql://user:password@host:3306/database
  1. .env文件中的单独参数 | Individual Parameters in .env:

DB_HOST=localhost
DB_USER=your_user
DB_PASSWORD=your_password
DB_DATABASE=your_database
  1. 通过工具直接连接 | Direct Connection via Tool:

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "connect_db",
  arguments: {
    url: "mysql://user:password@host:3306/database"
    // 或者 | OR
    workspace: "/path/to/your/project" // 将使用项目的.env文件 | Will use project's .env
    // 或者 | OR
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

MongoDB配置 | MongoDB Configuration

您可以通过以下三种方式配置MongoDB数据库连接:

You can configure the MongoDB database connection in three ways:

  1. .env文件中的MongoDB URL(推荐)| MongoDB URL in .env (Recommended):

MONGODB_URI=mongodb://user:password@host:27017/database
MONGODB_DATABASE=your_database
  1. 通过工具直接连接 | Direct Connection via Tool:

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "connect_mongodb",
  arguments: {
    url: "mongodb://user:password@host:27017/database"
    // 或者 | OR
    workspace: "/path/to/your/project" // 将使用项目的.env文件 | Will use project's .env
    // 或者 | OR
    database: "your_database" // 将使用默认连接URI | Will use default connection URI
  }
});

可用工具 | Available Tools

MySQL工具 | MySQL Tools

1. connect_db

连接到MySQL数据库,使用URL、工作区路径或直接凭据。

Connect to MySQL database using URL, workspace path, or direct credentials.

2. query

执行SELECT查询,支持可选的预处理语句参数。

Execute SELECT queries with optional prepared statement parameters.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});

3. execute

执行INSERT、UPDATE或DELETE查询,支持可选的预处理语句参数。

Execute INSERT, UPDATE, or DELETE queries with optional prepared statement parameters.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "john@example.com"]
  }
});

4. list_tables

列出连接的数据库中的所有表。

List all tables in the connected database.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "list_tables"
});

5. describe_table

获取特定表的结构。

Get the structure of a specific table.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

6. create_table

创建一个新表,指定字段和索引。

Create a new table with specified fields and indexes.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "create_table",
  arguments: {
    table: "users",
    fields: [
      {
        name: "id",
        type: "int",
        autoIncrement: true,
        primary: true
      },
      {
        name: "email",
        type: "varchar",
        length: 255,
        nullable: false
      }
    ],
    indexes: [
      {
        name: "email_idx",
        columns: ["email"],
        unique: true
      }
    ]
  }
});

7. add_column

向现有表添加新列。

Add a new column to an existing table.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "add_column",
  arguments: {
    table: "users",
    field: {
      name: "phone",
      type: "varchar",
      length: 20,
      nullable: true
    }
  }
});

MongoDB工具 | MongoDB Tools

1. connect_mongodb

连接到MongoDB数据库,使用URL、工作区路径或数据库名称。

Connect to MongoDB database using URL, workspace path, or database name.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "connect_mongodb",
  arguments: {
    url: "mongodb://user:password@host:27017/database"
  }
});

2. mongodb_list_collections

列出连接的MongoDB数据库中的所有集合。

List all collections in the connected MongoDB database.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_list_collections"
});

3. mongodb_find

在MongoDB集合中查找文档,支持可选的过滤器、限制、跳过和排序。

Find documents in a MongoDB collection with optional filter, limit, skip, and sort.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_find",
  arguments: {
    collection: "users",
    filter: { age: { $gt: 18 } },
    limit: 10,
    skip: 0,
    sort: { name: 1 }
  }
});

4. mongodb_insert

向MongoDB集合中插入文档。

Insert documents into a MongoDB collection.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_insert",
  arguments: {
    collection: "users",
    documents: [
      { name: "John Doe", email: "john@example.com", age: 30 },
      { name: "Jane Smith", email: "jane@example.com", age: 25 }
    ]
  }
});

5. mongodb_update

更新MongoDB集合中的文档。

Update documents in a MongoDB collection.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_update",
  arguments: {
    collection: "users",
    filter: { name: "John Doe" },
    update: { $set: { age: 31 } },
    many: false // 只更新一个文档(默认)| Update only one document (default)
  }
});

6. mongodb_delete

从MongoDB集合中删除文档。

Delete documents from a MongoDB collection.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_delete",
  arguments: {
    collection: "users",
    filter: { name: "John Doe" },
    many: false // 只删除一个文档(默认)| Delete only one document (default)
  }
});

7. mongodb_create_collection

在MongoDB中创建新集合。

Create a new collection in MongoDB.

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_create_collection",
  arguments: {
    collection: "new_collection",
    options: { capped: true, size: 1000000 }
  }
});

功能特点 | Features

  • 多种连接方法(URL、工作区、直接参数)| Multiple connection methods (URL, workspace, direct)

  • 同时支持MySQL和MongoDB数据库 | Support for both MySQL and MongoDB databases

  • 安全的连接处理和自动清理 | Secure connection handling with automatic cleanup

  • MySQL查询参数的预处理语句支持 | Prepared statement support for MySQL query parameters

  • 两种数据库的架构管理工具 | Schema management tools for both databases

  • 全面的错误处理和验证 | Comprehensive error handling and validation

  • TypeScript支持 | TypeScript support

  • 自动工作区检测 | Automatic workspace detection

安全性 | Security

  • 在MySQL中使用预处理语句防止SQL注入 | Uses prepared statements to prevent SQL injection in MySQL

  • 通过环境变量支持安全密码处理 | Supports secure password handling through environment variables

  • 执行前验证查询和操作 | Validates queries and operations before execution

  • 自动关闭连接 | Automatically closes connections when done

错误处理 | Error Handling

服务器提供以下详细错误消息:| The server provides detailed error messages for:

  • 连接失败 | Connection failures

  • 无效的查询或参数 | Invalid queries or parameters

  • 缺少配置 | Missing configuration

  • 数据库错误 | Database errors

  • 架构验证错误 | Schema validation errors

贡献 | Contributing

欢迎贡献!请随时提交Pull Request到 https://github.com/yaoxiaolinglong/mcp-mongodb-mysql-server

Contributions are welcome! Please feel free to submit a Pull Request to https://github.com/yaoxiaolinglong/mcp-mongodb-mysql-server

致谢 | Acknowledgements

本项目基于 enemyrr/mcp-mysql-server 开发,感谢原作者的贡献。

This project is based on enemyrr/mcp-mysql-server. Thanks to the original author for their contribution.

许可证 | License

MIT

Available Tools

14 tools
add_columnC

Add a new column to existing table

Inputs: table (required), field (required).

connect_dbC

Connect to MySQL database using URL or config

Inputs: url, workspace, host, user, +2 more.

connect_mongodbC

Connect to MongoDB database using URL or config

Inputs: url, workspace, database.

create_tableC

Create a new table in the database

Inputs: table (required), fields (required), indexes.

describe_tableB

Get table structure

Inputs: table (required).

executeB

Execute an INSERT, UPDATE, or DELETE query

Inputs: sql (required), params.

list_tablesB

List all tables in the database

Inputs: no named parameters.

mongodb_create_collectionC

Create a new collection in MongoDB

Inputs: collection (required), options.

mongodb_deleteC

Delete documents from a MongoDB collection

Inputs: collection (required), filter (required), many.

mongodb_findC

Find documents in a MongoDB collection

Inputs: collection (required), filter, limit, skip, +1 more.

mongodb_insertC

Insert documents into a MongoDB collection

Inputs: collection (required), documents (required).

mongodb_list_collectionsB

List all collections in the MongoDB database

Inputs: no named parameters.

mongodb_updateC

Update documents in a MongoDB collection

Inputs: collection (required), filter (required), update (required), many.

queryB

Execute a SELECT query

Inputs: sql (required), params.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 14 tools

    Disambiguation3/5

    The tools are clearly separated between MySQL and MongoDB operations, but within each database type there is some overlap. For example, 'execute' handles INSERT/UPDATE/DELETE for MySQL while 'query' handles SELECT, but these could potentially be confused with the more specific MongoDB equivalents like 'mongodb_insert' and 'mongodb_find'. The descriptions help clarify, but the boundaries aren't perfectly distinct.

    Naming Consistency2/5

    The naming is inconsistent across the set. MySQL tools use simple verb_noun patterns (e.g., 'add_column', 'create_table'), while MongoDB tools use a 'mongodb_' prefix followed by verb_noun (e.g., 'mongodb_create_collection', 'mongodb_find'). This mixing of conventions makes the set less predictable and harder to navigate at a glance.

    Tool Count4/5

    With 14 tools, the count is reasonable for a server covering two database systems (MySQL and MongoDB). It provides core operations for both, though it might be slightly heavy if considered as a single domain. Each tool appears to serve a distinct function, so the count feels appropriate for the scope.

    Completeness4/5

    For MySQL, the tools cover key operations like table management (create, describe, list), column addition, and query execution (SELECT, INSERT/UPDATE/DELETE). For MongoDB, they cover collection management (create, list) and CRUD operations (insert, find, update, delete). Minor gaps include missing operations like dropping tables/collections or more advanced queries, but core workflows are well-covered.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      A Model Context Protocol server that provides read-only access to MongoDB databases, enabling AI assistants to directly query and analyze MongoDB data while maintaining data safety.
      14
      99 npm
      9
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI models to interact with MySQL databases, providing tools for querying, executing statements, listing tables, and describing table structures.
      5
      290 npm
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI models to interact with MySQL databases through a standardized interface, providing tools for querying, executing commands, and managing database schemas.
      7
      MIT