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

    Greptimedb Mcp Server

    A Model Context Protocol (MCP) server implementation for GreptimeDB

    23 stars
    Python
    Updated Sep 20, 2025

    Table of Contents

    • Quick Start
    • Features
    • Tools
    • Pipeline Management
    • Resources & Prompts
    • Configuration
    • Environment Variables
    • CLI Arguments
    • HTTP Server Mode
    • DNS Rebinding Protection
    • Security
    • Read-Only Database User (Recommended)
    • Application-Level Security Gate
    • Data Masking
    • Audit Logging
    • Development
    • License
    • Acknowledgement

    Table of Contents

    • Quick Start
    • Features
    • Tools
    • Pipeline Management
    • Resources & Prompts
    • Configuration
    • Environment Variables
    • CLI Arguments
    • HTTP Server Mode
    • DNS Rebinding Protection
    • Security
    • Read-Only Database User (Recommended)
    • Application-Level Security Gate
    • Data Masking
    • Audit Logging
    • Development
    • License
    • Acknowledgement

    Documentation

    greptimedb-mcp-server

    PyPI - Version

    build workflow

    MCP Registry

    MIT License

    A Model Context Protocol (MCP) server for GreptimeDB — an open-source observability database that handles metrics, logs, and traces in one engine.

    Enables AI assistants to query and analyze GreptimeDB using SQL, TQL (PromQL-compatible), and RANGE queries, with built-in security features like read-only enforcement and data masking.

    Quick Start

    bash
    # Install
    pip install greptimedb-mcp-server
    
    # Run (connects to localhost:4002 by default)
    greptimedb-mcp-server --host localhost --database public

    For Claude Desktop, add this to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

    json
    {
      "mcpServers": {
        "greptimedb": {
          "command": "greptimedb-mcp-server",
          "args": ["--host", "localhost", "--database", "public"]
        }
      }
    }

    Features

    Tools

    ToolDescription
    execute_sqlExecute SQL queries with format (csv/json/markdown) and limit options
    execute_tqlExecute TQL (PromQL-compatible) queries for time-series analysis
    query_rangeExecute time-window aggregation queries with RANGE/ALIGN syntax
    describe_tableGet table schema including column names, types, and constraints
    explain_queryAnalyze SQL or TQL query execution plans
    health_checkCheck database connection status and server version

    Pipeline Management

    ToolDescription
    list_pipelinesList all pipelines or get details of a specific pipeline
    create_pipelineCreate a new pipeline with YAML configuration
    dryrun_pipelineTest a pipeline with sample data without writing to database
    delete_pipelineDelete a specific version of a pipeline

    Resources & Prompts

    • Resources: Browse tables via greptime:///data URIs
    • Prompts: Built-in templates for common tasks — pipeline_creator, log_pipeline, metrics_analysis, promql_analysis, iot_monitoring, trace_analysis, table_operation

    For LLM integration and prompt usage, see docs/llm-instructions.md.

    Configuration

    Environment Variables

    bash
    GREPTIMEDB_HOST=localhost      # Database host
    GREPTIMEDB_PORT=4002           # MySQL protocol port (default: 4002)
    GREPTIMEDB_USER=root           # Database user
    GREPTIMEDB_PASSWORD=           # Database password
    GREPTIMEDB_DATABASE=public     # Database name
    GREPTIMEDB_TIMEZONE=UTC        # Session timezone
    
    # Optional
    GREPTIMEDB_HTTP_PORT=4000      # HTTP API port for pipeline management
    GREPTIMEDB_HTTP_PROTOCOL=http  # HTTP protocol (http/https)
    GREPTIMEDB_POOL_SIZE=5         # Connection pool size
    GREPTIMEDB_MASK_ENABLED=true   # Enable sensitive data masking
    GREPTIMEDB_MASK_PATTERNS=      # Additional patterns (comma-separated)
    GREPTIMEDB_AUDIT_ENABLED=true  # Enable audit logging
    
    # Transport (for HTTP server mode)
    GREPTIMEDB_TRANSPORT=stdio     # stdio, sse, or streamable-http
    GREPTIMEDB_LISTEN_HOST=0.0.0.0 # HTTP server bind host
    GREPTIMEDB_LISTEN_PORT=8080    # HTTP server bind port
    GREPTIMEDB_ALLOWED_HOSTS=      # DNS rebinding protection (comma-separated)
    GREPTIMEDB_ALLOWED_ORIGINS=    # CORS allowed origins (comma-separated)

    CLI Arguments

    bash
    greptimedb-mcp-server \
      --host localhost \
      --port 4002 \
      --database public \
      --user root \
      --password "" \
      --timezone UTC \
      --pool-size 5 \
      --mask-enabled true \
      --transport stdio

    HTTP Server Mode

    For containerized or Kubernetes deployments. Requires mcp>=1.8.0:

    bash
    # Streamable HTTP (recommended for production)
    greptimedb-mcp-server --transport streamable-http --listen-port 8080
    
    # SSE mode (legacy)
    greptimedb-mcp-server --transport sse --listen-port 3000

    DNS Rebinding Protection

    By default, DNS rebinding protection is disabled for compatibility with proxies, gateways, and Kubernetes services. To enable it, use --allowed-hosts:

    bash
    # Enable DNS rebinding protection with allowed hosts
    greptimedb-mcp-server --transport streamable-http \
      --allowed-hosts "localhost:*,127.0.0.1:*,my-service.namespace:*"
    
    # With custom allowed origins for CORS
    greptimedb-mcp-server --transport streamable-http \
      --allowed-hosts "my-service.namespace:*" \
      --allowed-origins "http://localhost:*,https://my-app.example.com"
    
    # Or via environment variables
    GREPTIMEDB_ALLOWED_HOSTS="localhost:*,my-service.namespace:*" \
    GREPTIMEDB_ALLOWED_ORIGINS="http://localhost:*" \
      greptimedb-mcp-server --transport streamable-http

    If you encounter 421 Invalid Host Header errors, either disable protection (default) or add your host to the allowed list.

    Security

    Read-Only Database User (Recommended)

    Create a read-only user in GreptimeDB using static user provider:

    code
    mcp_readonly:readonly=your_secure_password

    Application-Level Security Gate

    All queries go through a security gate that:

    • Blocks: DROP, DELETE, TRUNCATE, UPDATE, INSERT, ALTER, CREATE, GRANT, REVOKE, EXEC, LOAD, COPY
    • Blocks: Encoded bypass attempts (hex, UNHEX, CHAR)
    • Allows: SELECT, SHOW, DESCRIBE, TQL, EXPLAIN, UNION

    Data Masking

    Sensitive columns are automatically masked (******) based on column name patterns:

    • Authentication: password, secret, token, api_key, credential
    • Financial: credit_card, cvv, bank_account
    • Personal: ssn, id_card, passport

    Configure with --mask-patterns phone,email to add custom patterns.

    Audit Logging

    All tool invocations are logged:

    code
    2025-12-10 10:30:45 - greptimedb_mcp_server.audit - INFO - [AUDIT] execute_sql | query="SELECT * FROM cpu LIMIT 10" | success=True | duration_ms=45.2

    Disable with --audit-enabled false.

    Development

    bash
    # Clone and setup
    git clone https://github.com/GreptimeTeam/greptimedb-mcp-server.git
    cd greptimedb-mcp-server
    uv venv && source .venv/bin/activate
    uv sync
    
    # Run tests
    pytest
    
    # Format & lint
    uv run black .
    uv run flake8 src
    
    # Debug with MCP Inspector
    npx @modelcontextprotocol/inspector uv --directory . run -m greptimedb_mcp_server.server

    License

    MIT License - see LICENSE.md.

    Acknowledgement

    Inspired by:

    • ktanaka101/mcp-server-duckdb
    • designcomputer/mysql_mcp_server
    • mikeskarl/mcp-prompt-templates

    Similar MCP

    Based on tags & features

    • PE

      Personalizationmcp

      Python·
      12
    • MA

      Mayamcp

      Python·
      27
    • BI

      Biothings Mcp

      Python·
      25
    • 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

    • PE

      Personalizationmcp

      Python·
      12
    • MA

      Mayamcp

      Python·
      27
    • BI

      Biothings Mcp

      Python·
      25
    • 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