npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hyqf98/easy_db_mcp_server

v3.0.0

Published

MCP server for database access (MySQL, PostgreSQL, SQLite)

Readme

EasyDB MCP Server

一个通过 npx 部署的 MCP 服务器,为 AI 助手提供统一的数据库访问接口。

版本

v3.0.0 - 支持动态连接管理,17 个数据库操作工具

支持的数据库

  • MySQL (5.7+)
  • PostgreSQL (12+)
  • SQLite (3+)

快速开始

npx hyqf98@easy_db_mcp_server

配置

环境变量

| 变量 | 必填 | 说明 | |-----|-----|------| | EASYDB_TYPE | 否 | 数据库类型:mysqlpostgresqlsqlite(不设置时需使用 create_connection 工具创建连接) | | EASYDB_HOST | 否 | 数据库主机(MySQL/PostgreSQL 连接时需要) | | EASYDB_PORT | 否 | 数据库端口(默认值:MySQL=3306、PostgreSQL=5432) | | EASYDB_USER | 否 | 数据库用户(MySQL/PostgreSQL 连接时需要) | | EASYDB_PASSWORD | 否 | 数据库密码(MySQL/PostgreSQL 连接时需要) | | EASYDB_DATABASE | 否 | 默认数据库名或 SQLite 文件路径 | | EASYDB_ALLOW_WRITE | 否 | 已弃用(v3.0+ 动态连接始终允许写入) | | EASYDB_ALLOW_DDL | 否 | 已弃用(v3.0+ 动态连接始终允许 DDL) |

配置示例

MySQL:

export EASYDB_TYPE=mysql
export EASYDB_HOST=localhost
export EASYDB_USER=root
export EASYDB_PASSWORD=secret
export EASYDB_DATABASE=mydb

PostgreSQL:

export EASYDB_TYPE=postgresql
export EASYDB_HOST=localhost
export EASYDB_USER=postgres
export EASYDB_PASSWORD=secret
export EASYDB_DATABASE=mydb

SQLite:

export EASYDB_TYPE=sqlite
export EASYDB_DATABASE=/path/to/database.db

Claude Desktop 配置

将以下配置添加到 Claude Desktop 配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "database": {
      "command": "npx",
      "args": ["@hyqf98/easy_db_mcp_server"],
      "env": {
        "EASYDB_TYPE": "mysql",
        "EASYDB_HOST": "localhost",
        "EASYDB_USER": "root",
        "EASYDB_PASSWORD": "your_password",
        "EASYDB_DATABASE": "mydb"
      }
    }
  }
}

Claude Code

claude mcp add --scope user --transport stdio easy_db_mcp_server --env EASYDB_TYPE=mysql --env EASYDB_HOST=host --env EASYDB_USER=root --env EASYDB_PASSWORD=123456 -- npx -y @hyqf98/easy_db_mcp_server

可用工具

连接管理工具 (v3.0.0 新增)

create_connection

创建新的数据库连接。

