Token导航 LogoToken导航TokenDH.com
Databasemcpserver logo
数据服务未说明官方级别未说明来源级核验

Databasemcpserver

MCP Server

一个功能强大的数据库操作 MCP (Model Context Protocol) 服务器,支持 19 种常用数据库类型,提供单实例多数据库动态切换、安全防护和高性能优化等功能。

工具数

51

提示词数

0

GitHub Stars

27

资源数

0
数据分析C#VS Code多数据库支持VS Code

安装说明

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

作者 / 组织

ttcc666

提供方

ttcc666

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

DatabaseMCP 数据库操作服务器

![NuGet](https://www.nuget.org/packages/DatabaseMcpServer) ![.NET Tool](https://www.nuget.org/packages/DatabaseMcpServer) ![License](LICENSE)

🇺🇸 English | 🇨🇳 中文 | 🌐 官网

一个功能强大的数据库操作 MCP (Model Context Protocol) 服务器,聚焦 19 种常用数据库类型(主流 + 特定场景 + 国产化/信创),支持 单实例多数据库动态切换,让 AI 助手能够安全、便捷地执行数据库操作。

✨ 核心特性

  • 🗄️ 多数据库支持 - 覆盖 17 种常用数据库(MySQL/PG/SQLServer/Oracle/MongoDB + SQLite/ClickHouse/TiDB/OceanBase + 达梦/人大金仓/华为 GaussDB/PolarDB/Vastbase/瀚高/神通/GoldenDB)
  • 🔄 单实例多数据库 - 一个 MCP Server 实例可配置和动态切换多个数据库连接
  • 🔒 安全防护 - 危险操作检测 + SQL 注入防护 + 敏感信息保护
  • 高性能优化 - SqlSugarScope 连接池复用 + 数据库特定优化 + 自动性能调优
  • 🔧 灵活配置 - 支持 JSON 配置文件,轻松管理多数据库连接
  • 💾 完整功能 - 50+ MCP 工具(当前约 58 个),涵盖查询、操作、架构管理、健康检查等
  • 🚀 生产就绪 - 支持事务、批量操作、存储过程、自动重连
  • 📦 .NET Global Tool - 简单安装,一键部署
  • 🌐 跨平台 - Windows、macOS、Linux 全面支持

🗄️ 支持的数据库类型

🔥 一线最常用

  • MySQL (默认)
  • PostgreSQL
  • SQL Server
  • Oracle
  • MongoDB

📊 特定场景常用

  • SQLite
  • ClickHouse
  • TiDB
  • OceanBase
  • ~~IBM DB2~~(已移除)
  • ~~SAP HANA~~(已移除)

🇨🇳 国产化/信创

  • 达梦数据库 (dm)
  • 人大金仓 (kdbndp/kingbase)
  • 华为 GaussDB / OpenGauss
  • PolarDB (polardb)
  • 海量数据库 (vastbase)
  • 瀚高数据库 (hg)
  • 神通数据库 (oscar)
  • GoldenDB (goldendb)

🚀 快速开始

第一步:安装 .NET Global Tool

# 安装最新版本
dotnet tool install --global DatabaseMcpServer

# 验证安装(CLI 本身没有 --version 参数;传入会得到退出码 2)
dotnet tool list --global | Select-String databasemcpserver

第二步:创建数据库配置文件

创建 databases.json 配置文件:

{
  "databases": [
    {
      "name": "default",
      "connectionString": "Server=localhost;Database=test;Uid=root;Pwd=123456;",
      "dbType": "MySql",
      "description": "默认数据库",
      "isDefault": true
    }
  ]
}

第三步:配置 MCP 客户端

创建 mcp.json 配置文件(VS Code: .vscode/mcp.json):

{
  "mcpServers": {
    "database": {
      "command": "DatabaseMcpServer",
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    }
  }
}

第四步:测试连接并执行查询

重启 IDE 后,在 AI 助手中测试:

"测试数据库连接"

系统返回:

{
  "success": true,
  "connected": true,
  "databaseType": "MySql"
}

💻 命令行模式(CLI)

从当前版本开始,DatabaseMcpServer 在保留原有 MCP stdio 模式的同时,也支持直接从命令行做两类事情:

  • 无参数:启动 stdio MCP server(兼容现有 MCP 客户端配置)
  • tool 子命令:直接调用已暴露的 MCP tool
  • init / config 子命令:初始化并维护本地 databases.json

基本用法

# 初始化默认配置文件(默认写到 %USERPROFILE%/.database-mcp/databases.json)
DatabaseMcpServer init

# 查看 / 管理本地连接配置
DatabaseMcpServer config list
DatabaseMcpServer config presets
DatabaseMcpServer config preset --db-type Sqlite
DatabaseMcpServer config create --from-preset Sqlite --name sqlite-local --connection-string "Data Source=./data/local.db;Cache=Shared;Mode=ReadWriteCreate;" --description "local sqlite" --set-default
DatabaseMcpServer config create --from-preset Sqlite --name sqlite-preview --print-only
DatabaseMcpServer config add --name sqlite-local --db-type Sqlite --connection-string "Data Source=./data/local.db;Cache=Shared;Mode=ReadWriteCreate;" --set-default
DatabaseMcpServer config rename --name sqlite-local --new-name sqlite-dev
DatabaseMcpServer config update --name sqlite-dev --description "dev sqlite" --set-default
DatabaseMcpServer config validate
DatabaseMcpServer config clone --name sqlite-dev --new-name sqlite-ci
DatabaseMcpServer config doctor
DatabaseMcpServer config export --output ".\\backup-databases.json"
DatabaseMcpServer config import --input ".\\backup-databases.json" --config "D:\config\databases.json" --force

# 列出所有可调用的 tool
DatabaseMcpServer tool list

# 查看某个 tool 的帮助
DatabaseMcpServer tool help switch_database

# 直接调用 tool
DatabaseMcpServer tool list_databases --config "D:\config\databases.json"
DatabaseMcpServer tool get_table_schema --table-name users --config "D:\config\databases.json"

参数规则

  • init / config 主要用于本地配置管理

- 默认操作 %USERPROFILE%/.database-mcp/databases.json - 可以用 --config 临时覆盖目标配置文件 - config use / config set-default 用来切换默认连接(写回 databases.json) - config rename / config update 用来演进已有连接 - config validate 用来做配置文件层校验(不是连通性测试) - config clone 用来快速复制连接 - config presets / config preset 用来查看内置连接模板 - config create --from-preset 用来直接基于模板生成连接骨架,也可顺手覆盖连接串/描述 - config update --clear-description 用来显式清空说明 - config doctor 用来做诊断,默认会测试各连接连通性,并给出修复建议;--summary-only 适合脚本 - config export / config import 用来备份和迁移配置文件

  • tool 名称与 MCP 中保持一致,使用 snake_case

- 例如:list_databasesget_table_schemaexecute_command

  • tool 参数统一映射为 kebab-case 选项

- 例如:databaseName -> --database-name - 例如:initialDelayMs -> --initial-delay-ms

  • tool switch_database 用来切换当前连接

- CLI 下会按“已解析 config 路径”持久化当前连接到 %USERPROFILE%/.database-mcp/cli-state.json - 不会修改 databases.json 里的默认连接 - 后续 tool get_current_database / tool list_databases / 查询类命令都会继续使用这个当前连接 - 只有在没有已保存当前连接,或保存的连接已失效时,才会回退到默认连接

  • CLI 全局选项:

- --config :本次调用临时指定配置文件 - --yes:执行写操作 / 高风险 schema tool 时必须显式确认 - --help:显示帮助

tool 模式下的配置文件查找顺序

如果执行的是 DatabaseMcpServer tool ...,且没有显式传 --config,CLI 会按以下顺序查找数据库配置:

  1. 当前目录 ./databases.json
  2. 当前目录 ./local-databases.json
  3. 环境变量 DB_CONFIG_PATH
  4. 用户目录 %USERPROFILE%/.database-mcp/databases.json

高风险命令确认

以下写操作 / 高风险命令必须追加 --yes

DatabaseMcpServer tool drop_table --table-name users --config "D:\config\databases.json" --yes
DatabaseMcpServer tool execute_command --sql "delete from users where id = 1" --config "D:\config\databases.json" --yes

CLI 模式下,命令结果 JSON 输出到 stdout,帮助和日志输出到 stderr,便于脚本集成。 另外,tool switch_databaseconfig use 语义不同:前者切换并持久化“当前连接”,后者修改配置文件中的“默认连接”。

详细命令说明见:

📦 安装方式

方式 1:.NET Global Tool(推荐)

安装

dotnet tool install --global DatabaseMcpServer
# 更新:dotnet tool update --global DatabaseMcpServer

MCP 配置

{
  "mcpServers": {
    "database": {
      "command": "DatabaseMcpServer",
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    }
  }
}

方式 2:dnx 命令

安装

dnx DatabaseMcpServer@2.2.2 --yes

MCP 配置

{
  "mcpServers": {
    "database": {
      "command": "dnx",
      "args": ["DatabaseMcpServer@2.2.2", "--yes"],
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    }
  }
}

方式 3:本地源码运行

运行

git clone https://github.com/ttcc666/DatabaseMcpServer.git
cd DatabaseMcpServer
# .NET 9
dotnet run --framework net9.0

# .NET 10
dotnet run --framework net10.0

MCP 配置

{
  "mcpServers": {
    "database-net9": {
      "command": "dotnet",
      "args": ["run", "--framework", "net9.0", "--project", "path/to/DatabaseMcpServer"],
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    },
    "database-net10": {
      "command": "dotnet",
      "args": ["run", "--framework", "net10.0", "--project", "path/to/DatabaseMcpServer"],
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    }
  }
}

⚙️ 配置指南

DatabaseMcpServer 2.0.0 统一使用 JSON 配置文件管理数据库连接。

配置文件方式(必需)

通过环境变量 DB_CONFIG_PATH 指定配置文件的绝对路径

MCP 配置示例:

{
  "mcpServers": {
    "database": {
      "command": "DatabaseMcpServer",
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    }
  }
}

databases.json 内容更新后,可以直接调用 reload_database_config,让 MCP 在不重启进程的情况下重新读取配置并刷新连接缓存。

配置文件格式 (databases.json):

{
  "databases": [
    {
      "name": "mysql-main",
      "connectionString": "Server=localhost;Database=myapp;User=root;Password=123456;",
      "dbType": "MySql",
      "description": "MySQL 主库",
      "isDefault": true,
      "optimizationSettings": {
        "enableCache": "true",
        "batchSize": "1000"
      }
    },
    {
      "name": "postgres-analytics",
      "connectionString": "Host=localhost;Database=analytics;Username=postgres;Password=123456;",
      "dbType": "PostgreSQL",
      "description": "PostgreSQL 分析库",
      "optimizationSettings": {
        "autoToLower": "true",
        "enableIlike": "true"
      }
    }
  ]
}

多数据库管理工具:

  • list_databases - 列出所有可用的数据库连接
  • switch_database - 切换到指定的数据库
  • get_current_database - 获取当前活动的数据库
  • test_connection_by_name - 测试指定数据库的连接

性能优化工具:

  • health_check - 对所有数据库连接执行健康检查(响应时间、连接状态)
  • test_connection_with_retry - 带自动重试的连接测试(指数退避策略)

🌐 环境配置

必需环境变量

  • DB_CONFIG_PATH: 数据库配置文件路径(必需)

- 示例: D:\config\databases.json

可选环境变量

  • SEQ_SERVER_URL: Seq 日志服务器地址(可选)
  • SEQ_API_KEY: Seq API 密钥(可选)
  • DB_DDL_WHITELIST: DDL 操作白名单(可选,分号分隔的正则表达式)

数据库特定优化配置

从 2.0.0 版本开始,所有数据库特定优化配置都在 databases.jsonoptimizationSettings 中设置。

详细配置文档


🔄 从 1.x 迁移到 2.0

⚠️ 破坏性变更

DatabaseMcpServer 2.0.0 移除了环境变量配置方式,统一使用 JSON 配置文件。

迁移步骤

1. 单数据库配置迁移

旧方式(1.x - 已废弃):

{
  "mcpServers": {
    "database": {
      "command": "DatabaseMcpServer",
      "env": {
        "DB_CONNECTION_STRING": "Server=localhost;Database=test;...",
        "DB_TYPE": "MySql",
        "DB_DM_LOWERCASE_TABLES": "true"
      }
    }
  }
}

新方式(2.0):

  1. 创建 databases.json 文件:
{
  "databases": [
    {
      "name": "default",
      "connectionString": "Server=localhost;Database=test;...",
      "dbType": "MySql",
      "description": "默认数据库",
      "isDefault": true,
      "optimizationSettings": {
        "lowercaseTables": "true"
      }
    }
  ]
}
  1. 更新 MCP 配置:
{
  "mcpServers": {
    "database": {
      "command": "DatabaseMcpServer",
      "env": {
        "DB_CONFIG_PATH": "D:\\config\\databases.json"
      }
    }
  }
}

2. 环境变量映射表

旧环境变量新 JSON 配置路径
DB_CONNECTION_STRINGdatabases[].connectionString
DB_TYPEdatabases[].dbType
DB_DM_LOWERCASE_TABLESdatabases[].optimizationSettings.lowercaseTables
DB_KDBNDP_MODEdatabases[].optimizationSettings.mode
DB_GAUSSDB_NATIVE_DRIVERdatabases[].optimizationSettings.nativeDriver
DB_ORACLE_CAMEL_CASEdatabases[].optimizationSettings.camelCase
DB_POSTGRES_AUTO_TO_LOWERdatabases[].optimizationSettings.autoToLower
DB_SQLITE_ENABLE_DEFAULT_VALUEdatabases[].optimizationSettings.enableDefaultValue
DB_DISABLE_NVARCHARdatabases[].optimizationSettings.disableNvarchar

完整映射表请参考各数据库配置文档。

3. 自动迁移检测

如果您仍在使用旧的环境变量配置,DatabaseMcpServer 2.0.0 会自动检测并显示详细的迁移提示。

常用数据库连接字符串示例

数据库连接字符串示例详细文档
MySQLServer=localhost;Port=3306;Database=mydb;User=root;Password=123456;MySQL.md
PostgreSQLHost=localhost;Port=5432;Database=mydb;Username=postgres;Password=123456;PostgreSQL.md
SQL ServerServer=localhost;Database=mydb;User Id=sa;Password=123456;SQLServer.md
OracleData Source=localhost/orcl;User ID=system;Password=oracle123;Oracle.md
MongoDBmongodb://localhost:27017/mydbMongoDB.md
SQLiteData Source=mydb.db;SQLite.md
ClickHouseHost=localhost;Port=8123;User=default;Password=;Database=default;ClickHouse.md
TiDBServer=localhost;Port=4000;Database=mydb;User=root;Password=123456;TiDB.md
OceanBaseServer=localhost;Port=2881;Database=mydb;User=root@sys;Password=123456;OceanBase.md
OceanBase (Oracle 模式)Driver={OceanBase ODBC 2.0 Driver};Server=172.19.9.9;Port=2883;Database=TRD;User=USER@TENANT#CLUSTER:1650773680;Password=123456;Option=3;OceanBase.md
QuestDBhost=localhost;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;QuestDb.md
DuckDBDataSource=train_services.dbDuckDB.md
达梦数据库Server=localhost;Port=5236;Database=mydb;User=SYSDBA;Password=SYSDBA001;DM.md
人大金仓Server=localhost;Port=54321;Database=mydb;User=SYSTEM;Password=system123;Kdbndp.md
GBase 8sHost=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8GBase.md
GaussDB / OpenGaussPORT=5432;DATABASE=mydb;HOST=localhost;PASSWORD=Gauss@123;USER ID=gaussdb;GaussDB.md
PolarDBServer=localhost;Port=3306;Database=mydb;User=root;Password=123456;PolarDB.md
VastbaseHost=localhost;Port=5432;Database=mydb;Username=vastbase;Password=123456;Vastbase.md
TDengineHost=localhost;Port=6030;Username=root;Password=taosdata;Database=powerTDengine.md
瀚高数据库Server=localhost;Port=5866;Database=mydb;Uid=highgo;Pwd=123456;HighGo.md
神通数据库Data Source=localhost;User Id=sysdba;Password=oracle;Oscar.md
GoldenDBServer=localhost;Port=1888;Database=mydb;Uid=golden;Pwd=123456;GoldenDB.md

更多连接字符串和优化配置请参考 DatabaseSetting/ 目录下的详细文档。


📋 完整功能清单(约 58 个工具)

🔌 一、连接与配置管理

基础连接管理:

  • test_connection - 测试当前数据库连接
  • test_connection_by_name - 测试指定数据库的连接
  • get_database_config - 获取当前数据库配置信息
  • validate_configuration - 验证数据库配置是否正确
  • reload_database_config - 重新加载 databases.json 并刷新当前配置缓存

多数据库管理:

  • list_databases - 列出所有可用的数据库连接
  • switch_database - 切换到指定的数据库
  • get_current_database - 获取当前活动的数据库

性能与健康检查:

  • health_check - 对所有数据库连接执行健康检查(响应时间、连接状态)
  • test_connection_with_retry - 带自动重试的连接测试(指数退避策略)

🔍 二、数据库架构查询

  • get_data_base_list - 获取所有数据库名称
  • get_table_info_list - 获取所有表名
  • get_view_info_list - 查询所有视图
  • get_column_infos_by_table_name - 根据表名获取字段信息
  • get_table_schema - 获取表的完整结构信息
  • get_is_identities - 获取自增列
  • get_primaries - 获取主键
  • get_index_list - 获取所有索引名字集合
  • get_proc_list - 获取存储过程名字集合
  • get_func_list - 获取函数集合
  • get_trigger_names - 根据表名获取触发器集合

🔎 三、存在性检查

  • is_any_table - 判断表是否存在
  • is_any_column - 判断列是否存在
  • is_any_constraint - 判断约束是否存在
  • is_any_table_remark - 判断是否存在表描述

📊 四、数据查询工具

基础查询:

  • sql_query - 执行 SQL 查询并返回强类型实体集合(支持参数化查询)
  • sql_query_single - 执行 SQL 查询并返回单条记录

高级查询:

  • get_data_set_all - 获取多个结果集,支持一次执行多个查询
  • sql_query_with_in_parameter - 处理 IN 参数查询,支持数组参数

标量值查询:

  • get_scalar - 获取首行首列的值(标量值)

✏️ 五、数据操作工具

  • execute_command - 执行 SQL 命令(INSERT、UPDATE、DELETE)
  • batch_execute_commands - 批量执行 SQL 命令(性能优化)
  • call_stored_procedure - 调用存储过程(简单用法)
  • call_stored_procedure_with_output - 调用带有输出参数的存储过程
  • execute_command_with_go - 执行包含 GO 语句的 SQL Server 脚本

🛠️ 六、数据库架构操作(高风险)

表操作:

  • drop_table - 删除表
  • truncate_table - 清空表
  • backup_table - 备份表
  • rename_table - 重命名表

列操作:

  • add_column - 添加列
  • update_column - 更新列
  • drop_column - 删除列
  • rename_column - 重命名列

约束和索引:

  • add_primary_key - 添加主键
  • drop_constraint - 删除约束
  • create_index - 创建索引或唯一约束

其他:

  • add_default_value - 添加默认值
  • add_table_remark - 添加表描述
  • add_column_remark - 添加列描述
  • delete_table_remark - 删除表描述
  • delete_column_remark - 删除列描述

*完整工具列表请参考 .mcp/server.json*

💡 使用示例

示例 1:基础连接与查询

测试数据库连接

测试数据库连接

列出所有表

列出当前数据库的所有表

查询用户数据

查询 users 表中的所有数据

示例 2:参数化查询

条件查询

查询 users 表中年龄大于 25 岁的活跃用户,按创建时间倒序排列

IN 参数查询

查询用户ID在 [1,2,3,4,5] 中的用户信息

多条件查询

查询城市为"北京"、年龄在 20-30 之间、状态为活跃的用户

示例 3:数据统计与分析

聚合查询

统计 products 表中每个分类的商品数量和平均价格

多结果集查询

同时查询:1) 用户总数和活跃用户数量 2) 最近 7 天的订单数据

