{"_id":"@conte777/db-view-mcp","_rev":"7-9ab6afd657fafa5d2a1d2c6ee4ba2987","name":"@conte777/db-view-mcp","dist-tags":{"latest":"1.3.2"},"versions":{"1.0.0":{"name":"@conte777/db-view-mcp","version":"1.0.0","keywords":["mcp","database","postgresql","clickhouse"],"license":"MIT","_id":"@conte777/db-view-mcp@1.0.0","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"bin":{"db-view-mcp":"dist/index.js"},"dist":{"shasum":"29898ae8d11112f85b1cdacae867cf06f4f27db3","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.0.0.tgz","fileCount":67,"integrity":"sha512-D8tomThmNdRyXlZEaT4RiPa/ARYwwdyJEPq0/rq/ofBPu/7cdfDWfWDKQZHD0uFRfKptzmSB1H8BQE6q/0kzlg==","signatures":[{"sig":"MEUCIB0RQFU+o3byoReiURAxo1oKK7g2rCOTdHQrPWq4dVqKAiEAvlHNVCrIiZ1nrrY2XZTIe0udBCKP5RiGqHe7kd7gC2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109506},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ff1ab3c40976684a792f6671f133509d891fab87","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"},"_npmVersion":"11.8.0","description":"MCP server for database access (PostgreSQL + ClickHouse)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"pg":"^8.18.0","zod":"^4.3.6","express":"^5.2.1","@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/pg":"^8.16.0","typescript":"^5.9.3","@types/node":"^25.2.3","@types/express":"^5.0.3"},"_npmOperationalInternal":{"tmp":"tmp/db-view-mcp_1.0.0_1771340405926_0.6880367290830027","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@conte777/db-view-mcp","version":"1.1.0","keywords":["mcp","database","postgresql","clickhouse"],"license":"MIT","_id":"@conte777/db-view-mcp@1.1.0","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"bin":{"db-view-mcp":"dist/index.js"},"dist":{"shasum":"32bf29a049be51ae153f874742c92f3f5ac7f1aa","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.1.0.tgz","fileCount":73,"integrity":"sha512-AkalZpzmRtFrnuH53NCe9wmm41jRMGIahciPChp/RYnsgWsWxeqaQpPU4qHFVUcvENaYNA6eBPYYgB0vPJhIbg==","signatures":[{"sig":"MEQCICthRzBffykfAvJSvVAMvVAnyRKeehWakqY5flA7K0xqAiASbgm3eZxs/snwxmf3Wr3vSsLYS3zisfoyV4Asgcm3Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134924},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"441f643d24ddd22b0dd7d906ed784031ea1ff3f2","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"},"_npmVersion":"11.8.0","description":"MCP server for database access (PostgreSQL + ClickHouse)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"pg":"^8.18.0","zod":"^4.3.6","express":"^5.2.1","@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.1","@types/pg":"^8.16.0","typescript":"^5.9.3","@types/node":"^25.2.3","@types/express":"^5.0.3"},"_npmOperationalInternal":{"tmp":"tmp/db-view-mcp_1.1.0_1771345284233_0.0395381747094079","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@conte777/db-view-mcp","version":"1.2.0","keywords":["mcp","database","postgresql","clickhouse"],"license":"MIT","_id":"@conte777/db-view-mcp@1.2.0","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"bin":{"db-view-mcp":"dist/index.js"},"dist":{"shasum":"e1d428c7e5549731967aa9eb9f22281191543bde","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.2.0.tgz","fileCount":73,"integrity":"sha512-lEQMalL/g3LqqGmlhhUVIM8tB9n1jl9m5hmQdVKJozksb1WQEXKbI5ozrRNe7GaWX0AOYz4sMxSdg/Pgq9gplQ==","signatures":[{"sig":"MEYCIQCo86oI95UZ1JSbh6xcTPi/DCBwtpGVdGEProe7oyf4AgIhAPjiaw4vXiJiz0cSJ1NDGgrrUpjAYedr3KRcua+QORjv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146487},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"bd80138e4bf9b274ccdb7a3bf4683fbc6617498b","scripts":{"dev":"tsx src/index.ts","lint":"biome lint src/ tests/","test":"vitest run","build":"tsc","start":"node dist/index.js","format":"biome format --write src/ tests/","prepare":"lefthook install","lint:fix":"biome lint --write src/ tests/","test:watch":"vitest","format:check":"biome format src/ tests/","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"},"_npmVersion":"11.8.0","description":"MCP server for database access (PostgreSQL + ClickHouse)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"pg":"^8.18.0","zod":"^4.3.6","express":"^5.2.1","@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.1","lefthook":"^2.1.1","@types/pg":"^8.16.0","typescript":"^5.9.3","@types/node":"^25.2.3","@biomejs/biome":"^2.4.2","@types/express":"^5.0.3","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/db-view-mcp_1.2.0_1771349802972_0.7836329353777236","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@conte777/db-view-mcp","version":"1.2.1","keywords":["mcp","database","postgresql","clickhouse"],"license":"MIT","_id":"@conte777/db-view-mcp@1.2.1","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"bin":{"db-view-mcp":"dist/index.js"},"dist":{"shasum":"fd47107c2447230b3abbe66993f0f24b44227e26","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.2.1.tgz","fileCount":73,"integrity":"sha512-TRozN+GiNmxmGSAopCrBHaJCVGj99Ip2QrYePCMTFZ8RIAJShyi0XmGUB6NnZtXdeIbwQGaNfM5xznsCQEifkA==","signatures":[{"sig":"MEUCIQCBOayMMqkoBNERzsir8G/3LIKyeWYblZFzljxwE5hGJgIgdCf9zGwArvzGEIfkwnFiW++R2E5R8FR7utvfINH3cSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146311},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"bd80138e4bf9b274ccdb7a3bf4683fbc6617498b","scripts":{"dev":"tsx src/index.ts","lint":"biome lint src/ tests/","test":"vitest run","build":"tsc","start":"node dist/index.js","format":"biome format --write src/ tests/","prepare":"lefthook install","lint:fix":"biome lint --write src/ tests/","test:watch":"vitest","format:check":"biome format src/ tests/","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"},"_npmVersion":"11.8.0","description":"MCP server for database access (PostgreSQL + ClickHouse)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"pg":"^8.18.0","zod":"^4.3.6","express":"^5.2.1","@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.1","lefthook":"^2.1.1","@types/pg":"^8.16.0","typescript":"^5.9.3","@types/node":"^25.2.3","@biomejs/biome":"^2.4.2","@types/express":"^5.0.3","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/db-view-mcp_1.2.1_1772193695927_0.5530545006609393","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@conte777/db-view-mcp","version":"1.3.0","keywords":["mcp","database","postgresql","clickhouse"],"license":"MIT","_id":"@conte777/db-view-mcp@1.3.0","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"homepage":"https://github.com/Conte777/db-view-mcp#readme","bugs":{"url":"https://github.com/Conte777/db-view-mcp/issues"},"bin":{"db-view-mcp":"dist/index.js"},"dist":{"shasum":"9b067b282607706197d0be1c9163c5484ff59654","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.3.0.tgz","fileCount":76,"integrity":"sha512-+n+msy/VT/0S8N8Fm8lS2KS2e6496wJLa/y2nSy+p5UuCt7FZKCPhbqe2UVLir2S2GrUDsrSgrmtl8zBoxBjqA==","signatures":[{"sig":"MEUCIA5xrbxUeUJxlwcKORlnQUghHO0Vg58r0OIP6RVIYLE8AiEAyByAxLsPyc23SqMOpl+MwBWB7uc3plIPvN0b8hZELDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@conte777%2fdb-view-mcp@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174087},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"670a296271bdce41c34691149dd70e8a6464836d","scripts":{"dev":"tsx src/index.ts","lint":"biome lint src/ tests/","test":"vitest run","build":"tsc","start":"node dist/index.js","format":"biome format --write src/ tests/","prepare":"lefthook install","lint:fix":"biome lint --write src/ tests/","test:watch":"vitest","format:check":"biome format src/ tests/","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23fcc057-f807-4e7d-87d3-eb00e3e9203c"}},"repository":{"url":"git+https://github.com/Conte777/db-view-mcp.git","type":"git"},"_npmVersion":"11.18.0","description":"MCP server for database access (PostgreSQL + ClickHouse)","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pg":"^8.18.0","zod":"^4.3.6","express":"^5.2.1","@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.1","lefthook":"^2.1.1","@types/pg":"^8.16.0","typescript":"^5.9.3","@types/node":"^25.2.3","@biomejs/biome":"^2.4.2","@types/express":"^5.0.3","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/db-view-mcp_1.3.0_1783089692078_0.06502397066020404","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@conte777/db-view-mcp","version":"1.3.1","keywords":["mcp","database","postgresql","clickhouse"],"license":"MIT","_id":"@conte777/db-view-mcp@1.3.1","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"homepage":"https://github.com/Conte777/db-view-mcp#readme","bugs":{"url":"https://github.com/Conte777/db-view-mcp/issues"},"bin":{"db-view-mcp":"dist/index.js"},"dist":{"shasum":"f9579110a4a5c9539b5e604a73a28fcfe22c01a7","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.3.1.tgz","fileCount":76,"integrity":"sha512-WzJ9s3Ma+bbr7dPQn6B5JBNpANd4AbyIgs0g00gtZw7hptjGaEdjMoMOaFVYIFk/sZ7KynuCsZ3d57ZQG0GBZw==","signatures":[{"sig":"MEQCIAkxfWT3bg48ub/9BlEQjrT9/FPCSkQW66rydLgz+dm9AiBnMI5w2IN7z7aiyDIB1eBbWbegFS79g91c+qe4Rs82cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@conte777%2fdb-view-mcp@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174255},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1c237c14780f9656da3d064b75f8546ddc9ae688","scripts":{"dev":"tsx src/index.ts","lint":"biome lint src/ tests/","test":"vitest run","build":"tsc","start":"node dist/index.js","format":"biome format --write src/ tests/","prepare":"lefthook install","lint:fix":"biome lint --write src/ tests/","test:watch":"vitest","format:check":"biome format src/ tests/","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23fcc057-f807-4e7d-87d3-eb00e3e9203c"}},"repository":{"url":"git+https://github.com/Conte777/db-view-mcp.git","type":"git"},"_npmVersion":"11.18.0","description":"MCP server for database access (PostgreSQL + ClickHouse)","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pg":"^8.18.0","zod":"^4.3.6","express":"^5.2.1","@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.1","lefthook":"^2.1.1","@types/pg":"^8.16.0","typescript":"^5.9.3","@types/node":"^25.2.3","@biomejs/biome":"^2.4.2","@types/express":"^5.0.3","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/db-view-mcp_1.3.1_1783422267919_0.9079196815081667","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@conte777/db-view-mcp","version":"1.3.2","description":"MCP server for database access (PostgreSQL + ClickHouse)","type":"module","main":"dist/index.js","bin":{"db-view-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","start":"node dist/index.js","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"biome lint src/ tests/","lint:fix":"biome lint --write src/ tests/","format":"biome format --write src/ tests/","format:check":"biome format src/ tests/","prepare":"lefthook install","prepublishOnly":"npm run build"},"keywords":["mcp","database","postgresql","clickhouse"],"repository":{"type":"git","url":"git+https://github.com/Conte777/db-view-mcp.git"},"homepage":"https://github.com/Conte777/db-view-mcp#readme","bugs":{"url":"https://github.com/Conte777/db-view-mcp/issues"},"license":"MIT","dependencies":{"@clickhouse/client":"^1.17.0","@modelcontextprotocol/sdk":"^1.26.0","express":"^5.2.1","pg":"^8.18.0","zod":"^4.3.6"},"devDependencies":{"@biomejs/biome":"^2.4.2","@types/express":"^5.0.3","@types/node":"^25.2.3","@types/pg":"^8.16.0","@vitest/coverage-v8":"^3.2.4","lefthook":"^2.1.1","tsx":"^4.21.0","typescript":"^5.9.3","vitest":"^3.1.1"},"gitHead":"d0c7a6c753ba7d5b958b62277dc2994069d8165e","types":"./dist/index.d.ts","_id":"@conte777/db-view-mcp@1.3.2","_nodeVersion":"22.23.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-2+AkkJqFp0MWCwpZ9+HnKtyPcl5S+osvp+1Nx+CL6/f0dRJlzVkrcjJ4lbtEiIraDtEtqwrlU5IqCdzTLoENuQ==","shasum":"c802156eae4e99350ead83ed9448b366e7480ec1","tarball":"https://registry.npmjs.org/@conte777/db-view-mcp/-/db-view-mcp-1.3.2.tgz","fileCount":76,"unpackedSize":175404,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@conte777%2fdb-view-mcp@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBL255pakG62BxlD/0JWBCElsCGwQ/yS/hbjxq5WMIUFAiB0rbv8qxyYocTPmbFc5iCFviNA9rsDmXWWp3YrIsHHTg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:23fcc057-f807-4e7d-87d3-eb00e3e9203c"}},"directories":{},"maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/db-view-mcp_1.3.2_1786026200165_0.12447361899802756"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T15:00:05.845Z","modified":"2026-08-06T14:23:20.642Z","1.0.0":"2026-02-17T15:00:06.080Z","1.1.0":"2026-02-17T16:21:24.402Z","1.2.0":"2026-02-17T17:36:43.117Z","1.2.1":"2026-02-27T12:01:36.082Z","1.3.0":"2026-07-03T14:41:32.266Z","1.3.1":"2026-07-07T11:04:28.060Z","1.3.2":"2026-08-06T14:23:20.326Z"},"bugs":{"url":"https://github.com/Conte777/db-view-mcp/issues"},"license":"MIT","homepage":"https://github.com/Conte777/db-view-mcp#readme","keywords":["mcp","database","postgresql","clickhouse"],"repository":{"type":"git","url":"git+https://github.com/Conte777/db-view-mcp.git"},"description":"MCP server for database access (PostgreSQL + ClickHouse)","maintainers":[{"name":"conte777","email":"alexey.kolesnikov77@gmail.com"}],"readme":"# db-view-mcp\n\n[![npm](https://img.shields.io/npm/v/@conte777/db-view-mcp)](https://www.npmjs.com/package/@conte777/db-view-mcp)\n[![CI](https://github.com/Conte777/db-view-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Conte777/db-view-mcp/actions/workflows/ci.yml)\n\nAn MCP server that gives AI assistants direct access to PostgreSQL and ClickHouse databases. It\nsupports both stdio and HTTP transports, for local IDE integration and remote network access.\n\n## Features\n\n- **Multi-database** — connect any number of PostgreSQL and ClickHouse instances at once\n- **Dual transport** — stdio for IDE integration (Cursor, Claude Code), HTTP for remote/multi-client access\n- **Read & write tools** — SELECT with row limits, INSERT/UPDATE/DELETE, DDL, transactions\n- **Schema introspection** — list tables, describe columns, export full DDL\n- **Query analysis** — EXPLAIN / EXPLAIN ANALYZE, slow-query tracking\n- **SQL safety** — read-only tools validate SQL and block accidental writes\n- **Flexible tool modes** — one tool with a `database` parameter, or a separate tool per database\n- **Lazy connections** — databases connect on first use by default\n- **Bearer auth** — optional token authentication for the HTTP transport\n- **Session management** — stateful (per-session MCP server) or stateless HTTP mode\n\n## Install\n\n```bash\nnpm install @conte777/db-view-mcp\n```\n\nOr clone and build from source:\n\n```bash\ngit clone <repo-url>\ncd db-view-mcp\nnpm install\nnpm run build\n```\n\n## Quick start\n\n### 1. Configure\n\nCopy the example config and edit it:\n\n```bash\ncp config.example.json config.json\n```\n\nMinimal stdio config:\n\n```json\n{\n  \"databases\": [\n    {\n      \"id\": \"main_pg\",\n      \"type\": \"postgresql\",\n      \"host\": \"localhost\",\n      \"port\": 5432,\n      \"database\": \"myapp\",\n      \"user\": \"admin\",\n      \"password\": \"secret123\"\n    }\n  ]\n}\n```\n\nEvery field, default, and the full config reference (SSL/TLS, per-database overrides, environment\nsubstitution, HTTP transport) is in [docs/configuration.md](docs/configuration.md).\n\n### 2. Run\n\n```bash\n# Stdio (default)\nnpm start -- --config config.json\n\n# HTTP (set transport.type to \"http\" in config, or override on the CLI)\nnpm start -- --config config.json --transport http\n\n# Development (no build needed)\nnpm run dev -- --config config.json\n```\n\n### 3. Add an MCP client\n\n**Claude Desktop** (`claude_desktop_config.json`) or **Claude Code** (`.mcp.json`), stdio:\n\n```json\n{\n  \"mcpServers\": {\n    \"database\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@conte777/db-view-mcp\", \"--config\", \"/path/to/config.json\"]\n    }\n  }\n}\n```\n\n**Any MCP client**, HTTP:\n\n```bash\nnode dist/index.js --config config.json --transport http\n# Server listens on http://127.0.0.1:3000/mcp\n```\n\nSee [docs/http-transport.md](docs/http-transport.md) for sessions, auth, and curl examples.\n\n## Documentation\n\n| Doc | Contents |\n|-----|----------|\n| [docs/configuration.md](docs/configuration.md) | Every config field, defaults, SSL/TLS, `rowFormat`, env substitution, hot reload |\n| [docs/tools.md](docs/tools.md) | The 9 tools: params, output, examples, error codes, per-database mode |\n| [docs/http-transport.md](docs/http-transport.md) | stdio vs HTTP, sessions, bearer auth, `/health`, curl |\n| [docs/security.md](docs/security.md) | Read-only SQL validator, deny-lists, response caps, network exposure |\n| [docs/architecture.md](docs/architecture.md) | Source tree, layers, connector model, lifecycle (hot reload, shutdown) |\n| [CONTRIBUTING.md](CONTRIBUTING.md) | Build, test, lint, hooks, CI |\n\n## ClickHouse limitations\n\n- Transactions are not supported (`transaction begin` throws).\n- Query `params` are ignored — use ClickHouse's native `{name:Type}` syntax in the SQL.\n\n## Development\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for build/test/lint commands, coverage thresholds, git\nhooks, and CI.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}