CouchDB MCP Server

Um servidor para interagir com bancos de dados CouchDB.

Documentação

couchdb-mcp-server

smithery badge

Um servidor de Model Context Protocol para interagir com o CouchDB

Este é um servidor MCP baseado em TypeScript que fornece ferramentas para gerenciar bancos de dados e documentos do CouchDB. Ele permite que assistentes de IA interajam com o CouchDB por meio de uma interface simples.

Recursos

Ferramentas

Ferramentas Básicas (Todas as Versões do CouchDB)

  • createDatabase - Criar um novo banco de dados CouchDB

    • Recebe dbName como parâmetro obrigatório
    • Cria o banco de dados se ele não existir
  • listDatabases - Listar todos os bancos de dados CouchDB

    • Retorna uma matriz de nomes de bancos de dados
  • deleteDatabase - Excluir um banco de dados CouchDB

    • Recebe dbName como parâmetro obrigatório
    • Remove o banco de dados especificado e todos os seus documentos
  • createDocument - Criar um novo documento ou atualizar um documento existente em um banco de dados

    • Parâmetros obrigatórios:
      • dbName: Nome do banco de dados
      • docId: ID do documento
      • data: Dados do documento (objeto JSON)
        • Para atualizações, inclua o campo _rev com a revisão atual do documento
    • Retorna:
      • Para novos documentos: ID do documento e nova revisão
      • Para atualizações: ID do documento e revisão atualizada
    • Detecta automaticamente se a operação é de criação ou atualização com base na presença do campo _rev
  • getDocument - Obter um documento de um banco de dados

    • Parâmetros obrigatórios:
      • dbName: Nome do banco de dados
      • docId: ID do documento
    • Retorna o conteúdo do documento

Ferramentas de Consulta Mango (Somente CouchDB 3.x+)

  • createMangoIndex - Criar um novo índice Mango

    • Parâmetros obrigatórios:
      • dbName: Nome do banco de dados
      • indexName: Nome do índice
      • fields: Matriz de nomes de campos a serem indexados
    • Cria um novo índice para consultas eficientes
  • deleteMangoIndex - Excluir um índice Mango

    • Parâmetros obrigatórios:
      • dbName: Nome do banco de dados
      • designDoc: Nome do documento de design
      • indexName: Nome do índice
    • Remove um índice Mango existente
  • listMangoIndexes - Listar todos os índices Mango em um banco de dados

    • Parâmetros obrigatórios:
      • dbName: Nome do banco de dados
    • Retorna informações sobre todos os índices no banco de dados
  • findDocuments - Consultar documentos usando consulta Mango

    • Parâmetros obrigatórios:
      • dbName: Nome do banco de dados
      • query: Objeto de consulta Mango
    • Executa uma consulta usando a sintaxe de consulta Mango do CouchDB

Suporte a Versões

O servidor detecta automaticamente a versão do CouchDB e ativa os recursos de acordo:

  • Todas as versões: Operações básicas de banco de dados e documentos
  • CouchDB 3.x+: Suporte a consultas Mango (índices e consultas)

Configuração

O servidor requer uma URL de conexão e versão do CouchDB. Eles podem ser fornecidos por meio de variáveis de ambiente:

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 o servidor:

npm run build

Para desenvolvimento com recompilação automática:

npm run watch

Instalação

Instalação via Smithery

Para instalar o couchdb-mcp-server para Claude Desktop automaticamente via Smithery:

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

Para usar com Claude Desktop, adicione a configuração do servidor:

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

Pré-requisitos

  • Node.js 14 ou superior
  • Instância do CouchDB em execução
  • Credenciais adequadas do CouchDB se a autenticação estiver habilitada

Depuração

Como os servidores MCP se comunicam via stdio, a depuração pode ser desafiadora. Recomendamos usar o MCP Inspector, que está disponível como um script de pacote:

npm run inspector

O Inspector fornecerá uma URL para acessar as ferramentas de depuração no seu navegador.

Tratamento de Erros

O servidor inclui tratamento robusto de erros para cenários comuns:

  • Nomes de bancos de dados ou IDs de documentos inválidos
  • Banco de dados já existe/não existe
  • Problemas de conexão
  • Falhas de autenticação
  • Dados de documento inválidos

Todos os erros são formatados adequadamente e retornados por meio do protocolo MCP com códigos e mensagens de erro apropriados.