---
slug: "couchdb-mcp-server"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/robertoamoreno/couchdb-mcp-server@main/README.md"
repo: "https://github.com/robertoamoreno/couchdb-mcp-server"
source_file: "README.md"
branch: "main"
---
# couchdb-mcp-server
[![smithery badge](https://smithery.ai/badge/@robertoamoreno/couchdb-mcp-server)](https://smithery.ai/server/@robertoamoreno/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 `dbName` as a required parameter
  - Creates the database if it doesn't exist
  
- `listDatabases` - List all CouchDB databases
  - Returns an array of database names
  
- `deleteDatabase` - Delete a CouchDB database
  - Takes `dbName` as a required parameter
  - Removes the specified database and all its documents
  
- `createDocument` - Create a new document or update an existing document in a database
  - Required parameters:
    - `dbName`: Database name
    - `docId`: Document ID
    - `data`: Document data (JSON object)
      - For updates, include `_rev` field with the current document revision
  - 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 `_rev` field
  
- `getDocument` - Get a document from a database
  - Required parameters:
    - `dbName`: Database name
    - `docId`: Document ID
  - Returns the document content

#### Mango Query Tools (CouchDB 3.x+ Only)
- `createMangoIndex` - Create a new Mango index
  - Required parameters:
    - `dbName`: Database name
    - `indexName`: Name of the index
    - `fields`: Array of field names to index
  - Creates a new index for efficient querying

- `deleteMangoIndex` - Delete a Mango index
  - Required parameters:
    - `dbName`: Database name
    - `designDoc`: Design document name
    - `indexName`: Name of the index
  - Removes an existing Mango index

- `listMangoIndexes` - List all Mango indexes in a database
  - Required parameters:
    - `dbName`: Database name
  - Returns information about all indexes in the database

- `findDocuments` - Query documents using Mango query
  - Required parameters:
    - `dbName`: Database name
    - `query`: Mango query object
  - Performs a query using CouchDB's Mango query syntax

## 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:

```bash
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:
```bash
npm run build
```

For development with auto-rebuild:
```bash
npm run watch
```

## Installation

### Installing via Smithery

To install couchdb-mcp-server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@robertoamoreno/couchdb-mcp-server):

```bash
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`

```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](https://github.com/modelcontextprotocol/inspector), which is available as a package script:

```bash
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.
