mcp-datalink

@pilat/mcp-datalink
0 Stars 4 次浏览 pilat 更新于 2026-08-23

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

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "@pilat/mcp-datalink": {
      "args": [
        "@pilat/mcp-datalink@1.2.4"
      ],
      "command": "npx"
    }
  }
}

可用工具 (5 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

tavily_search 14 个参数 需填 1 项

Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.

必填参数:query

tavily_extract 6 个参数 需填 1 项

Extract content from URLs. Returns raw page content in markdown or text format.

必填参数:urls

tavily_crawl 11 个参数 需填 1 项

Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.

必填参数:url

tavily_map 8 个参数 需填 1 项

Map a website's structure. Returns a list of URLs found starting from the base URL.

必填参数:url

tavily_research 2 个参数 需填 1 项

Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.

必填参数:input

服务介绍

@pilat/mcp-datalink

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](# config-file-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.

| Variable | Description |
|- -- -- -- -- -|- -- -- -- -- -- --|
| DATALINK_{NAME}_URL | Connection URL (creates database named {name}) |
| DATALINK_{NAME}_READONLY | Set to true to block writes |
| DATALINK_{NAME}_MAX_TIMEOUT | Max 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:

| Syntax | Description |
|- -- -- -- -|- -- -- -- -- -- --|
| ${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

| Client | Config 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 |
| Cline | cline_mcp_settings.json or VS Code settings cline.mcpServers |

# Tools

| Tool | Description |
|- -- -- -|- -- -- -- -- -- --|
| list_databases | List configured database connections |
| list_tables | List tables with row counts |
| describe_table | Get schema, indexes, foreign keys |
| query | Run SELECT queries |
| execute | Run INSERT/UPDATE/DELETE |
| explain | Show 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
  • Output truncation (100 rows, 64KB max)
  • Query timeout: 30s default, model can request up to 10min, MAX_TIMEOUT caps it

# License

MIT

相关 MCP 服务