DataLink

Registre officiel Données et bases de données

MCP server for secure database access (PostgreSQL, MySQL, SQLite)

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package @pilat/mcp-datalink
Claude Code
claude mcp add datalink -e 'DATALINK_ANALYTICS_URL=<your datalink_analytics_url>' -e 'DATALINK_ANALYTICS_READONLY=<DATALINK_ANALYTICS_READONLY>' -- npx -y @pilat/mcp-datalink@1.2.4
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "datalink": {
            "command": "npx",
            "args": [
                "-y",
                "@pilat/mcp-datalink@1.2.4"
            ],
            "env": {
                "DATALINK_ANALYTICS_URL": "<your datalink_analytics_url>",
                "DATALINK_ANALYTICS_READONLY": "<DATALINK_ANALYTICS_READONLY>"
            }
        }
    }
}

Variables d'environnement

  • DATALINK_ANALYTICS_URL obligatoire secret Database connection URL. Pattern: DATALINK_<NAME>_URL where <NAME> identifies the database. Supports postgresql://, mysql://, or file path for SQLite.
  • DATALINK_ANALYTICS_READONLY Set to 'true' for read-only access. Pattern: DATALINK_<NAME>_READONLY

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. @pilat/mcp-datalink
  2. Installation
  3. Tools
  4. Security
  5. License

MCP server for PostgreSQL, MySQL, and SQLite. Gives AI assistants secure database access via Model Context Protocol.

npx @pilat/mcp-datalink

Works with Claude Desktop, Claude Code, Cursor, Cline, and any MCP-compatible client.

Installation

Add to your MCP client config file (see config locations below):

{
  "mcpServers": {
    "datalink": {
      "command": "npx",
      "args": ["-y", "@pilat/mcp-datalink"],
      "env": {
        "DATALINK_ANALYTICS_URL": "postgresql://user:password@localhost:5432/analytics",
        "DATALINK_ANALYTICS_READONLY": "true",

        "DATALINK_INVENTORY_URL": "mysql://user:password@localhost:3306/inventory",

        "DATALINK_CACHE_URL": "sqlite:///path/to/cache.db"
      }
    }
  }
}

This creates three database connections: analytics (read-only), inventory, and cache.

VariableDescription
DATALINK_{NAME}_URLConnection URL (creates database named {name})
DATALINK_{NAME}_READONLYSet to true to block writes
DATALINK_{NAME}_MAX_TIMEOUTMax query timeout in ms (caps model requests)

Connection URL formats:

# PostgreSQL
postgresql://user:password@localhost:5432/dbname
postgresql://user:password@localhost:5432/dbname?sslmode=require

# MySQL
mysql://user:password@localhost:3306/dbname
mysql://user:password@localhost:3306/dbname?ssl=true

# SQLite
sqlite:///path/to/database.db
sqlite:///Users/me/data/app.sqlite
sqlite://../relative/path/data.db
Environment Variable Substitution

URLs support ${VAR} syntax to reference other environment variables:

{
  "mcpServers": {
    "datalink": {
      "command": "npx",
      "args": ["-y", "@pilat/mcp-datalink"],
      "env": {
        "DATALINK_MAIN_URL": "${DATABASE_URL}"
      }
    }
  }
}

This allows reusing existing environment variables (like DATABASE_URL from your shell or .env file).

Supported syntax:

SyntaxDescription
${VAR}Expands to value of VAR, or keeps ${VAR} if unset
${VAR:-default}Expands to value of VAR, or default if unset

Examples:

# Reference existing DATABASE_URL
DATALINK_MAIN_URL="${DATABASE_URL}"

# Build URL from parts
DATALINK_MAIN_URL="postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}:5432/mydb"

# With default values
DATALINK_MAIN_URL="postgresql://localhost:${DB_PORT:-5432}/mydb"
Config File Locations
ClientConfig file
Claude Code~/.claude.json (global) or .mcp.json (project)
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Cursor~/.cursor/mcp.json or Settings → Features → MCP Servers
Clinecline_mcp_settings.json or VS Code settings cline.mcpServers

Tools

ToolDescription
list_databasesList configured database connections
list_tablesList tables with row counts
describe_tableGet schema, indexes, foreign keys
queryRun SELECT queries
executeRun INSERT/UPDATE/DELETE
explainShow query execution plans

Security

  • Prepared statements only (no SQL injection)
  • Single statement per query (no chaining)
  • DDL blocked (no DROP, ALTER, TRUNCATE)
  • Readonly mode per connection
  • Response size limit (100 rows, 64KB default, configurable via DATALINK_MAX_TOTAL_SIZE)
  • Query timeout: 30s default, model can request up to 10min, MAX_TIMEOUT caps it

License

MIT

Questions fréquentes

Qu'est-ce que DataLink ?

MCP server for secure database access (PostgreSQL, MySQL, SQLite)

Comment installer DataLink ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add datalink -e 'DATALINK_ANALYTICS_URL=<your datalink_analytics_url>' -e 'DATALINK_ANALYTICS_READONLY=<DATALINK_ANALYTICS_READONLY>' -- npx -y @pilat/mcp-datalink@1.2.4. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour DataLink ?

Oui. Il attend DATALINK_ANALYTICS_URL, à renseigner dans sa configuration.

DataLink est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient DataLink ?

Il est publié par pilat. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.