CouchDB MCP Server

Un servidor para interactuar con bases de datos CouchDB.

Documentación

couchdb-mcp-server

smithery badge

Un servidor de Model Context Protocol para interactuar con CouchDB

Este es un servidor MCP basado en TypeScript que proporciona herramientas para gestionar bases de datos y documentos de CouchDB. Permite que los asistentes de IA interactúen con CouchDB a través de una interfaz sencilla.

Características

Herramientas

Herramientas base (todas las versiones de CouchDB)

  • createDatabase - Crear una nueva base de datos de CouchDB

    • Toma dbName como parámetro obligatorio
    • Crea la base de datos si no existe
  • listDatabases - Listar todas las bases de datos de CouchDB

    • Devuelve un array con los nombres de las bases de datos
  • deleteDatabase - Eliminar una base de datos de CouchDB

    • Toma dbName como parámetro obligatorio
    • Elimina la base de datos especificada y todos sus documentos
  • createDocument - Crear un nuevo documento o actualizar un documento existente en una base de datos

    • Parámetros obligatorios:
      • dbName: Nombre de la base de datos
      • docId: ID del documento
      • data: Datos del documento (objeto JSON)
        • Para actualizaciones, incluye el campo _rev con la revisión actual del documento
    • Devuelve:
      • Para documentos nuevos: ID del documento y nueva revisión
      • Para actualizaciones: ID del documento y revisión actualizada
    • Detecta automáticamente si la operación es de creación o actualización según la presencia del campo _rev
  • getDocument - Obtener un documento de una base de datos

    • Parámetros obligatorios:
      • dbName: Nombre de la base de datos
      • docId: ID del documento
    • Devuelve el contenido del documento

Herramientas de consulta Mango (solo CouchDB 3.x+)

  • createMangoIndex - Crear un nuevo índice Mango

    • Parámetros obligatorios:
      • dbName: Nombre de la base de datos
      • indexName: Nombre del índice
      • fields: Array de nombres de campos a indexar
    • Crea un nuevo índice para consultas eficientes
  • deleteMangoIndex - Eliminar un índice Mango

    • Parámetros obligatorios:
      • dbName: Nombre de la base de datos
      • designDoc: Nombre del documento de diseño
      • indexName: Nombre del índice
    • Elimina un índice Mango existente
  • listMangoIndexes - Listar todos los índices Mango en una base de datos

    • Parámetros obligatorios:
      • dbName: Nombre de la base de datos
    • Devuelve información sobre todos los índices de la base de datos
  • findDocuments - Consultar documentos mediante consulta Mango

    • Parámetros obligatorios:
      • dbName: Nombre de la base de datos
      • query: Objeto de consulta Mango
    • Realiza una consulta utilizando la sintaxis de consulta Mango de CouchDB

Soporte de versiones

El servidor detecta automáticamente la versión de CouchDB y habilita las funciones correspondientes:

  • Todas las versiones: operaciones básicas de bases de datos y documentos
  • CouchDB 3.x+: soporte de consultas Mango (índices y consultas)

Configuración

El servidor requiere una URL de conexión a CouchDB y una versión. Estos se pueden proporcionar mediante variables de entorno:

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

Compilar el servidor:

npm run build

Para desarrollo con recompilación automática:

npm run watch

Instalación

Instalación mediante Smithery

Para instalar couchdb-mcp-server para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @robertoamoreno/couchdb-mcp-server --client claude

Para usarlo con Claude Desktop, añade la configuración del servidor:

En MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
En 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"
      }
    }
  }
}

Requisitos previos

  • Node.js 14 o superior
  • Instancia de CouchDB en ejecución
  • Credenciales de CouchDB adecuadas si la autenticación está habilitada

Depuración

Dado que los servidores MCP se comunican a través de stdio, la depuración puede ser complicada. Recomendamos usar el MCP Inspector, que está disponible como script del paquete:

npm run inspector

El Inspector proporcionará una URL para acceder a las herramientas de depuración en tu navegador.

Manejo de errores

El servidor incluye un manejo robusto de errores para escenarios comunes:

  • Nombres de bases de datos o IDs de documentos no válidos
  • La base de datos ya existe/no existe
  • Problemas de conexión
  • Fallos de autenticación
  • Datos de documento no válidos

Todos los errores se formatean correctamente y se devuelven a través del protocolo MCP con códigos de error y mensajes apropiados.