Token导航 LogoToken导航TokenDH.com
MCP Multiple Db Toolbox logo
数据服务stdio官方级别未说明来源级核验

MCP Multiple Db Toolbox

MCP Server

MCP多数据库连接工具是一个统一网关,支持通过单一服务器同时连接和管理PostgreSQL、MongoDB和Redis等多种数据库,并自动生成相应工具。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
数据库连接PostgreSQLMongoDB

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

trupti79916

提供方

trupti79916

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP多数据库工具包

使用1台MCP服务器连接到多个数据库。

概述

此MCP(模型上下文协议)服务器提供了一个统一的网关,可以同时与多个数据库交互。它支持PostgreSQL、MongoDB和Redis,并根据您的配置自动生成工具。

建筑

  • 单MCP服务器:一个服务器实例处理所有数据库连接
  • 动态工具生成:工具会根据您的 config.yaml
  • 连接池:高效的连接管理,实现最佳性能
  • SSE/HTTP协议:用于远程服务器访问的流式HTTP传输
  • 安全凭据:敏感数据的环境变量

安装

先决条件

  • Python 3.8+

设置

  1. 克隆存储库:
git clone https://github.com/trupti79916/mcp-multiple-db-toolbox.git
cd mcp-multiple-db-toolbox
  1. 安装依赖项:
pip install -r requirements.txt
  1. 配置您的数据库:
cp .env.example .env
# Edit .env with your actual credentials
  1. 更新 config.yaml 使用您的数据库配置(请参阅配置部分)

配置

config.yaml

只配置您需要的数据库! 您不必设置所有数据库类型,只需取消注释并配置要使用的类型即可。

MCP服务器将仅为您配置的数据库自动创建工具。

示例1:仅限PostgreSQL

databases:
  - id: "prod_postgres"
    type: "postgres"
    host: "localhost"
    port: 5432
    user: "${PROD_POSTGRES_USER}"
    password: "${PROD_POSTGRES_PASSWORD}"
    dbname: "prod"

示例2:MongoDB Atlas(云)

databases:
  - id: "atlas_mongo"
    type: "mongodb"
    uri: "${MONGODB_ATLAS_URI}"
    database: "production"

以...为背景 .env:

MONGODB_ATLAS_URI=mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority

示例3:多个数据库

databases:
  - id: "prod_postgres"
    type: "postgres"
    host: "localhost"
    port: 5432
    user: "${PROD_POSTGRES_USER}"
    password: "${PROD_POSTGRES_PASSWORD}"
    dbname: "prod"

  - id: "atlas_mongo"
    type: "mongodb"
    uri: "${MONGODB_ATLAS_URI}"
    database: "production"

  - id: "cache_redis"
    type: "redis"
    host: "localhost"
    port: 6379
    db: 0

示例3:多个PostgreSQL实例

databases:
  - id: "prod_postgres"
    type: "postgres"
    host: "prod-db.example.com"
    port: 5432
    user: "${PROD_POSTGRES_USER}"
    password: "${PROD_POSTGRES_PASSWORD}"
    dbname: "prod"

  - id: "analytics_postgres"
    type: "postgres"
    host: "analytics-db.example.com"
    port: 5432
    user: "${ANALYTICS_POSTGRES_USER}"
    password: "${ANALYTICS_POSTGRES_PASSWORD}"
    dbname: "analytics"

环境变量

创建一个 .env 文件基于 .env.example:

# PostgreSQL
PROD_POSTGRES_USER=your_username
PROD_POSTGRES_PASSWORD=your_password

# Add other credentials as needed

备注:价值观 config.yaml 使用 ${VAR_NAME} 语法将替换为环境变量。

运行服务器

使用SSE传输启动MCP服务器:

python main.py

服务器将:

  1. 从加载配置 config.yaml
  2. 验证环境变量
  3. 初始化数据库连接器
  4. 使用HTTP/SSE协议启动MCP服务器
  5. 监听传入请求

可用工具

工具会根据您的数据库配置自动生成:

PostgreSQL工具

query_postgres

对PostgreSQL数据库执行SQL查询。

参数:

  • db_id (str):数据库标识符(例如“prod_postgres”)
  • query (str):要执行的SQL查询
  • params (str,可选):查询参数的JSON字符串

例子:

query_postgres(
    db_id="prod_postgres",
    query="SELECT * FROM users WHERE id = %s",
    params='[1]'
)

MongoDB工具

find_mongodb

在MongoDB集合中查找文档。

参数:

  • db_id (str):数据库标识符(例如“dev_mongo”)
  • collection (str):集合名称
  • query (str):以JSON字符串形式查询筛选器
  • projection (str,可选):投影为JSON字符串

例子:

find_mongodb(
    db_id="dev_mongo",
    collection="users",
    query='{"age": {"$gt": 18}}',
    projection='{"name": 1, "email": 1}'
)

insert_mongodb

将文档插入MongoDB集合。

参数:

  • db_id (str):数据库标识符
  • collection (str):集合名称
  • document (str):作为JSON字符串插入的文档

例子:

insert_mongodb(
    db_id="dev_mongo",
    collection="users",
    document='{"name": "John", "age": 30}'
)

Redis工具

get_redis

从Redis缓存中获取值。

参数:

  • db_id (str):数据库标识符(例如“cache_redis”)
  • key (str):要检索的密钥

set_redis

在Redis缓存中设置一个值。

参数:

  • db_id (str):数据库标识符
  • key (str):设置键
  • value (str):要存储的值
  • expiry (int,可选):过期时间(秒)

delete_redis

从Redis缓存中删除密钥。

参数:

  • db_id (str):数据库标识符
  • key (str):删除键

项目结构

mcp-multiple-db-toolbox/
├── main.py                 # Main MCP server with FastMCP
├── config.yaml            # Database configurations
├── config_parser.py       # Configuration loader with validation
├── requirements.txt       # Python dependencies
├── .env.example          # Environment variables template
├── connectors/           # Database connector modules
│   ├── postgres.py       # PostgreSQL connector
│   ├── mongodb.py        # MongoDB connector
│   └── redis.py          # Redis connector
└── README.md

错误处理

服务器包括全面的错误处理:

  • 配置错误:启动时验证config.yaml和环境变量
  • 连接错误:妥善处理数据库连接失败
  • 查询错误:格式错误查询的详细错误消息
  • 日志记录:记录所有操作以进行调试

常见用例

用例1:仅限PostgreSQL

非常适合只使用PostgreSQL数据库的团队:

  • 在中仅配置PostgreSQL数据库 config.yaml
  • 创建的工具: query_postgres 对于每个数据库
  • 仅设置PostgreSQL环境变量

用例2:微服务架构

不同的服务使用不同的数据库:

  • 为主要应用程序数据配置Postgres
  • 配置MongoDB用于文档存储
  • 配置Redis进行缓存
  • 所有这些都可以通过一个MCP服务器访问!

用例3:多环境

相同的数据库类型,不同的环境:

databases:
  - id: "prod_postgres"
    # Production database config
  - id: "staging_postgres"
    # Staging database config
  - id: "dev_postgres"
    # Development database config

用例4:分析+操作

用于不同目的的单独数据库:

  • 用于事务数据的PostgreSQL操作
  • 分析MongoDB的聚合数据
  • Redis用于实时缓存

添加新数据库

  1. 向添加新条目 config.yaml:
databases:
  - id: "new_db"
    type: "postgres"  # or mongodb, redis
    # ... connection details
  1. 在中设置所需的环境变量 .env
  1. 重新启动服务器

工具将自动生成!

发展

测试配置

测试您的配置:

python config_parser.py

添加对新数据库类型的支持

  1. 在中创建新连接器 connectors/
  2. 在中添加工具功能 main.py 使用 @mcp.tool() 装饰器
  3. 更新配置验证 config_parser.py

许可证

许可证 文件以获取详细信息。

贡献

欢迎投稿!请随时提交拉取请求。

目录标签

目录标签

数据库连接PostgreSQLMongoDBPython本地部署多数据库管理Redis自动化工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP