README
🚀 CouchDB-MCP-Server
一个用于与CouchDB交互的模型上下文协议(Model Context Protocol)服务器。它基于TypeScript构建,提供了管理CouchDB数据库和文档的工具,让AI助手能通过简单接口与CouchDB进行交互。
🚀 快速开始
这是一个基于TypeScript构建的MCP服务器,提供管理CouchDB数据库和文档的工具。它使AI助手能够通过简单的接口与CouchDB进行交互。
使用以下环境变量配置服务器:
COUCHDB_URL=http://localhost:5984
COUCHDB_VERSION=3.0.1
默认情况下,服务器会连接到本地运行的CouchDB实例。
安装依赖
npm install
构建
npm run build
运行测试
npm test
调试
使用以下命令启动调试工具:
npm run debug
通过Smithery安装
在Smithery平台使用以下命令安装服务器:
smith install @robertoamoreno/couchdb-mcp-server
✨ 主要特性
工具
基础工具(所有CouchDB版本)
-
createDatabase- 创建新的CouchDB数据库- 接受
dbName作为必需参数 - 如果数据库不存在则创建它
- 接受
-
listDatabases- 列出所有CouchDB数据库- 返回数据库名称的数组
-
deleteDatabase- 删除CouchDB数据库- 接收
dbName作为必需参数 - 移除指定数据库及其所有文档
- 接收
-
createDocument- 创建新文档或更新现有文档- 必需参数:
dbName:数据库名称docId:文档IDdata:文档数据(JSON对象)- 更新时,包含当前文档修订的
_rev字段
- 更新时,包含当前文档修订的
- 返回:
- 新文档:文档ID和新修订
- 更新操作:文档ID和更新后的修订
- 根据
_rev字段的存在自动检测是创建还是更新
- 必需参数:
-
getDocument- 从数据库获取文档- 必需参数:
dbName:数据库名称docId:文档ID
- 返回文档内容
- 必需参数:
Mango查询工具(CouchDB 3.x及以上版本)
-
createMangoIndex- 创建新的Mango索引- 必需参数:
dbName:数据库名称indexName:索引名称fields:要索引的字段数组
- 创建新的索引以实现高效查询
- 必需参数:
-
deleteMangoIndex- 删除Mango索引- 必需参数:
dbName:数据库名称designDoc:设计文档名称indexName:索引名称
- 移除指定的索引
- 必需参数:
-
listIndexes- 列出所有索引- 返回数据库中所有索引的信息
版本支持
该服务器会根据CouchDB版本启用不同的功能:
- 在CouchDB 2.x及以上版本上运行
- 根据检测到的CouchDB版本自动启用相应特性
🔧 技术细节
该服务器包含强大的错误处理功能,覆盖常见场景:
- 无效的数据库名称或文档ID
- 数据库不存在或已存在
- 连接问题
- 认证失败
- 文档数据无效
所有错误都会通过MCP协议以适当的错误代码和消息格式返回。
Scan to contact