MCP Database Server
Conecta-se e interage com diversos sistemas de banco de dados como SQLite, PostgreSQL, SQL Server e MongoDB.
Documentação
MCP Database Server
Uma implementação do Model Context Protocol (MCP) para conectar e trabalhar com diversos sistemas de banco de dados.
Bancos de Dados Suportados
- SQLite
- PostgreSQL
- Microsoft SQL Server
- MongoDB
Instalação
npm install -g mcp-dbs
Uso
O MCP Database Server pode ser usado em dois modos:
Modo SSE (Padrão)
Por padrão, o servidor executa no modo SSE (Server-Sent Events) na porta 3001:
npx mcp-dbs
Isso iniciará um servidor HTTP com um endpoint SSE em http://localhost:3001/mcp.
Porta Personalizada
Você pode especificar uma porta personalizada usando a opção --port:
npx mcp-dbs --port 8080
Modo STDIO
Para ferramentas que se comunicam por entrada/saída padrão, você pode usar a opção --stdio:
npx mcp-dbs --stdio
Integração com Claude Desktop
Você pode integrar o mcp-dbs com o Claude Desktop adicionando-o ao seu arquivo de configuração do Claude.
Etapas de Configuração
- Abra ou crie seu arquivo de configuração do Claude Desktop
- Adicione a configuração do mcp-dbs à seção
mcpServers:
{
"mcpServers": {
"mcp-dbs": {
"command": "node",
"args": [
"/path/to/your/mcp-dbs/dist/cli.js",
"--stdio"
],
"env": {
"MCP_MONGODB_URI": "mongodb://localhost:27017",
"MCP_MONGODB_DATABASE": "your-database-name"
}
}
}
}
Substitua as variáveis de ambiente pelos detalhes da sua conexão de banco de dados.
Notas
- O
commanddeve sernode - Em
args, forneça o caminho absoluto para o arquivo cli.js na sua instalação do mcp-dbs - Configure as variáveis de ambiente apropriadas para o seu tipo de banco de dados (veja a seção de variáveis de ambiente abaixo)
- Você pode usar variáveis de ambiente para qualquer um dos bancos de dados suportados (SQLite, PostgreSQL, SQL Server ou MongoDB)
Usando com o Claude
Uma vez configurado, o Claude poderá acessar seu banco de dados usando as ferramentas MCP descritas abaixo. Você pode pedir ao Claude para:
- Conectar-se ao seu banco de dados
- Executar consultas e obter resultados
- Explorar o esquema do seu banco de dados
- Trabalhar com tabelas e dados
Ferramentas
- connect-database: Conectar a um banco de dados
- disconnect-database: Desconectar de um banco de dados
- execute-query: Executar uma consulta e retornar resultados
- execute-update: Executar uma consulta sem retornar resultados
Recursos
- database-schema: Obter o esquema completo do banco de dados
- table-schema: Obter o esquema de uma tabela específica
- tables-list: Obter uma lista de todas as tabelas
Usando variáveis de ambiente para configuração
Você pode configurar suas conexões de banco de dados usando variáveis de ambiente:
SQLite
# Set these environment variables before connecting
export MCP_SQLITE_FILENAME="path/to/database.db"
export MCP_SQLITE_CREATE_IF_NOT_EXISTS="true"
PostgreSQL
# Set these environment variables before connecting
export MCP_POSTGRES_HOST="your-postgres-host"
export MCP_POSTGRES_PORT="5432"
export MCP_POSTGRES_DATABASE="your-database-name"
export MCP_POSTGRES_USER="your-username"
export MCP_POSTGRES_PASSWORD="your-password"
export MCP_POSTGRES_SSL="false"
SQL Server
# Set these environment variables before connecting
export MCP_MSSQL_SERVER="your-server-address"
export MCP_MSSQL_PORT="1433"
export MCP_MSSQL_DATABASE="your-database-name"
export MCP_MSSQL_USER="your-username"
export MCP_MSSQL_PASSWORD="your-password"
export MCP_MSSQL_ENCRYPT="true"
export MCP_MSSQL_TRUST_SERVER_CERTIFICATE="true"
MongoDB
# Set these environment variables before connecting
export MCP_MONGODB_URI="mongodb://localhost:27017"
export MCP_MONGODB_DATABASE="your-database-name"
export MCP_MONGODB_MAX_POOL_SIZE="10"
export MCP_MONGODB_USE_UNIFIED_TOPOLOGY="true"
Essas variáveis de ambiente terão precedência sobre qualquer configuração passada para a ferramenta connect-database.
Ferramentas MCP
O servidor expõe as seguintes ferramentas MCP:
connect-database
Conectar a um banco de dados.
Parâmetros:
connectionId: Um identificador único para a conexãotype: Tipo de banco de dados (sqlite,postgres,mssqloumongodb)
Exemplo para SQLite:
{
"connectionId": "my-sqlite-db",
"type": "sqlite"
}
Exemplo para PostgreSQL:
{
"connectionId": "my-postgres-db",
"type": "postgres"
}
Exemplo para SQL Server:
{
"connectionId": "my-mssql-db",
"type": "mssql"
}
Exemplo para MongoDB:
{
"connectionId": "my-mongodb-db",
"type": "mongodb"
}
disconnect-database
Desconectar de um banco de dados.
Parâmetros:
connectionId: O ID da conexão para desconectar
execute-query
Executar uma consulta que retorna resultados.
Parâmetros:
connectionId: O ID da conexãoquery: Consulta SQL ou pipeline de agregação do MongoDB (como string JSON)params: (Opcional) Matriz de parâmetros para a consulta. Para MongoDB, o primeiro parâmetro é o nome da coleção.
Exemplo para SQL:
{
"connectionId": "my-postgres-db",
"query": "SELECT * FROM users WHERE age > $1",
"params": [21]
}
Exemplo para MongoDB:
{
"connectionId": "my-mongodb-db",
"query": "[{\"$match\": {\"age\": {\"$gt\": 21}}}, {\"$sort\": {\"name\": 1}}]",
"params": ["users"]
}
Exemplo para MongoDB (novo formato com coleção incorporada):
{
"connectionId": "my-mongodb-db",
"query": "{\"collection\": \"users\", \"pipeline\": [{\"$match\": {\"age\": {\"$gt\": 21}}}, {\"$sort\": {\"name\": 1}}]}"
}
Exemplo para MongoDB (sintaxe de shell):
{
"connectionId": "my-mongodb-db",
"query": "db.getCollection('users').find({\"age\": {\"$gt\": 21}})"
}
Exemplo para MongoDB (sintaxe de shell com referência direta à coleção):
{
"connectionId": "my-mongodb-db",
"query": "db.users.find({\"age\": {\"$gt\": 21}})"
}
Exemplo para MongoDB (comando bruto):
{
"connectionId": "my-mongodb-db",
"query": "{\"find\": \"users\", \"filter\": {\"age\": {\"$gt\": 21}}}"
}
execute-update
Executar uma consulta que não retorna resultados (INSERT, UPDATE, DELETE).
Parâmetros:
connectionId: O ID da conexãoquery: Consulta SQL ou comando MongoDB (como string JSON)params: (Opcional) Matriz de parâmetros para a consulta. Para MongoDB, o primeiro parâmetro é o nome da coleção.
Exemplo para SQL:
{
"connectionId": "my-postgres-db",
"query": "INSERT INTO users (name, age) VALUES ($1, $2)",
"params": ["John Doe", 30]
}
Exemplo para MongoDB:
{
"connectionId": "my-mongodb-db",
"query": "{\"insertOne\": {\"name\": \"John Doe\", \"age\": 30}}",
"params": ["users"]
}
Exemplo para MongoDB (novo formato com coleção incorporada):
{
"connectionId": "my-mongodb-db",
"query": "{\"collection\": \"users\", \"operation\": {\"insertOne\": {\"name\": \"John Doe\", \"age\": 30}}}"
}
Exemplo para MongoDB (sintaxe de shell):
{
"connectionId": "my-mongodb-db",
"query": "db.getCollection('users').insertOne({\"name\": \"John Doe\", \"age\": 30})"
}
Exemplo para MongoDB (sintaxe de shell com referência direta à coleção):
{
"connectionId": "my-mongodb-db",
"query": "db.users.insertOne({\"name\": \"John Doe\", \"age\": 30})"
}
Exemplo para MongoDB (comando bruto):
{
"connectionId": "my-mongodb-db",
"query": "{\"insert\": \"users\", \"documents\": [{\"name\": \"John Doe\", \"age\": 30}]}"
}
Recursos MCP
O servidor expõe os seguintes recursos MCP:
Esquema do Banco de Dados
URI: database://{connectionId}/schema
Retorna informações de esquema sobre o banco de dados, incluindo todas as tabelas e suas colunas.
Esquema da Tabela
URI: database://{connectionId}/tables/{tableName}
Retorna informações de esquema sobre uma tabela específica, incluindo suas colunas.
Lista de Tabelas
URI: database://{connectionId}/tables
Retorna uma lista de todas as tabelas no banco de dados.
Desenvolvimento
Testes
Execute os testes:
npm test
Apoie o Projeto
Se você achar este projeto útil, considere me pagar um café!
Escaneie o código QR acima ou clique aqui para apoiar o desenvolvimento deste projeto.
Licença
MIT
