数据库开发工具插件

一个全面的数据库开发工具插件,支持PostgreSQL、SQLite、MySQL、Redis和MongoDB,提供95种工具。

  • by orchestra-mcp
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 orchestra-mcp/plugin-devtools-database

使用说明

Orchestra插件:devtools数据库

一个全面的数据库开发工具插件 乐团MCP 提供 95个MCP工具 跨5个数据库提供商。

支持的数据库

提供程序 驱动程序 DSN示例
PostgreSQL postgres postgres://user:pass@localhost:5432/mydb?sslmode=disable
SQLite sqlite / sqlite3 /path/to/database.db 或 :memory:
MySQL mysql user:pass@tcp(localhost:3306)/mydb
瑞迪斯 redis redis://localhost:6379/0
MongoDB mongodb mongodb://localhost:27017/mydb

安装

go install github.com/orchestra-mcp/plugin-devtools-database/cmd@latest

用法

添加到您的 plugins.yaml:

- id: tools.devtools-database
  binary: ./bin/devtools-database
  enabled: true

通过MCP连接:

{"name": "db_connect", "arguments": {"driver": "postgres", "dsn": "postgres://localhost:5432/mydb"}}

工具(共95个)

通用型(22种工具)

使用所有SQL提供程序(PostgreSQL、SQLite、MySQL)。

工具 说明
db_connect 连接到数据库(sqlite、postgres、mysql、mongodb、redis)
db_disconnect 断开与数据库的连接
db_list_connections 列出所有活动连接
db_create_database 创建新的SQLite数据库文件
db_drop_database 删除SQLite数据库文件
db_query 执行SELECT查询,返回JSON
db_export 将表格导出为CSV或JSON格式
db_import 将数据从CSV/JSON导入表中
db_list_tables 列出数据库中的表
db_describe_table 描述表列和类型
db_list_indexes 列出表上的索引
db_list_views 列出数据库中的视图
db_list_constraints 列出约束(PK、FK、唯一性、检查)
db_table_size 行数和存储大小
db_stats 数据库级统计
db_create_table 创建具有键入列的表
db_alter_table 添加、删除或重命名列
db_drop_table 放下一张桌子
db_create_index 创建索引
db_drop_index 删除索引
db_create_view 创建视图
db_drop_view 删除视图

PostgreSQL高级版(48个工具)

需要PostgreSQL连接。

类别 工具 计数
维护保养 pg_vacuum, pg_analyze, pg_reindex, pg_cluster 4
架构管理 pg_create_schema, pg_list_schemas, pg_drop_schema, pg_set_search_path, pg_get_search_path 5
分区 pg_create_partitioned_table, pg_create_partition, pg_list_partitions, pg_detach_partition 4
行级安全 pg_enable_rls, pg_disable_rls, pg_create_policy, pg_list_policies 4
复制 pg_replication_status, pg_list_replication_slots, pg_list_publications 3
扩展和性能 pg_list_extensions, pg_enable_extension, pg_table_bloat, pg_index_bloat 4
触发器 pg_create_trigger_function, pg_create_trigger, pg_list_triggers, pg_drop_trigger 4
倾听/通知 pg_notify, pg_listen, pg_list_channels 3
pg载体 pg_enable_vectors, pg_add_vector_column, pg_create_vector_index, pg_vector_search, pg_upsert_embedding, pg_bulk_upsert_embeddings, pg_vector_stats, pg_delete_embeddings 8
角色和权限 pg_list_roles, pg_create_role, pg_grant, pg_revoke 4
物化视图 pg_create_materialized_view, pg_refresh_materialized_view 2
全文搜索 pg_add_tsvector_column, pg_create_gin_index, pg_fts_search 3

Redis(16个工具)

需要Redis连接。

工具 操作
redis_keys 扫描、类型、ttl、del、存在、重命名、持久化、过期
redis_strings get、set、mget、mset、incr、decr、append等。
redis_hashes hget、hset、hgetall、hdel、hkeys、hvals等。
redis_lists lpush、rpush、lpop、rpop、lrange、llen等。
redis_sets sadd、srem、smembers、烧结、sunion、sdiff等。
redis_sorted_sets zadd、zrange、zrangebyscore、zscore、zrank等。
redis_streams xadd、xread、xrange、xlen、xinfo、xtrim等。
redis_pubsub 发布、pubsub_channels、pubsub_numsub、pubsub-numpat
redis_server 信息、数据库大小、配置、客户端列表、慢日志、内存使用
redis_flushdb 刷新数据库或所有数据库(破坏性)
redis_pipeline 带有可选MULTI/EXEC事务的批处理命令
redis_ttl_inspect 带类型信息的批量TTL检查
redis_scan_keys 深度按键扫描,包括类型、TTL、内存使用情况
redis_bitmap setbit、getbit、bitcount、bitpos、bitop
redis_hyperloglog pfadd、pfcount、pfmerge
redis_geo geoadd、geodist、geoos、geosearch

MongoDB(9个工具)

需要MongoDB连接。

工具 操作
mongo_documents find、find_one、insert_one、interest_many、update_one、update_many、delete_one、delete_many、count、distinct
mongo_aggregate 执行聚合管道($match、$group、$sort等)
mongo_indexes list、create、create_text、create_ttl、drop
mongo_collections 列表、创建、删除、重命名、统计
mongo_server server_status、db_stats、list_databases、current_op、build_info
mongo_schema 用于推断字段类型、验证收集的示例文档
mongo_bulk 批量插入/更新/删除操作
mongo_export 将集合导出到JSON文件
mongo_import 将JSON文件导入集合

建筑

internal/
├── db/
│   ├── manager.go           # Connection manager (SQL + NonSQL factories)
│   ├── provider.go           # Provider interface (20 methods) + types
│   └── providers/
│       ├── postgres.go       # PostgreSQL provider (pgx/v5)
│       ├── sqlite.go         # SQLite provider (modernc.org/sqlite)
│       ├── mysql.go          # MySQL provider (go-sql-driver/mysql)
│       ├── redis.go          # Redis provider (go-redis/v9)
│       └── mongodb.go        # MongoDB provider (mongo-driver/v2)
├── tools/
│   ├── db_*.go               # 22 universal tools
│   ├── pg_*.go               # 48 PostgreSQL-specific tools
│   ├── redis_*.go            # 16 Redis-specific tools
│   └── mongo_*.go            # 9 MongoDB-specific tools
└── plugin.go                 # Tool registration (95 tools)

提供者模式

每个数据库都有一个实现20方法的Provider db.Provider 界面。SQL提供程序是通过以下方式创建的 ProviderFactory (从 *sql.DB),而NoSQL提供商使用 NonSQLProviderFactory (直接从DSN字符串)。

特定于提供商的工具使用保护助手(getPostgresProvider, getRedisProvider, getMongoDBProvider)该类型断言连接的提供者,如果连接了错误的数据库类型,则返回用户友好的错误。

依赖项

  • github.com/jackc/pgx/v5 --PostgreSQL驱动程序
  • modernc.org/sqlite --纯Go SQLite驱动程序
  • github.com/go-sql-driver/mysql --MySQL驱动程序
  • github.com/redis/go-redis/v9 --Redis客户端
  • go.mongodb.org/mongo-driver/v2 --MongoDB驱动程序

相关包