mcpField
D
docbase

docbase

本地服务
github.com/CloudCorpRecords数据库02 周前更新

关于 docbase

docbase 为 Agent 和命令行用户提供 MongoDB 查询与管理工具。它将经过验证的输入映射为 MongoDB 命令文档,并通过 mongosh 执行,不内置 MongoDB 驱动。

主要功能

  1. 01浏览数据库与集合
  2. 02查询并聚合文档
  3. 03插入、更新和删除文档
  4. 04管理集合与索引
  5. 05查看统计信息、日志和查询计划

适用场景

  1. 01查找或聚合集合中的文档
  2. 02管理集合索引与结构
  3. 03查看数据库统计或解释查询计划

MCP 相关

stdio MCP 服务提供浏览、查询、修改和管理 MongoDB 数据库的工具。执行实时操作需要 PATH 中有 mongosh,且 MongoDB 实例可连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-docbase": {
"command": "npx",
"args": [
"-y",
"@reneturcios/docbase"
]
}
}
}
启动命令npx -y @reneturcios/docbase

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/docbase0.1.0
ocighcr.io/cloudcorprecords/docbase:0.1.0

工具

22

收录的工具列表 · 更新于 2 周前

参数类型必填说明
connectionStringstring否用于连接的 MongoDB 连接字符串(mongodb:// 或 mongodb+srv://);此调用会覆盖已配置的连接。

详细介绍

docbase

docbase 为 Agent(或在终端操作的你)提供一整套 MongoDB 数据库工具:浏览数据库和集合、运行 find 查询和聚合管道、插入、更新和删除文档、管理索引和集合、读取数据库统计信息和服务日志,并让服务解释查询计划。

它不内置 MongoDB 驱动。每次工具调用都会先映射为普通的 MongoDB 命令文档({ find: ... }、{ aggregate: ... }、{ createIndexes: ... }),默认执行器则通过 mongosh 命令行客户端运行该文档,并调用 db.runCommand(...)。因此,需要获取实时结果的机器必须在 PATH 中配置 mongosh,并能连接到 MongoDB 实例。缺少其中任一条件时,服务仍会启动并列出工具;只有在实际调用时才会以通俗语言报告问题。

安装

npx @reneturcios/docbase call list-databases

或者运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/docbase

容器默认启动 MCP 服务(见下文)。请注意,标准镜像未捆绑 mongosh 二进制文件,因此容器中的实时查询需要使用主机提供的 mongosh,或将其挂载到镜像中。

CLI

# Run one tool; the JSON-args argument is optional for no-arg tools
docbase call list-databases
docbase call find '{"database":"shop","collection":"users","filter":{"active":true},"limit":5}'
docbase call db-stats '{"database":"shop"}'

# Start the MCP server (connection string optional, see below)
docbase mcp mongodb://alice@localhost:27017/shop

docbase --version

退出代码:成功时为 0;工具调用、连接或 mongosh 本身失败时为 1(错误消息会说明具体原因);用法错误时为 2。

连接字符串是标准的 MongoDB URL(mongodb:// 或 mongodb+srv://)。对于 mcp 和 call,可以不在命令行中提供连接字符串,而改用 MDB_MCP_CONNECTION_STRING 环境变量。connect 工具还接受 connectionString 参数,该参数会经过验证,并用于本次调用的 ping。

调用流程

  1. 验证参数(必需的数据库/集合名称、对象类型的筛选条件、非空文档数组等)。无效调用会在到达执行器之前失败。
  2. 将调用映射为命令文档。例如,update-many 会转换为 { update: <collection>, updates: [{ q: filter, u: update, multi: true }] }。
  3. 执行器运行该文档。三个工具会对回复进行后处理:collection-schema 会对 25 个文档进行采样($sample),并据此推断字段到类型的映射;mongodb-logs 会运行 getLog,并对返回的行应用指定的 limit;export 会运行 find,并以指定的导出标题返回匹配的文档。

MCP 服务

一个可执行文件同时提供两种入口。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/docbase mcp mongodb://alice@localhost:27017/shop

MCP 客户端配置:

{
  "mcpServers": {
    "docbase": {
      "command": "npx",
      "args": ["-y", "@reneturcios/docbase", "mcp"],
      "env": { "MDB_MCP_CONNECTION_STRING": "mongodb://alice@localhost:27017/shop" }
    }
  }
}
工具
工具必需可选功能
connect—connectionStringPing 实例(验证提供的连接字符串)
list-databases——列出所有数据库(listDatabases)
list-collectionsdatabase—列出数据库中的集合
collection-schemadatabase、collection—根据 25 个文档的样本推断字段类型
collection-indexesdatabase、collection—列出集合的索引
collection-storage-sizedatabase、collection—集合存储统计信息(collStats)
finddatabase、collectionfilter、projection、limit、sort执行 find 查询
aggregatedatabase、collection、pipeline—执行聚合管道
countdatabase、collectionquery统计匹配的文档数
insert-manydatabase、collection、documents—插入文档(按顺序)
update-manydatabase、collection、filter、update—更新所有匹配的文档
delete-manydatabase、collection、filter—删除所有匹配的文档
create-collectiondatabase、collection—创建集合
drop-collectiondatabase、collection—删除集合
drop-databasedatabase—删除数据库
rename-collectiondatabase、collection、newName—重命名集合(在同一数据库中)
create-indexdatabase、collection、keys—创建索引;索引名称根据键生成
drop-indexdatabase、collection、indexName—按名称删除索引
explaindatabase、collectionmethod、methodArgs解释查询计划(queryPlanner 详细程度)
exportdatabase、collectionexportTitle、filter在导出标题下返回匹配的文档
db-statsdatabase—数据库统计信息(dbStats)
mongodb-logs—limit、type读取服务日志行(getLog,默认为 global)

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network, no live database
npm run dev     # run the CLI from source via tsx

所有命令构造、验证、架构推断和日志限制功能都由测试覆盖。测试通过虚拟执行器驱动核心逻辑,无需 MongoDB 服务或 mongosh 二进制文件即可运行测试套件。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。