mcpField
M
MCP-MongoDB-MySQL-Server

MCP-MongoDB-MySQL-Server

本地服务
github.com/yaoxiaolinglong数据库871 周前更新

关于 MCP-MongoDB-MySQL-Server

MCP-MongoDB-MySQL-Server 是一个支持 MySQL 和 MongoDB 操作的 MCP 服务,基于 mcp-mysql-server 并增加了 MongoDB 支持。它面向需要通过标准化接口访问这两类数据库的 AI 模型和开发者。

主要功能

  1. 01连接 MySQL 与 MongoDB
  2. 02执行 MySQL 查询和数据修改
  3. 03查看表、字段及管理表结构
  4. 04查找、插入、更新和删除 MongoDB 文档
  5. 05管理 MongoDB 集合

适用场景

  1. 01通过 MCP 查询 MySQL 数据
  2. 02在 MongoDB 中维护文档和集合
  3. 03检查数据库表结构并执行变更

MCP 相关

该 MCP 服务向客户端提供 MySQL 和 MongoDB 连接、查询及数据管理工具。连接可使用 URL、工作区路径或直接凭据配置。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mongodb-mysql-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai 安全评估徽章 README 配图

MCP-MongoDB-MySQL-Server

GitHub 星标 GitHub 分叉 GitHub 许可证 smithery 徽章

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

这是 enemyrr/mcp-mysql-server 的分支版本,增加了 MongoDB 支持。

项目简介 | 简介

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

一个提供 MySQL 和 MongoDB 数据库操作功能的模型上下文协议服务器。该服务器使 AI 模型能够通过标准化接口与 MySQL 和 MongoDB 数据库交互。

二次开发说明 | 关于此分支

作者 | 作者:yaoxiaolinglong

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

原项目只支持 MySQL 数据库,但在实际应用中经常需要使用 MongoDB。由于缺少现成的 MongoDB MCP 工具,因此在原项目基础上添加了 MongoDB 支持,使其成为同时支持 MySQL 和 MongoDB 的数据库服务器。

安装与设置 | Cursor IDE 安装与设置

通过 Smithery 安装 | 通过 Smithery 安装

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

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

npx -y @smithery/cli install @yaoxiaolinglong/mcp-mongodb-mysql-server --client claude
手动安装 | 手动安装
  1. 克隆并构建项目 | 克隆并构建项目:
git clone https://github.com/yaoxiaolinglong/mcp-mongodb-mysql-server.git
cd mcp-mongodb-mysql-server
npm install
npm run build
  1. 在 Cursor IDE 设置中添加服务器 | 在 Cursor IDE 设置中添加服务器:
    • 打开命令面板(Cmd/Ctrl + Shift + P) | 打开命令面板(Cmd/Ctrl + Shift + P)
    • 搜索“MCP: Add Server” | 搜索“MCP: Add Server”
    • 填写以下字段 | 填写以下字段:
      • 名称 | 名称:mysql-mongodb
      • 类型 | 类型:command
      • 命令 | 命令:node /absolute/path/to/mcp-mongodb-mysql-server/build/index.js

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

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

数据库配置 | 数据库配置

MySQL 配置 | MySQL 配置

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

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

  1. .env 文件中的数据库 URL(推荐)| .env 文件中的数据库 URL(推荐):
DATABASE_URL=mysql://user:password@host:3306/database
  1. .env 文件中的单独参数 | .env 文件中的单独参数:
DB_HOST=localhost
DB_USER=your_user
DB_PASSWORD=your_password
DB_DATABASE=your_database
  1. 通过工具直接连接 | 通过工具直接连接:
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 配置

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

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

  1. .env 文件中的 MongoDB URL(推荐)| .env 文件中的 MongoDB URL(推荐):
MONGODB_URI=mongodb://user:password@host:27017/database
MONGODB_DATABASE=your_database
  1. 通过工具直接连接 | 通过工具直接连接:
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
  }
});

可用工具 | 可用工具

MySQL 工具 | MySQL 工具
1. connect_db

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

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

2. query

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

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

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

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

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

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

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

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

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

获取特定表的结构。

获取特定表的结构。

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

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

创建具有指定字段和索引的新表。

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

向现有表添加新列。

向现有表添加新列。

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 工具
1. connect_mongodb

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

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

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

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

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

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

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

在 MongoDB 集合中查找文档,可选设置过滤器、数量限制、跳过数量和排序方式。

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 集合中插入文档。

向 MongoDB 集合中插入文档。

use_mcp_tool({
  server_name: "mysql-mongodb",
  tool_name: "mongodb_insert",
  arguments: {
    collection: "users",
    documents: [
      { name: "John Doe", email: "[email protected]", age: 30 },
      { name: "Jane Smith", email: "[email protected]", age: 25 }
    ]
  }
});
5. mongodb_update

更新 MongoDB 集合中的文档。

更新 MongoDB 集合中的文档。

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 集合中删除文档。

从 MongoDB 集合中删除文档。

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 中创建新集合。

在 MongoDB 中创建新集合。

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

功能特点 | 功能特点

  • 多种连接方法(URL、工作区、直接参数)| 多种连接方法(URL、工作区、直接参数)
  • 同时支持 MySQL 和 MongoDB 数据库 | 同时支持 MySQL 和 MongoDB 数据库
  • 安全的连接处理和自动清理 | 安全地处理连接并自动清理
  • MySQL 查询参数的预处理语句支持 | 支持为 MySQL 查询参数使用预处理语句
  • 两种数据库的架构管理工具 | 支持管理两种数据库架构的工具
  • 全面的错误处理和验证 | 全面的错误处理和验证
  • TypeScript 支持 | TypeScript 支持
  • 自动工作区检测 | 自动检测工作区

安全性 | 安全性

  • 在 MySQL 中使用预处理语句防止 SQL 注入 | 使用预处理语句防止 MySQL 中的 SQL 注入
  • 通过环境变量支持安全密码处理 | 支持通过环境变量安全地处理密码
  • 执行前验证查询和操作 | 执行前验证查询和操作
  • 自动关闭连接 | 操作完成后自动关闭连接

错误处理 | 错误处理

服务器提供以下详细错误消息:| 服务器会针对以下情况提供详细的错误消息:

  • 连接失败 | 连接失败
  • 无效的查询或参数 | 查询或参数无效
  • 缺少配置 | 缺少配置
  • 数据库错误 | 数据库错误
  • 架构验证错误 | 架构验证错误

贡献 | 贡献

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

欢迎贡献!欢迎向 https://github.com/yaoxiaolinglong/mcp-mongodb-mysql-server 提交 Pull Request。

致谢 | 致谢

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

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

许可证 | 许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。