使用说明
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内置的角色系统来实现的
可扩展性
通用基础使添加特定于域的扩展变得容易:
- 自定义工作流端点
- 业务特定验证
- 与外部系统集成
- 定制审计要求
许可证
麻省理工学院