标量值查询

获取订单表中订单状态为"已完成"的总金额

示例 4:数据操作

插入新数据

向 products 表插入新商品:名称为"MacBook Pro M3",价格为 14999,库存为 50

批量更新

批量更新以下用户的VIP状态:用户ID 1,3,5,7,9 设置为VIP,其他设置为普通用户

事务操作

执行转账操作:从账户A(ID:1001)转账 500 元到账户B(ID:1002)

示例 5:架构查询

获取表结构

获取 orders 表的完整结构信息:列、主键、索引、自增列等

查询索引信息

查询 users 表的所有索引信息

检查表是否存在

检查数据库中是否存在名为"user_logs"的表

示例 6:存储过程调用

简单存储过程

调用存储过程 sp_monthly_report,传入参数年份 2025,月份 11

带输出参数的存储过程

调用存储过程 sp_user_statistics,传入用户ID 1001,获取该用户的订单总数和总金额

🔒 安全特性

危险操作检测

系统自动检测并阻止以下危险操作:

  • DROP TABLE / DROP DATABASE - 删除表/数据库
  • TRUNCATE TABLE - 清空表数据
  • ALTER TABLE - 修改表结构
  • 无 WHERE 条件的 DELETE / UPDATE

如需执行这些操作,请使用专门的架构操作工具(如 drop_tabletruncate_table 等),这些工具会明确提示风险。

