{
  "name": "io.github.ClickHouse/mcp-clickhouse",
  "description": "The official ClickHouse MCP connects an AI agent to a ClickHouse cluster — self-hosted or ClickHouse Cloud — and exposes schema inspection, dictionary listing, and SELECT execution. Designed for analytical workloads where Postgres is the wrong shape and DuckDB is too local. The server ships read-only by default and honours role-level grants on the connecting user.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-06-02",
    "com.top-mcps/score": {
      "value": 85,
      "rubricVersion": "2026-04",
      "lastComputed": "2026-06-02T13:16:41.644Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-06-02T13:16:41.160Z",
      "githubStars": 794,
      "lastCommitAt": "2026-05-27T21:56:26Z"
    }
  },
  "repository": {
    "url": "https://github.com/ClickHouse/mcp-clickhouse",
    "source": "github"
  },
  "author": {
    "name": "ClickHouse"
  },
  "packages": [
    {
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org",
      "identifier": "mcp-clickhouse",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "name": "CLICKHOUSE_HOST",
          "description": "CLICKHOUSE_HOST — required credential for ClickHouse.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "CLICKHOUSE_PORT",
          "description": "CLICKHOUSE_PORT — required credential for ClickHouse.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "CLICKHOUSE_USER",
          "description": "CLICKHOUSE_USER — required credential for ClickHouse.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "CLICKHOUSE_PASSWORD",
          "description": "CLICKHOUSE_PASSWORD — required credential for ClickHouse.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "CLICKHOUSE_SECURE",
          "description": "CLICKHOUSE_SECURE — required credential for ClickHouse.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "list_databases",
        "description": "List databases on the cluster.",
        "sideEffect": "read"
      },
      {
        "name": "list_tables",
        "description": "List tables in a database, including materialized views.",
        "sideEffect": "read",
        "args": [
          {
            "name": "database",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "describe_table",
        "description": "Return columns, types, and partition keys for a table.",
        "sideEffect": "read",
        "args": [
          {
            "name": "table",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "list_dictionaries",
        "description": "List ClickHouse dictionaries.",
        "sideEffect": "read"
      },
      {
        "name": "query",
        "description": "Run a SELECT statement and return rows. Read-only.",
        "sideEffect": "read",
        "args": [
          {
            "name": "sql",
            "type": "string",
            "required": true
          }
        ]
      }
    ],
    "security": {
      "scope": "read-only",
      "sandbox": "Connects to a ClickHouse cluster with a username/password (Cloud) or native auth (self-hosted). Read-only at the MCP tool layer; pair with a SELECT-only role on the cluster for defence in depth.",
      "gotchas": [
        "Read-only is MCP-side, not GRANT-side. Always create a dedicated reader role on the cluster.",
        "ClickHouse Cloud bills per query — the MCP does not gate runaway aggregations. Set max_execution_time on the user profile.",
        "CLICKHOUSE_SECURE=true is required for Cloud endpoints; the default port 8443 is TLS-only."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/clickhouse",
    "markdown": "https://top-mcps.com/mcp/clickhouse.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
