Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Duckdb Mcp Server

    A MCP server for DuckDB with auth and friendly sql support out of the box.

    11 stars
    Python
    Updated Oct 18, 2025

    Table of Contents

    • 🌟 What is DuckDB MCP Server?
    • What it does
    • Tools
    • Resources
    • Requirements
    • Installation
    • Configuration
    • Client setup
    • Claude Desktop
    • With S3 access
    • Read-only mode
    • Example conversations
    • Querying a local file
    • Working with S3 data
    • Statistical analysis
    • AWS credential resolution order
    • Development
    • License

    Table of Contents

    • 🌟 What is DuckDB MCP Server?
    • What it does
    • Tools
    • Resources
    • Requirements
    • Installation
    • Configuration
    • Client setup
    • Claude Desktop
    • With S3 access
    • Read-only mode
    • Example conversations
    • Querying a local file
    • Working with S3 data
    • Statistical analysis
    • AWS credential resolution order
    • Development
    • License

    Documentation

    DuckDB MCP Server

    PyPI - Version

    PyPI - Python Version

    PyPI - License

    A Model Context Protocol (MCP) server that gives AI assistants full access to DuckDB — query local files, S3 buckets, and in-memory data using plain SQL.

    🌟 What is DuckDB MCP Server?

    ---

    What it does

    This server exposes DuckDB to any MCP-compatible client (Claude Desktop, Cursor, VS Code, etc.). The assistant can:

    • Run arbitrary SQL against local CSV, Parquet, and JSON files
    • Query S3 / GCS buckets directly or cache them as local tables
    • Inspect schemas, compute statistics, and suggest visualizations
    • Use DuckDB's analytical SQL extensions (window functions, GROUP BY ALL, SELECT * EXCLUDE, etc.)

    Tools

    ToolDescription
    queryExecute any SQL query. Results capped at 10 000 rows.
    analyze_schemaDescribe the columns and types of a file or table.
    analyze_dataRow count, numeric stats (min/max/avg/median), date ranges, top categorical values.
    suggest_visualizationsSuggest chart types and ready-to-run SQL queries based on column types.
    create_sessionCreate or reset a session for cross-call context tracking.

    Resources

    Three built-in XML documentation resources are always available to the assistant:

    Resource URIContent
    duckdb-ref://friendly-sqlDuckDB SQL extensions (GROUP BY ALL, SELECT * EXCLUDE/REPLACE, FROM-first syntax, …)
    duckdb-ref://data-importLoading CSV, Parquet, JSON, and S3/GCS data; glob patterns; multi-file reads
    duckdb-ref://visualizationChart patterns and query templates for time series, bar, scatter, and heatmap

    ---

    Requirements

    • Python 3.10+
    • An MCP-compatible client

    Installation

    bash
    pip install duckdb-mcp-server

    From source:

    bash
    git clone https://github.com/mustafahasankhan/duckdb-mcp-server.git
    cd duckdb-mcp-server
    pip install -e .

    ---

    Configuration

    code
    duckdb-mcp-server --db-path  [options]
    FlagRequiredDescription
    --db-pathYesPath to the DuckDB file. Created automatically if it does not exist.
    --readonlyNoOpen the database read-only. Errors if the file does not exist.
    --s3-regionNoAWS region. Defaults to AWS_DEFAULT_REGION env var, then us-east-1.
    --s3-profileNoAWS profile name. Defaults to AWS_PROFILE env var, then default.
    --creds-from-envNoRead AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY from environment.

    ---

    Client setup

    Claude Desktop

    Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

    json
    {
      "mcpServers": {
        "duckdb": {
          "command": "duckdb-mcp-server",
          "args": ["--db-path", "~/claude-duckdb/data.db"]
        }
      }
    }

    With S3 access

    json
    {
      "mcpServers": {
        "duckdb": {
          "command": "duckdb-mcp-server",
          "args": [
            "--db-path", "~/claude-duckdb/data.db",
            "--s3-region", "us-east-1",
            "--creds-from-env"
          ],
          "env": {
            "AWS_ACCESS_KEY_ID": "YOUR_KEY",
            "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET"
          }
        }
      }
    }

    Read-only mode

    Useful when the database is shared or managed separately:

    json
    {
      "mcpServers": {
        "duckdb": {
          "command": "duckdb-mcp-server",
          "args": ["--db-path", "/shared/analytics.db", "--readonly"]
        }
      }
    }

    ---

    Example conversations

    Querying a local file

    "Load sales.csv and show me the top 5 products by revenue."

    sql
    SELECT
        product_name,
        SUM(quantity * price) AS revenue
    FROM read_csv('sales.csv')
    GROUP BY ALL
    ORDER BY revenue DESC
    LIMIT 5;

    Working with S3 data

    "Cache this month's signups from S3 and show me a daily breakdown."

    sql
    -- Step 1: cache the remote data locally
    CREATE TABLE signups AS
      SELECT * FROM read_parquet('s3://my-bucket/signups/2026-03/*.parquet',
                                 union_by_name = true);
    
    -- Step 2: query the cached table
    SELECT
        date_trunc('day', signup_at) AS day,
        COUNT(*)                     AS signups
    FROM signups
    GROUP BY ALL
    ORDER BY day DESC;

    Statistical analysis

    "Give me a statistical summary of the orders table."

    The assistant calls analyze_data("orders") which returns row count, numeric stats per column, date ranges, and top categorical values — no SQL required from you.

    ---

    AWS credential resolution order

    1. Environment variables (--creds-from-env): AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY

    2. Named profile (--s3-profile): reads ~/.aws/credentials

    3. Credential chain: environment → shared credentials file → instance profile (EC2/ECS)

    ---

    Development

    bash
    git clone https://github.com/mustafahasankhan/duckdb-mcp-server.git
    cd duckdb-mcp-server
    
    python -m venv .venv && source .venv/bin/activate
    pip install -e ".[dev]"
    
    pytest

    ---

    License

    Contributions are welcome! Please feel free to submit a Pull Request.

    MIT

    Similar MCP

    Based on tags & features

    • ES

      Esp Rainmaker Mcp

      Python·
      9
    • PE

      Personalizationmcp

      Python·
      12
    • FA

      Fal Mcp Server

      Python·
      8
    • GG

      Gget Mcp

      Python·
      17

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • ES

      Esp Rainmaker Mcp

      Python·
      9
    • PE

      Personalizationmcp

      Python·
      12
    • FA

      Fal Mcp Server

      Python·
      8
    • GG

      Gget Mcp

      Python·
      17

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k