CouchDB管理服务器

一个提供全面CouchDB管理功能的MCP服务器,支持数据库、文档、用户、安全和复制的管理操作。

  • by jackni
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jackni/couchdb-mcp-server

使用说明

CouchDB控制平面MCP服务器

提供全面CouchDB管理功能的模型上下文协议(MCP)服务器。该服务器提供高级工作流和低级操作,用于管理CouchDB数据库、文档、用户、安全性、复制和设计文档。

特性

核心业务

  • 数据库操作:创建、删除、列出和获取数据库信息
  • 文档操作:完整的CRUD操作
  • 用户和安全管理:用户创建、角色管理、数据库安全
  • 复制管理:创建和管理数据库复制
  • 设计文件管理:部署和管理视图、索引和筛选器
  • 查询操作:支持视图、Mango查询和索引管理

高级功能

  • 双层安全:管理员凭据+按资源生成的凭据
  • 全面的审计日志记录:所有业务的完整审计跟踪
  • 苏格兰和南方能源公司运输支持:服务器发送事件以进行实时通信
  • 可配置的:基于环境的配置和验证

快速开始

安装

cd app
npm install
npm run build

配置

复制示例环境文件并配置CouchDB设置:

cd app
cp .env.example .env

编辑 .env 使用您的CouchDB连接详细信息:

COUCHDB_URL=http://localhost:5984
COUCHDB_ADMIN_USERNAME=admin
COUCHDB_ADMIN_PASSWORD=password

运行服务器

使用STDIO传输(默认):

cd app
npm run dev
# Communicates via stdin/stdout for MCP clients

使用HTTP/SSE传输:

cd app
npm run dev -- --sse
# Starts HTTP server on port 3000 (configurable via PORT env var)

生产:

cd app
npm start -- --sse

HTTP端点(SSE模式)

跑步时 --sse,服务器提供以下HTTP端点:

  • GET / -API文档和使用示例
  • GET /health -健康检查端点
  • GET /info -服务器信息和可用工具
  • GET /sse -MCP协议的服务器发送事件端点
  • POST /tools -直接执行工具进行测试

可用工具

数据库操作

  • create-database:创建新数据库
  • delete-database:删除数据库
  • get-database-info:获取数据库信息
  • list-databases:列出集群上的所有数据库

文档操作

  • create-document:创建文档
  • get-document:检索文档
  • update-document:更新文档
  • delete-document:删除文档

用户和安全管理

  • create-user:创建新用户
  • delete-user:删除用户
  • set-database-security:配置数据库访问权限

复制管理

  • create-replication:设置数据库复制
  • delete-replication:删除复制

设计文件管理

  • deploy-design-document:部署视图、筛选器和索引
  • get-design-document:检索设计文档

查询操作

  • query-documents:使用MongoDB风格的Mango查询语法查询文档
  • query-view:查询CouchDB视图(MapReduce)
  • create-index:创建Mango索引以实现高效查询
  • list-indexes:列出数据库中的所有索引
  • delete-index:删除芒果索引

示例用法

HTTP工具测试(SSE模式)

# Create a database
curl -X POST http://localhost:3000/tools \
  -H "Content-Type: application/json" \
  -d '{"tool": "create-database", "arguments": {"databaseName": "my-app-db"}}'

# List all databases
curl -X POST http://localhost:3000/tools \
  -H "Content-Type: application/json" \
  -d '{"tool": "list-databases"}'

# Get server info
curl http://localhost:3000/info

MCP工具架构

{
  "tool": "create-database",
  "arguments": {
    "databaseName": "my-app-db"
  }
}

设置复制

{
  "tool": "create-replication",
  "arguments": {
    "replicationDoc": {
      "_id": "my-replication",
      "source": "source-db",
      "target": "target-db",
      "continuous": true
    }
  }
}

创建具有数据库访问权限的用户

{
  "tool": "create-user",
  "arguments": {
    "username": "appuser",
    "password": "secure-password",
    "roles": ["app-role"]
  }
}
{
  "tool": "set-database-security",
  "arguments": {
    "databaseName": "my-app-db",
    "security": {
      "members": {
        "roles": ["app-role"]
      }
    }
  }
}

查询文档

{
  "tool": "query-documents",
  "arguments": {
    "databaseName": "my-app-db",
    "selector": {
      "name": "John",
      "age": {"$gt": 25}
    },
    "limit": 10
  }
}

发展

建筑

cd app
npm run build

类型检查

cd app
npm run typecheck

代码检查

cd app
npm run lint

建筑

服务器采用模块化架构构建:

  • 服务器:主MCP服务器处理工具调用
  • CouchDB客户端:使用nano的低级CouchDB操作
  • 工具操作员:用于不同操作类别的模块化处理器
  • 凭据管理器:安全凭证生成和管理
  • 审计记录器:全面的操作日志和指标

安全

  • 管理员凭据被安全地存储,仅由MCP服务器使用
  • 生成的凭据遵循可配置的命名约定
  • 所有操作均已记录,敏感数据已编辑
  • 数据库安全是通过CouchDB内置的角色系统来实现的

可扩展性

通用基础使添加特定于域的扩展变得容易:

  • 自定义工作流端点
  • 业务特定验证
  • 与外部系统集成
  • 定制审计要求

许可证

麻省理工学院