mcp-clickhouse@0.7.0
VERIFIED· not startedPublisher claims: "An MCP server for ClickHouse." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Not started: dependency install failed; the server itself was not observed.- Tested
- the dependency install step · every file read, file written and host contacted by what ran
- Not tested
- server startup · the tool list · tool behavior
What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
CLICKHOUSE_MCP_AUTH_DISABLEDCLICKHOUSE_MCP_AUTH_TOKENCLICKHOUSE_PASSWORDConfiguration, not credentials: CHDB_DATA_PATH, CHDB_ENABLED, CLICKHOUSE_ALLOW_DROP, CLICKHOUSE_ALLOW_WRITE_ACCESS, CLICKHOUSE_CA_CERT, CLICKHOUSE_CLIENT_CERT, CLICKHOUSE_CLIENT_CERT_KEY, CLICKHOUSE_CONNECT_TIMEOUT, CLICKHOUSE_DATABASE, CLICKHOUSE_ENABLED, CLICKHOUSE_HOST, CLICKHOUSE_MCP_BIND_HOST, CLICKHOUSE_MCP_BIND_PORT, CLICKHOUSE_MCP_MAX_WORKERS, CLICKHOUSE_MCP_QUERY_TIMEOUT, CLICKHOUSE_MCP_SERVER_TRANSPORT, CLICKHOUSE_PORT, CLICKHOUSE_PROXY_PATH, CLICKHOUSE_ROLE, CLICKHOUSE_SECURE, CLICKHOUSE_SEND_RECEIVE_TIMEOUT, CLICKHOUSE_SERVER_HOST_NAME, CLICKHOUSE_TLS_MODE, CLICKHOUSE_USER, CLICKHOUSE_VERIFY, MCP_CLICKHOUSE_TRUSTSTORE_DISABLE, MCP_MIDDLEWARE_MODULE- Where it talks to
- no vendor host named in the code
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Connect it with a scoped credential, under the guard. It asks for CLICKHOUSE_MCP_AUTH_DISABLED, CLICKHOUSE_MCP_AUTH_TOKEN, CLICKHOUSE_PASSWORD and talks to its vendor. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind. What the tools do with a real credential was not observed.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-13 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
…ntract This module has meaningful import-time behavior. `mcp_server.py` loads `.env`, creates executors, constructs the `FastMCP` instance, and conditionally regis…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.… and the declared environment dependencies. - `CHANGELOG.md`. Unlike some repos, AGENTS.md makes the changelog your responsibility too: add an entry for user-visible fixes, features, security changes, and behavior chang…Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.The `Writing Style` section of AGENTS.md is the full rule set and it applies to every word you write into the docs. Read it rather than working from a summary. Terse, plain, concrete, no fluff.Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct."""Find the nearest .env at or above the installed package directory."""Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.monkeypatch.setenv("CLICKHOUSE_MCP_SERVER_TRANSPORT", "http")Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.env_file = os.path.join(directory, ".env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.(source_root / ".env").write_text("")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.monkeypatch.setenv("CLICKHOUSE_MCP_SERVER_TRANSPORT", "http")Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.env_file = package_dir.parent / ".env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.npx -y skills add clickhouse/agent-skills --allFix: Pin versions and sources; vendor anything fetched at install time.env_file = tmp_path / ".env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.monkeypatch.setenv("CLICKHOUSE_MCP_SERVER_TRANSPORT", "http")Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.timeout 10s docker run --rm \Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell."CLICKHOUSE_MCP_SERVER_TRANSPORT": "http" if app_method == "http_app" else "sse",Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.monkeypatch.setenv("CLICKHOUSE_MCP_SERVER_TRANSPORT", "http")Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.create_clickhouse_client({"dsn": "https://svc_user:svc_secret_79@host\uff03x/db"})Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…rchitecture And MCP Contract This module has meaningful import-time behavior. `mcp_server.py` loads `.env`, creates executors, constructs the `FastMCP` instance, and conditionally registers ClickHouse and chDB tools. HTTP/SSE authenticatio…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.app = mcp_server_module.mcp.sse_app()Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.lambda: "/package/.env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.load_default.assert_called_once_with(dotenv_path="/package/.env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.monkeypatch.setenv("CLICKHOUSE_MCP_SERVER_TRANSPORT", "http")Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.monkeypatch.setenv("CLICKHOUSE_MCP_SERVER_TRANSPORT", "sse")Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.values = dotenv_values(env_file if explicit_env_file else ".env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- `mcp_clickhouse/mcp_server.py`: Startup assembly, FastMCP server construction, tool and prompt registration, and shutdown coordination.Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.dsn = "https://dsn_user:[email protected]:8443/dsn_db?query_limit=10"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.(package_dir / ".env").mkdir()Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."CLICKHOUSE_MCP_SERVER_TRANSPORT=http\n"Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.CLICKHOUSE_MCP_SERVER_TRANSPORT: "stdio", "http", or "sse" (default: stdio)Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them."CLICKHOUSE_MCP_SERVER_TRANSPORT=http for Streamable HTTP."Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.(source_root / ".env").write_text(Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for mcp-clickhouse@0.7.0 as of 5 h ago. This is the package itself, not its dependencies.