couchdb-mcp-server
by robertoamoreno
A Model Context Protocol server for interacting with CouchDB. It enables AI assistants to manage CouchDB databases and documents through a simple interface.
Last updated: N/A
couchdb-mcp-server
A Model Context Protocol server for interacting with CouchDB
This is a TypeScript-based MCP server that provides tools for managing CouchDB databases and documents. It enables AI assistants to interact with CouchDB through a simple interface.
Features
Tools
Base Tools (All CouchDB Versions)
- 
createDatabase- Create a new CouchDB database- Takes 
dbNameas a required parameter - Creates the database if it doesn't exist
 
 - Takes 
 - 
listDatabases- List all CouchDB databases- Returns an array of database names
 
 - 
deleteDatabase- Delete a CouchDB database- Takes 
dbNameas a required parameter - Removes the specified database and all its documents
 
 - Takes 
 - 
createDocument- Create a new document or update an existing document in a database- Required parameters:
dbName: Database namedocId: Document IDdata: Document data (JSON object)- For updates, include 
_revfield with the current document revision 
- For updates, include 
 
 - Returns:
- For new documents: document ID and new revision
 - For updates: document ID and updated revision
 
 - Automatically detects if operation is create or update based on presence of 
_revfield 
 - Required parameters:
 - 
getDocument- Get a document from a database- Required parameters:
dbName: Database namedocId: Document ID
 - Returns the document content
 
 - Required parameters:
 
Mango Query Tools (CouchDB 3.x+ Only)
- 
createMangoIndex- Create a new Mango index- Required parameters:
dbName: Database nameindexName: Name of the indexfields: Array of field names to index
 - Creates a new index for efficient querying
 
 - Required parameters:
 - 
deleteMangoIndex- Delete a Mango index- Required parameters:
dbName: Database namedesignDoc: Design document nameindexName: Name of the index
 - Removes an existing Mango index
 
 - Required parameters:
 - 
listMangoIndexes- List all Mango indexes in a database- Required parameters:
dbName: Database name
 - Returns information about all indexes in the database
 
 - Required parameters:
 - 
findDocuments- Query documents using Mango query- Required parameters:
dbName: Database namequery: Mango query object
 - Performs a query using CouchDB's Mango query syntax
 
 - Required parameters:
 
Version Support
The server automatically detects the CouchDB version and enables features accordingly:
- All versions: Basic database and document operations
 - CouchDB 3.x+: Mango query support (indexes and queries)
 
Configuration
The server requires a CouchDB connection URL and version. These can be provided through environment variables:
COUCHDB_URL=http://username:password@localhost:5984
COUCHDB_VERSION=1.7.2
You can create a `.env` file in the project root with this configuration. If not provided, it defaults to `http://localhost:5984`.
## Development
Install dependencies:
```bash
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
Installing via Smithery
To install couchdb-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @robertoamoreno/couchdb-mcp-server --client claude
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "couchdb-mcp-server": {
      "command": "/path/to/couchdb-mcp-server/build/index.js",
      "env": {
        "COUCHDB_URL": "http://username:password@localhost:5984"
      }
    }
  }
}
Prerequisites
- Node.js 14 or higher
 - Running CouchDB instance
 - Proper CouchDB credentials if authentication is enabled
 
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
Error Handling
The server includes robust error handling for common scenarios:
- Invalid database names or document IDs
 - Database already exists/doesn't exist
 - Connection issues
 - Authentication failures
 - Invalid document data
 
All errors are properly formatted and returned through the MCP protocol with appropriate error codes and messages.