SQL 注入防护

所有查询都支持参数化查询,自动防止 SQL 注入:

{
  "sql": "SELECT * FROM users WHERE age > @age AND city = @city",
  "parameters": "{\"age\":18,\"city\":\"北京\"}"
}

敏感信息保护

  • 连接字符串中的密码自动隐藏(显示为 Password=****
  • 日志中不输出完整连接字符串
  • 配置信息返回时自动脱敏

💻 开发指南

本地开发

# 克隆项目
git clone https://github.com/ttcc666/DatabaseMcpServer.git
cd DatabaseMcpServer

# 创建配置文件 databases.json 后运行
DB_CONFIG_PATH="path/to/databases.json" dotnet run --framework net9.0

# 或使用 .NET 10
DB_CONFIG_PATH="path/to/databases.json" dotnet run --framework net10.0

# 构建项目
dotnet build

# 运行测试
dotnet test

# 打包发布
dotnet pack -c Release

推荐的稳定验证方式:

.\scripts\verify.ps1

🆕 版本发布

  • 2.1.1

- 新增 reload_database_config,支持运行时重新加载 DB_CONFIG_PATH 指向的数据库配置 - 刷新配置时同步清空客户端缓存,确保后续请求使用新的连接信息 - 增补配置刷新与客户端重建测试,发版前验证覆盖更完整

  • 2.2.2

- 修复 CLI 模式下 switch_database 仅在单次进程内生效的问题,改为按配置文件路径持久化“当前连接” - 新增状态恢复 / 配置路径隔离 / 失效连接回退默认连接的测试覆盖 - 更新 NuGet / MCP manifest / README 版本元数据,便于 2.2.2 打包发布

  • 2.2.1

- 收敛并优化 database-mcp-cli skill 的触发词、CLI 工作流说明与故障排查矩阵 - 新增 agents/openai.yaml,补齐 UI metadata,使 skill 展示与触发语义一致 - 更新 NuGet / MCP manifest / README 版本元数据,便于 2.2.1 打包发布

  • 2.2.0

- 新增 CLI 模式:支持 DatabaseMcpServer tool 直接调用已有数据库工具 - 保留无参数 stdio MCP server 兼容行为,并新增 tool list / tool help / --config / --yes - CLI 模式默认仅输出工具结果 JSON,避免日志污染 stdout - 补充 CLI 文档、全量 SQLite/SQL Server 验证脚本与 database-mcp-cli skill 草案

  • 2.1.0

- 版本号统一至 2.1.0(徽标/示例命令/配置) - 为工具、服务、策略等补充中文 XML 注释,便于智能提示与维护 - 精简冗余工具接口(多型标量/重复查询/重复 DML 包装),保持核心能力 - 修复模型非空属性警告,构建无警告

添加新工具

  1. 创建工具类文件
   # 在 Tools/ 目录下创建新工具类
   # Management/ - 连接和架构管理
   # Query/ - 查询工具
   # Command/ - 命令工具
  1. 实现工具类
   using System.ComponentModel;
   using ModelContextProtocol.Server;
   using DatabaseMcpServer.Interfaces;

   namespace DatabaseMcpServer.Tools;

   [McpServerToolType]
   internal class YourNewTools
   {
       private readonly IDatabaseConfigService _databaseConfig;
       private readonly IDatabaseHelperService _databaseHelper;

       public YourNewTools(IDatabaseConfigService databaseConfig, IDatabaseHelperService databaseHelper)
       {
           _databaseConfig = databaseConfig;
           _databaseHelper = databaseHelper;
       }

       [McpServerTool]
       [Description("你的工具描述")]
       public string YourMethod([Description("参数描述")] string parameter)
       {
           using var db = _databaseConfig.CreateClient();
           // 实现你的功能
           return _databaseHelper.SerializeResult(new { success = true, data = "result" });
       }
   }
  1. 注册工具

Program.cs 中:

   builder.Services
       .AddMcpServer()
       .WithStdioServerTransport()
       .WithTools()
       .WithTools()
       .WithTools()
       .WithTools()
       .WithTools()
       .WithTools();

项目架构

MCP Protocol Layer (stdio)
    ↓
Tools Layer (Connection/Query/Command/Schema)
    ↓
Services Layer (DatabaseConfigService)
    ↓
Data Access Layer (SqlSugar ORM)

关键组件:

  • DatabaseConfigService - 配置管理和连接创建
  • DatabaseHelper - 数据库类型解析和安全检查
  • McpExceptionFilter - 统一异常处理
  • ApiResult - 标准化返回格式

🛠️ 技术栈

  • .NET 9.0 - 最新的 .NET 平台
  • ModelContextProtocol 1.0.0 - MCP 协议 C# SDK
  • SqlSugarCore 5.1.4 - 轻量级高性能 ORM
  • Serilog - 结构化日志框架
  • Microsoft.Extensions.Hosting - 依赖注入和托管

📚 相关资源

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目
  2. 创建特性分支:git checkout -b feature/AmazingFeature
  3. 提交更改:git commit -m 'Add AmazingFeature'
  4. 推送到分支:git push origin feature/AmazingFeature
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

⚠️ 免责声明

  • 本项目已发布 2.2.2 正式版本
  • 2.0.0 版本包含破坏性变更,请参考迁移指南
  • 生产环境使用前请充分测试
  • 定期备份重要数据
  • 注意配置中的敏感信息保护

DatabaseMCP - 让 AI 助手轻松操作数据库!

目录标签

目录标签

数据分析C#VS Code多数据库支持数据库管理本地部署安全防护高性能优化跨平台

支持客户端

VS Code

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

51

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP