Microsoft Access Database

Permite que a IA interaja com bancos de dados do Microsoft Access, suportando importação e exportação de dados via arquivos CSV.

Documentação

Servidor MCP de Bancos de Dados (Access e SQLite 3)

Um servidor MCP simples para permitir que IA interaja com bancos de dados Microsoft Access e SQLite 3. Suporta importação/exportação com arquivos CSV e Excel, e armazena notas legíveis por humanos sobre arquivos.

AVISO: Este servidor tem acesso total aos bancos de dados, portanto pode ler e modificar qualquer dado neles. Use com cautela para evitar perda de dados!

Configuração

Para usar este servidor MCP com Claude Desktop (ou qualquer outro host MCP), clone o repositório e adicione o seguinte ao seu config.json:

{
  "mcpServers": {
    "access-mdb": {
      "command": "uv",
      "args": [
        "run",
        "--with", "fastmcp",
        "--with", "pandas",
        "--with", "sqlalchemy-access",
        "--with", "openpyxl",
        "fastmcp", "run",
        "path/to/repo/server.py"
      ],
    }
  }
}

Nota de desenvolvimento: para usar com uvx, precisamos criar um pacote e publicá-lo no PyPI.

Ferramentas Disponíveis

Gerenciamento de banco de dados:

  • list: Lista todos os bancos de dados ativos disponíveis no servidor.
  • create: Cria um novo arquivo de banco de dados (para Microsoft Access, copia o modelo empty.mdb).
  • connect: Conecta a um arquivo de banco de dados existente, ou cria um banco de dados em memória se o arquivo não for especificado.
  • disconnect: Fecha uma conexão de banco de dados. Para bancos de dados em memória, isso limpará todos os seus dados.

Nota: use a ferramenta connect com readOnly=true para abrir um banco de dados em modo somente leitura. Para bancos de dados SQLite em memória, o modo somente leitura não é suportado.

Gerenciamento de dados:

  • query: Executa uma consulta SQL para recuperar dados de um banco de dados.
  • update: Executa uma consulta SQL para inserir/atualizar/excluir dados em um banco de dados.
  • import_csv: Importa dados de um arquivo CSV para uma tabela de banco de dados.
  • export_csv: Exporta dados de uma tabela de banco de dados para um arquivo CSV.
  • import_excel: Importa dados de um arquivo Excel para uma tabela de banco de dados.

Gerenciamento de notas:

  • read_notes: Lê notas do arquivo especificado, ou descobre notas no diretório especificado.
  • write_notes: Escreve notas no arquivo especificado, ou vinculadas ao banco de dados especificado.

Nota: A exportação para Excel não está implementada, use haris-musa/excel-mcp-server em vez disso. O principal problema é rastrear o índice das linhas e colunas no arquivo Excel, para importar/exportar dados corretamente para as mesmas células, e/ou inserir novas linhas/colunas. Além disso, células mescladas complicam o processo, seria complexo demais para implementar.

Tipos de Banco de Dados Suportados

Por padrão, a detecção do driver do banco de dados é baseada na extensão do arquivo:

  • Microsoft Access: .mdb e .accdb
  • SQLite 3: .db, .sqlite e .sqlite3

Se o caminho do banco de dados não for especificado (string vazia), um banco de dados SQLite em memória será criado.

Para permitir que o servidor abra ou crie um arquivo de banco de dados sem depender da extensão (por exemplo, se o seu arquivo de banco de dados tiver uma extensão não padrão), você pode especificar o driver explicitamente usando o parâmetro driver na ferramenta connect ou create.

  • driver="access" para Microsoft Access
  • driver="sqlite" para SQLite 3
  • driver="auto" (padrão) detecta automaticamente o driver com base na extensão do arquivo

Estrutura do Projeto

Arquivos principais:

  • server.py: Implementação do servidor MCP.

Testes:

  • test_tools.py: Funções para testar ferramentas MCP individuais.
  • test_mcp.py: Testa todas as ferramentas MCP em um fluxo de trabalho típico.

Documentação:

  • README.md: Este arquivo, com informações gerais sobre o projeto.
  • LICENSE: Licença MIT.

Scripts de exploração, usados nos primeiros estágios para desenvolver funcionalidades básicas:

  • scouting_mdb.py: SQLAlchemy e pandas para interagir com bancos de dados Microsoft Access.
  • scouting_csv.py: SQLAlchemy e pandas para interagir com arquivos CSV.

TODO

  • Adicionar ferramenta para criar um novo banco de dados, copiando empty.mdb para o caminho especificado.
  • Adicionar a capacidade de conectar a múltiplos bancos de dados ao mesmo tempo.
  • Adicionar ferramenta para listar todas as tabelas no banco de dados.
  • Adicionar ferramentas para importar/exportar dados de/para arquivos CSV.
  • Adicionar ferramentas para importar dados de/para arquivos Excel.
  • Adicionar prompt para guiar a IA na solicitação de informações ao usuário sobre o banco de dados.
  • Armazenar informações sobre arquivos (arquivos .AInotes), para recuperá-las posteriormente.
  • Adicionar parâmetro de driver para gerenciar bancos de dados sem depender da extensão do arquivo.
  • Adicionar ferramenta para lembrar arquivos CSV e Excel importados/exportados.