Navigation
CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync - MCP Implementation

CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync

couchdb-mcp-server delivers rock-solid real-time mirroring, ensuring zero-downtime app continuity with flawless data synchronization across distributed environments.

Developer Tools
4.2(80 reviews)
120 saves
56 comments

This tool saved users approximately 12669 hours last month!

About CouchDB-MCP-Server

What is CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync?

CouchDB-MCP-Server is a TypeScript-based Model Context Protocol (MCP) server designed to simplify interactions with CouchDB databases. It enables real-time mirroring of data and zero-downtime synchronization by providing tools for creating, managing, and querying databases and documents. The server automatically adapts to CouchDB versions, supporting core operations on all versions while enabling advanced Mango queries for CouchDB 3.x+. Ideal for AI-driven workflows, it acts as a bridge between intelligent assistants and CouchDB's ecosystem.

How to use CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync?

Installation is straightforward via Smithery for platforms like Claude Desktop. After configuring environment variables (e.g., COUCHDB_URL and COUCHDB_VERSION), the server can be built and run locally. Developers use commands like npm install and npm run watch for continuous updates. Integration with AI tools requires specifying the server path and credentials in configuration files, such as claude_desktop_config.json on macOS/Windows.

CouchDB-MCP-Server Features

Key Features of CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync?

  • Database Management: Create, list, or delete databases seamlessly. For example, createDatabase("sales_2024") ensures a new database is provisioned instantly.
  • Document Operations: The createDocument tool auto-detects create/update workflows. Updating a document with _rev ensures atomic revisions without manual checks.
  • Mango Query Support: Build indexed queries for complex searches. For instance, findDocuments("users", {selector: {age: {$gt: 18}}}) leverages pre-built indexes for speed.
  • Version-Aware: The server dynamically enables Mango features only when CouchDB 3.x+ is detected, avoiding compatibility issues.

Use cases of CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync?

Common scenarios include:

  • Real-Time Data Sync: Mirror production databases to staging environments without downtime during updates.
  • AI-Powered Workflows: Let chatbots auto-generate documents or query sales data using natural language inputs.
  • Disaster Recovery: Use the server to replicate databases across regions while maintaining transaction consistency.
  • Microservices Integration: Enable services to safely update documents in shared CouchDB instances without lockouts.

CouchDB-MCP-Server FAQ

FAQ from CouchDB-MCP-Server: Real-Time Mirroring, Zero-Downtime Sync?

  • Q: What happens if CouchDB is offline?
    A: The server returns connection errors immediately, with retries managed by the client application.
  • Q: How do I debug query failures?
    A: Use npm run inspector to access browser-based tools that log all API interactions and error contexts.
  • Q: Can I override default indexes?
    A: Yes, createMangoIndex allows custom field combinations, such as indexing ["email", "last_login"] for user audits.
  • Q: Does it support authentication?
    A: Credentials are handled via the COUCHDB_URL format (e.g., http://user:pass@host:5984).

Content

couchdb-mcp-server

smithery badge

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:

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.

Related MCP Servers & Clients