参数:

  • type(必填):数据库类型(mysqlpostgresqlsqlite
  • host(必填*):数据库主机(MySQL/PostgreSQL 必填)
  • port(可选):端口号(默认值:MySQL=3306、PostgreSQL=5432)
  • user(必填*):用户名(MySQL/PostgreSQL 必填)
  • password(必填*):密码(MySQL/PostgreSQL 必填)
  • database(必填):数据库名或 SQLite 文件路径
  • key(可选):自定义连接 key

返回:

{
  "success": true,
  "key": "mysql-prod",
  "message": "Connection created successfully"
}

list_connections

列出所有已创建的数据库连接。

参数:

返回:

{
  "connections": [
    {
      "key": "mysql-prod",
      "type": "mysql",
      "host": "localhost",
      "database": "production",
      "createdAt": "2026-02-05T10:00:00Z"
    }
  ],
  "count": 1
}

close_connection

关闭指定的数据库连接。

参数:

  • key(必填):要关闭的连接 key

close_all_connections

关闭所有数据库连接。

参数:

基础操作

list_tables

列出数据库中的所有表。

参数:

  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

示例:

请显示数据库中的所有表

describe_table

获取表的结构,包括列、类型和约束。

参数:

  • table(必填):表名
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

示例:

显示 users 表的结构

execute_query

执行 SELECT 查询(只读)。

参数:

  • sql(必填):SQL SELECT 查询语句
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

示例:

查找过去 7 天内创建的所有用户

execute_sql

执行任意 SQL 语句。

参数:

  • sql(必填):SQL 语句
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

批量操作(v2.0.0 新增)

execute_transaction

执行一组 SQL 语句作为事务,失败时自动回滚。

参数:

  • sql(必填):SQL 语句数组
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

示例:

在事务中插入用户和关联的配置数据

batch_insert

批量插入数据,支持多行一次性插入。

参数:

  • table(必填):表名
  • data(必填):数据行数组
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • insertedRows:成功插入的行数
  • duplicateRows:重复的行数

示例:

批量插入 100 条用户数据

batch_update

批量更新数据,基于条件更新。

参数:

  • table(必填):表名
  • updates(必填):
    • set:要更新的列值
    • where:WHERE 条件
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • affectedRows:受影响的行数

示例:

将所有状态为 inactive 的用户更新为 active

数据管理(v2.0.0 新增)

export_data

导出数据为 JSON/CSV 并保存到文件。

参数:

  • table(必填):表名
  • format(必填):导出格式(jsoncsv
  • filePath(可选):文件保存路径(默认:~/table_name.json
  • limit(可选):行数限制
  • where(可选):WHERE 条件
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • success:是否成功
  • filePath:实际保存路径
  • rowCount:导出的行数
  • fileSize:文件大小

示例:

导出 users 表为 JSON 文件

create_table

创建表。

参数:

  • table(必填):表名
  • columns(必填):列定义数组
    • name:列名
    • type:数据类型
    • nullable:是否可空
    • primaryKey:是否为主键
    • defaultValue:默认值
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • success:是否成功
  • tableName:表名

示例:

创建一个 products 表,包含 id、name、price 列

drop_table

删除表。

参数:

  • table(必填):表名
  • ifExists(可选):使用 IF EXISTS 避免表不存在时报错
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • success:是否成功
  • tableName:表名

示例:

删除 temp_data 表

数据分析(v2.0.0 新增)

get_table_stats

获取表的统计信息。

参数:

  • table(必填):表名
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • tableName:表名
  • rowCount:行数
  • columns:列数
  • indexes:索引列表
  • size:表大小

示例:

显示 orders 表的统计信息

preview_data

分页预览表数据。

参数:

  • table(必填):表名
  • page(可选):页码(默认:1)
  • pageSize(可选):每页行数(默认:50)
  • orderBy(可选):排序列
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • rows:数据行
  • currentPage:当前页码
  • totalPages:总页数
  • totalRows:总行数

示例:

预览 users 表的第 2 页,每页 20 条

sample_data

随机采样数据。

参数:

  • table(必填):表名
  • count(可选):采样数量(默认:10)
  • connectionKey(可选):连接 key(如果不指定,使用默认连接)

注意: 所有工具都支持 connectionKey 参数来指定使用哪个连接。如果不提供,则使用默认连接(如果有)。

返回:

  • rows:采样的数据行
  • sampleCount:实际采样数量

示例:

从 orders 表随机采样 5 条数据

安全性

v3.0.0+ 版本中,动态创建的连接默认允许所有操作(读取、写入、DDL)。请在使用 create_connection 工具时确保连接凭据的安全性。

如需限制操作权限,建议在数据库层面配置用户权限。

开发

# 安装依赖
npm install

# 构建
npm run build

# 开发模式运行
npm run dev

# 运行生产构建
npm start

版本历史

v3.0.0

  • 新增动态连接管理功能
  • 新增 4 个连接管理工具:create_connection, list_connections, close_connection, close_all_connections
  • 所有工具支持 connectionKey 参数指定连接
  • 移除 EASYDB_ALLOW_WRITE 和 EASYDB_ALLOW_DDL 限制

v2.0.0

  • 升级到 MCP SDK 1.25.3
  • 迁移到新的 McpServer API
  • 新增 9 个工具:execute_transaction, batch_insert, batch_update, export_data, create_table, drop_table, get_table_stats, preview_data, sample_data
  • 新增文件工具模块

v1.0.0

  • 初始版本
  • 支持 MySQL、PostgreSQL、SQLite
  • 4 个基础工具:list_tables, describe_table, execute_query, execute_sql

许可证

MIT