Token导航 LogoToken导航

MCP Server · 数据服务

MCP Database Tools

一个自动化和简化Django数据库设置及管理的工具,支持PostgreSQL数据库创建、扩展启用、环境配置更新和Django命令执行。

stdio官方级别未说明来源级核验工具 4
数据分析工作流自动化PythonVS Code开发工具

快速开始

作者 / 组织
chaitanyaiscoding
提供方
chaitanyaiscoding
运行时
Python

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

MCP Database Tools 属于数据服务类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,适配 VS Code,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

仅本地运行

安装与配置

安装命令

python run_workflow.py mydb

客户端配置示例

{
  "mcpServers": {
    "mcp-database-tools": {
      "command": "python",
      "args": [
        "run_workflow.py",
        "mydb"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

MCP数据库工具服务器

📋 目录

______________________________________________________________________

🎯 概述

这个项目是 模型上下文协议(MCP)服务器 它自动化了Django数据库的设置和管理任务。它提供了以下工具:

  • 创建PostgreSQL数据库
  • 启用PostgreSQL扩展(hstore)
  • 更新Django.env配置文件
  • 执行Django管理命令

服务器与VS Code Copilot集成,可以通过以下方式访问:

  • VS代码MCP集成
  • 自动化工作流脚本

______________________________________________________________________

🏗️ 建筑

┌─────────────────────────────────────────────────────────────────┐
│                        MCP Client Layer                          │
│  ┌──────────────┐  ┌──────────────┐                           │
│  │  VS Code     │  │   Workflow   │                           │
│  │  Copilot     │  │   Scripts    │                           │
│  └──────┬───────┘  └──────┬───────┘                           │
└─────────┼──────────────────┼──────────────────┼──────────────────┘
          │                  │                  │
          └──────────────────┼──────────────────┘
                             │
                    ┌────────▼────────┐
                    │   MCP Server    │
                    │   (server.py)   │
                    │                 │
                    │  - list_tools() │
                    │  - call_tool()  │
                    └────────┬────────┘
                             │
          ┌──────────────────┼──────────────────┐
          │                  │                  │
    ┌─────▼─────┐     ┌─────▼─────┐     ┌─────▼─────┐
    │PostgreSQL │     │  Django   │     │   .env    │
    │ Database  │     │  Backend  │     │   File    │
    └───────────┘     └───────────┘     └───────────┘

______________________________________________________________________

📁 项目结构

MCP_project/
│
├── server.py                  # Main MCP server implementation
├── mcp.json                   # MCP server metadata
├── requirements.txt           # Python dependencies
│
* Web and CLI clients removed: The project no longer includes web_client.py or test_client.py files.
├── run_workflow.py           # Automated workflow executor
│
├── tools/                    # Utility modules (legacy/reference)
│   ├── __init__.py
│   ├── db_tools.py          # PostgreSQL database operations
│   ├── env_tools.py         # Environment file management
│   └── django_tools.py      # Django command execution
│
├── templates/               # Web UI templates
│   └── index.html          # Main web interface
│
└── venv/                   # Python virtual environment

______________________________________________________________________

🔄 组件流程

1. 核心服务器(Server.py)

系统的核心,实现MCP协议:

┌─────────────────────────────────────────────────────────┐
│                    server.py                             │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  Configuration:                                          │
│  ├─ PG_USER, PG_PASSWORD, PG_HOST                       │
│  ├─ DB_NAME (default: sample_project_db)                │
│  ├─ ENV_PATH (Django .env location)                     │
│  ├─ MANAGE_PY (Django manage.py location)               │
│  └─ PYTHON_EXEC (Virtual environment Python)            │
│                                                          │
│  MCP Server Decorators:                                 │
│  ├─ @server.list_tools() → Returns available tools      │
│  └─ @server.call_tool() → Executes tool operations      │
│                                                          │
│  Tools Implemented:                                      │
│  ├─ create_database(db_name)                            │
│  ├─ enable_hstore(db_name)                              │
│  ├─ update_env(db_name)                                 │
│  └─ django(cmd)                                          │
└─────────────────────────────────────────────────────────┘

主要特点:

  • 异步/等待架构 符合MCP协议
  • stdio通信 (非HTTP)用于MCP客户端集成
  • 自动小写转换 PostgreSQL数据库名称
  • 环境变量加载 Django命令的.env文件
  • 虚拟环境Python 执行以确保依赖关系

______________________________________________________________________

2. 工具:create_database

Input: { db_name: "mydb" }
│
├─ Converts db_name to lowercase ("mydb")
│
├─ Connects to PostgreSQL server (postgres database)
│  └─ Uses: PG_USER, PG_PASSWORD, PG_HOST
│
├─ Executes: CREATE DATABASE mydb;
│
└─ Returns: "Database mydb created."

PostgreSQL连接:

psycopg2.connect(
    dbname="postgres",
    user=PG_USER, 
    password=PG_PASSWORD,
    host=PG_HOST
)

______________________________________________________________________

3. 工具:enable_hstore

Input: { db_name: "mydb" }
│
├─ Converts db_name to lowercase
│
├─ Connects to the specified database
│
├─ Executes: CREATE EXTENSION IF NOT EXISTS hstore;
│
└─ Returns: "hstore extension enabled in mydb."

目的: 启用PostgreSQL的hstore扩展用于键值对存储。

______________________________________________________________________

4. 工具:update_env

Input: { db_name: "mydb" }
│
├─ Converts db_name to lowercase
│
├─ Reads ENV_PATH file
│
├─ Finds line: POSTGRES_DB_NAME=old_value
│  └─ Skips commented lines (#)
│
├─ Replaces with: POSTGRES_DB_NAME=mydb
│
└─ Returns: ".env updated: POSTGRES_DB_NAME=mydb"

文件操作:

  • 保留所有其他.env内容
  • 仅更新未注释的POSTGRES_DB_NAME行
  • 维护文件结构和格式

______________________________________________________________________

5. 工具:django

Input: { cmd: "migrate" }
│
├─ Loads environment from ENV_PATH using dotenv
│  └─ Merges with os.environ
│
├─ Executes: PYTHON_EXEC MANAGE_PY migrate
│  └─ In working directory: dirname(MANAGE_PY)
│  └─ With loaded environment variables
│
├─ Captures stdout and stderr
│
└─ Returns: Command output with exit code

执行流程:

subprocess.run(
    [PYTHON_EXEC, MANAGE_PY] + cmd.split(),
    cwd=workdir,
    env=env,  # Loaded from .env
    capture_output=True,
    text=True
)

为什么选择虚拟环境Python?

  • 虚拟环境中安装的Django和依赖项
  • 系统Python缺少必需的包
  • 确保一致的执行环境

______________________________________________________________________

客户端接口

访问服务器主要是通过VS Code MCP集成和自动化工作流脚本。

C 工作流自动化(run_Workflow.py)

Complete Database Setup Workflow
┌─────────────────────────────────────────┐
│  Step 1: Create database                 │
│  Step 2: Enable hstore extension         │
│  Step 3: Update .env file                │
│  Step 4: Run create_text_search_config   │
│  Step 5: Run migrations                  │
│  Step 6: Run update_fixtures             │
└─────────────────────────────────────────┘

用途:

python run_workflow.py mydb

它的作用:

  1. 创建PostgreSQL数据库“mydb”
  2. 启用hstore扩展
  3. 使用POSTGRES_DB_NAME=mydb更新.env
  4. 按顺序运行Django设置命令
  5. 报告每个步骤的成功/失败

______________________________________________________________________

🛠️ 安装和设置

先决条件

  • Python 3.12+
  • PostgreSQL服务器正在运行
  • Django项目(可选,用于Django命令)

步骤1:克隆/设置项目

cd /home/chaitanyaphani/MCP_project

第二步:创建虚拟环境

python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# or
venv\Scripts\activate  # Windows

步骤3:安装依赖项

pip install -r requirements.txt

依赖关系:

  • mcp -模型上下文协议SDK
  • Flask -Web UI框架
  • psycopg2-binary -PostgreSQL适配器
  • python-dotenv -环境文件支持

步骤4:配置PostgreSQL

编辑 server.py:

PG_USER = "postgres"
PG_PASSWORD = "your_password"  # Update this!
PG_HOST = "localhost"

步骤5:配置Django路径

编辑 server.py:

ENV_PATH = "/path/to/your/django/.env"
MANAGE_PY = "/path/to/your/django/manage.py"
PYTHON_EXEC = "/path/to/your/django/venv/bin/python"

步骤6:配置VS代码(可选)

编辑VS代码设置(settings.json):

{
  "mcpServers": {
    "dbtools": {
      "command": "python",
      "args": ["server.py"],
      "cwd": "/home/chaitanyaphani/MCP_project"
    }
  }
}

______________________________________________________________________

🚀 用法

方法1:自动化工作流程

python run_workflow.py database_name

方法2:VS代码复制

配置后,只需询问: 配置后,只需询问:

"Create a database named myproject, enable hstore, 
update the .env file, and run migrations"

______________________________________________________________________

⚙️ 配置

环境变量

服务器使用这些配置常量:

变量目的默认值
PG_USERPostgreSQL用户名postgres
PG_PASSWORDPostgreSQL密码root
PG_HOSTPostgreSQL主机localhost
PG_PORTPostgreSQL端口5432
DB_NAME默认数据库名称sample_project_db
ENV_PATHDjango.env文件路径/path/to/.env
MANAGE_PYDjango manage.py路径/path/to/manage.py
PYTHON_EXEC虚拟环境Python/path/to/venv/bin/python

Django.env文件格式

预期格式:

POSTGRES_DB_HOST=localhost
POSTGRES_DB_PORT=5432
POSTGRES_DB_NAME=mydb
POSTGRES_DB_USER=postgres
POSTGRES_DB_PASSWORD=password

______________________________________________________________________

🔍 故障排除

问题1:“AttributeError:'服务器'对象没有属性'define_tool'”

原因: 使用不正确的MCP装饰器语法。\ 解决方案: 使用 @server.list_tools() 和 @server.call_tool() 而不是 @server.define_tool.

问题2:“用户'postgres'的密码验证失败”

原因: PostgreSQL密码不正确。\ 解决方案: 更新 PG_PASSWORD 在 server.py 使用您的实际PostgreSQL密码。

问题3:“ModuleNotFoundError:没有名为'django'的模块”

原因: 使用系统Python而不是虚拟环境Python。\ 解决方案: 确保 PYTHON_EXEC 指向Django项目的虚拟环境Python。

问题4:“数据库'XX'不存在”(大写名称)

原因: PostgreSQL将未加引号的标识符转换为小写。\ 解决方案: 服务器现在自动将数据库名称转换为小写。

问题5:“.env已更新,但数据库名称未更改”

原因: 在.env文件中查找错误的变量名。\ 解决方案: 确保您的.env使用 POSTGRES_DB_NAME= (不是 POSTGRES_DB=).

问题6:“迁移后未创建表”

原因: 未加载环境变量,或Python可执行文件错误。\ 解决:

  • 验证 PYTHON_EXEC 指向正确的虚拟环境
  • 检查 .env 文件已加载并包含正确的数据库名称
  • 手动运行migrate以查看详细错误

______________________________________________________________________

📊 数据流图

完整工作流示例

User Request: "Create database 'myapp'"
│
├─ VS Code Copilot/Web UI/CLI
│  └─ Sends MCP request to server.py
│
├─ server.py receives call_tool("create_database", {"db_name": "myapp"})
│  │
│  ├─ Step 1: create_database
│  │  ├─ Convert "myapp" → "myapp" (lowercase)
│  │  ├─ Connect to PostgreSQL
│  │  ├─ Execute: CREATE DATABASE myapp;
│  │  └─ Return: "Database myapp created."
│  │
│  ├─ Step 2: enable_hstore
│  │  ├─ Connect to "myapp" database
│  │  ├─ Execute: CREATE EXTENSION IF NOT EXISTS hstore;
│  │  └─ Return: "hstore extension enabled in myapp."
│  │
│  ├─ Step 3: update_env
│  │  ├─ Read /path/to/.env
│  │  ├─ Find: POSTGRES_DB_NAME=olddb
│  │  ├─ Replace with: POSTGRES_DB_NAME=myapp
│  │  ├─ Write back to file
│  │  └─ Return: ".env updated: POSTGRES_DB_NAME=myapp"
│  │
│  └─ Step 4: django("migrate")
│     ├─ Load .env into environment
│     ├─ Execute: /venv/bin/python manage.py migrate
│     │  └─ Django reads POSTGRES_DB_NAME=myapp from env
│     │  └─ Connects to "myapp" database
│     │  └─ Applies migrations
│     └─ Return: Migration output
│
└─ Result returned to user

______________________________________________________________________

🎓 关键概念

模型上下文协议(MCP)

  • 协议 让AI助手与工具进行交互
  • 基于stdio 通信(非HTTP)
  • 异步/等待 需要图案
  • 工具注册 通过 list_tools()
  • 工具执行 通过 call_tool()

为什么是这种架构?

  1. 关注点分离:服务器逻辑与客户端接口分开
  2. 多个接口:相同的服务器,不同的访问方法
  3. 类型安全:带模式验证的MCP协议
  4. 错误处理:全面的错误报告
  5. 环境隔离:使用虚拟环境Python

PostgreSQL命名规则

  • 转换为小写的无引号标识符
  • CREATE DATABASE MyDB 创造 mydb
  • 服务器自动处理此转换

______________________________________________________________________

📝 工具参考

create_database

{
  "name": "create_database",
  "arguments": {
    "db_name": "string (optional, default: sample_project_db)"
  },
  "returns": "Database {db_name} created."
}

enable_hstore

{
  "name": "enable_hstore",
  "arguments": {
    "db_name": "string (optional, default: sample_project_db)"
  },
  "returns": "hstore extension enabled in {db_name}."
}

update_env

{
  "name": "update_env",
  "arguments": {
    "db_name": "string (optional, default: sample_project_db)"
  },
  "returns": ".env updated: POSTGRES_DB_NAME={db_name}"
}

姜戈

{
  "name": "django",
  "arguments": {
    "cmd": "string (required) - Django management command"
  },
  "returns": "Command output (stdout/stderr)"
}

常见的Django命令:

  • migrate -应用数据库迁移
  • makemigrations -创建新的迁移
  • create_text_search_config -自定义命令
  • update_fixtures -定制夹具管理
  • runserver -启动开发服务器

______________________________________________________________________

🤝 贡献

要使用新工具扩展此服务器,请执行以下操作:

  1. 在中添加工具定义 list_tools():
Tool(
    name="my_new_tool",
    description="What it does",
    inputSchema={
        "type": "object",
        "properties": {
            "param1": {"type": "string", "description": "..."}
        },
        "required": ["param1"]
    }
)
  1. 在中添加工具实现 call_tool():
elif name == "my_new_tool":
    param1 = arguments.get("param1")
    # Your logic here
    return [TextContent(type="text", text="Result")]

______________________________________________________________________

📞 支持

对于问题或疑问:

  1. 检查故障排除部分
  2. 验证中的配置 server.py
  3. 测试用 run_workflow.py 用于调试/自动化
  4. 检查PostgreSQL日志中的数据库问题
  5. 检查Django日志中的Django命令问题

______________________________________________________________________

📄 许可证

该项目是Altiushub后端基础设施的一部分。

______________________________________________________________________

最后更新时间: 2025年12月12日\ 版本: 1.0.0\ MCP协议版本: 与MCP SDK最新版本兼容

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

数据库管理Python本地部署Django工具PostgreSQL自动化工作流开发工具

支持客户端

VS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 VS Code 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Database Tools

MCP World · 本页

4stdio有2 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Database Tools 怎么安装?

公开资料给出的安装命令是 python run_workflow.py mydb,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Database Tools 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

MCP Database Tools 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Database Tools 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Database Tools 支持哪些客户端?

公开资料标注支持 VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP