MCP Database Server

Um servidor MCP que permite que LLMs interajam com bancos de dados como MongoDB usando linguagem natural.

Documentação

MCP Database Server

Uma implementação de servidor Model Context Protocol (MCP) que permite que Modelos de Linguagem de Grande Porte (LLMs) interajam com diversos bancos de dados por meio de linguagem natural. Atualmente suporta MongoDB, com planos de suportar:

  • PostgreSQL
  • CockroachDB
  • Redis
  • E mais...

Recursos

  • Operações de banco de dados por meio de linguagem natural
  • Atualmente suporta MongoDB com recursos:
    • Listar todas as coleções
    • Consultar documentos com filtros e projeção
    • Inserir documentos
    • Excluir documentos
    • Operações de pipeline de agregação
  • Suporte futuro para outros bancos de dados:
    • PostgreSQL: Consultas SQL, operações de tabelas
    • CockroachDB: Operações SQL distribuídas
    • Redis: Operações de chave-valor, cache

Pré-requisitos

  • Node.js v20.12.2 ou superior
  • Banco de dados (atualmente MongoDB, outros bancos em breve)
  • Aplicativo Claude Desktop

Instalação

  1. Clone o repositório:
git clone https://github.com/manpreet2000/mcp-database-server.git
cd mcp-database-server
  1. Instale as dependências:
npm install
  1. Compile o código TypeScript:
npm run build

Configuração

Para começar, você precisa configurar sua conexão com o banco de dados no arquivo de configuração do Claude Desktop:

MacOS

~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows

%APPDATA%/Claude/claude_desktop_config.json

Adicione a seguinte configuração ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "database": {
      "command": "/path/to/node",
      "args": ["/path/to/mcp-database/dist/index.js"],
      "env": {
        "MONGODB_URI": "your-mongodb-connection-string"
      }
    }
  }
}

Substitua:

  • /path/to/node pelo caminho do executável do Node.js ou apenas use node
  • /path/to/mcp-database pelo caminho absoluto deste repositório
  • your-mongodb-connection-string pela URL de conexão do seu MongoDB

Exemplos de Uso

Exemplos com MongoDB

  1. Liste todas as coleções no seu banco de dados:
Can you show me all the collections in my database?
  1. Obtenha registros específicos de uma coleção:
Give me 2 records from the chargers collection
  1. Consulte com filtros:
Show me all documents in the users collection where status is active
  1. Insira um documento:
Add a new user to the users collection with name John and email john@example.com
  1. Exclua um documento:
Remove the user with email john@example.com from the users collection
  1. Agregue dados:
Show me the total count of users by status in the users collection

Ferramentas Disponíveis

1. getCollections

Lista todas as coleções no banco de dados conectado.

2. getCollection

Recupera documentos de uma coleção com parâmetros de consulta opcionais:

  • collectionName: Nome da coleção
  • limit: Número máximo de documentos a retornar (padrão: 10, máximo: 1000)
  • query: Objeto de consulta MongoDB
  • projection: Campos a incluir/excluir

3. insertOne

Insere um único documento em uma coleção:

  • collectionName: Nome da coleção
  • document: Objeto de documento a inserir

4. deleteOne

Exclui um único documento de uma coleção:

  • collectionName: Nome da coleção
  • query: Consulta para corresponder ao documento a excluir

5. aggregate

Executa um pipeline de agregação:

  • collectionName: Nome da coleção
  • pipeline: Matriz de estágios de agregação
  • options: Opções opcionais de agregação

Suporte Futuro a Bancos de Dados

PostgreSQL

  • Execução de consultas SQL
  • Operações de tabelas
  • Gerenciamento de esquemas
  • Suporte a transações

CockroachDB

  • Operações SQL distribuídas
  • Suporte a múltiplas regiões
  • Gerenciamento de transações
  • Operações de esquemas

Redis

  • Operações de chave-valor
  • Mecanismos de cache
  • Operações de publicação/assinatura
  • Operações de estruturas de dados

Segurança

  • Nunca envie suas strings de conexão com o banco de dados para o controle de versão
  • Use variáveis de ambiente para informações sensíveis
  • Siga as melhores práticas de segurança específicas do banco de dados

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request. Para mudanças significativas, abra uma issue primeiro para discutir o que você gostaria de alterar.

Licença

Licença MIT - Consulte LICENSE para detalhes