{"id":48765448,"url":"https://github.com/databendlabs/mcp-databend","last_synced_at":"2026-04-13T07:49:27.714Z","repository":{"id":295574774,"uuid":"987547585","full_name":"databendlabs/mcp-databend","owner":"databendlabs","description":"MCP server of databend","archived":false,"fork":false,"pushed_at":"2026-01-25T01:27:52.000Z","size":468,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-13T07:49:21.777Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/databendlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-21T08:30:45.000Z","updated_at":"2026-02-03T12:36:33.000Z","dependencies_parsed_at":"2025-08-05T12:55:45.308Z","dependency_job_id":"83eef6ce-c74e-47c4-90c9-9a74037ab1e3","html_url":"https://github.com/databendlabs/mcp-databend","commit_stats":null,"previous_names":["databendlabs/mcp-server-databend","databendlabs/mcp-databend"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/databendlabs/mcp-databend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databendlabs%2Fmcp-databend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databendlabs%2Fmcp-databend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databendlabs%2Fmcp-databend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databendlabs%2Fmcp-databend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/databendlabs","download_url":"https://codeload.github.com/databendlabs/mcp-databend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databendlabs%2Fmcp-databend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31744404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T06:26:45.479Z","status":"ssl_error","status_checked_at":"2026-04-13T06:26:44.645Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-13T07:49:27.118Z","updated_at":"2026-04-13T07:49:27.683Z","avatar_url":"https://github.com/databendlabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MCP Server for Databend\n\n[![PyPI - Version](https://img.shields.io/pypi/v/mcp-databend)](https://pypi.org/project/mcp-databend)\n\nConnect AI agents to your Databend database safely. Session sandbox keeps production read-only while agents experiment. Works with Codex, Cursor, Claude Code, Gemini CLI, and any MCP-compatible client. Learn more at [databend.com/mcp](https://www.databend.com/mcp/).\n\n## Usage\n\n1. Get your Databend DSN.\n   Format: `databend://user:password@host:port/database?warehouse=your_warehouse`\n   Get it from [Databend Cloud](https://app.databend.com) or the [docs](https://docs.databend.com/developer/drivers/#connection-string-dsn).\n2. Session sandbox safety: writes only to `mcp_sandbox_{session_id}_*`; production stays read-only.\n   Use `get_session_sandbox_prefix` to retrieve the live prefix.\n3. Configure your MCP client.\n\n**Standard config** works in most tools:\n\n```js\n{\n  \"mcpServers\": {\n    \"databend\": {\n      \"command\": \"uv\",\n      \"args\": [\"tool\", \"run\", \"--from\", \"mcp-databend@latest\", \"mcp-databend\"],\n      \"env\": {\n        \"DATABEND_DSN\": \"databend://user:password@host:port/database?warehouse=your_warehouse\"\n      }\n    }\n  }\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eCodex\u003c/summary\u003e\n\nUse the Codex CLI to add the Databend MCP server:\n\n```bash\ncodex mcp add databend \\\n  --env DATABEND_DSN='databend://user:password@host:port/database?warehouse=your_warehouse' \\\n  -- uv tool run --from mcp-databend@latest mcp-databend\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eClaude Code\u003c/summary\u003e\n\nUse the Claude Code CLI to add the Databend MCP server:\n\n```bash\nclaude mcp add databend \\\n  --env DATABEND_DSN='databend://user:password@host:port/database?warehouse=your_warehouse' \\\n  -- uv tool run --from mcp-databend@latest mcp-databend\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCursor\u003c/summary\u003e\n\n#### Click the button to install:\n\n[\u003cimg src=\"https://cursor.com/deeplink/mcp-install-dark.svg\" alt=\"Install in Cursor\"\u003e](https://cursor.com/en/install-mcp?name=Databend\u0026config=eyJjb21tYW5kIjoidXYgdG9vbCBydW4gLS1mcm9tIG1jcC1kYXRhYmVuZEBsYXRlc3QgbWNwLWRhdGFiZW5kIn0%3D)\n\nThen open `Cursor Settings` -\u003e `MCP`, select `Databend`, click `Edit`, and add `DATABEND_DSN` to the env section. Cursor keeps the command as a single string:\n\n```json\n{\n  \"mcpServers\": {\n    \"Databend\": {\n      \"command\": \"uv tool run --from mcp-databend@latest mcp-databend\",\n      \"env\": {\n        \"DATABEND_DSN\": \"databend://user:password@host:port/database?warehouse=your_warehouse\"\n      },\n      \"args\": []\n    }\n  }\n}\n```\n\n#### Or install manually:\n\nGo to `Cursor Settings` -\u003e `MCP` -\u003e `Add new MCP Server`. Paste command `uv tool run --from mcp-databend@latest mcp-databend`, then click `Edit` and add `DATABEND_DSN` in env.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGemini CLI\u003c/summary\u003e\n\nAdd the standard config above to your Gemini CLI `settings.json`.\n\n\u003c/details\u003e\n\n## Safety Guarantees\n\n| Scope | Rules |\n|-------|-------|\n| Read access | `SELECT/SHOW/DESCRIBE/EXPLAIN/LIST` on any object. |\n| Write access | Only objects prefixed with `mcp_sandbox_{session_id}_*`. |\n| Sandbox objects | `CATALOG`, `DATABASE`, `TABLE`, `VIEW`, `STAGE`, `FUNCTION`, `USER`, `ROLE`, `TASK`, `PIPE`, `STREAM`, `CONNECTION`, `WAREHOUSE`, `SEQUENCE`, `PROCEDURE`, `DICTIONARY`, `TAG`, `FILE FORMAT`, `NETWORK POLICY`, `PASSWORD POLICY`, `MASKING POLICY`, `ROW ACCESS POLICY`, `NOTIFICATION INTEGRATION`, `WORKLOAD GROUP`, `DYNAMIC TABLE`, `INDEX` (AGGREGATING/INVERTED/NGRAM/VECTOR). |\n| Write rules | `CREATE/CREATE OR REPLACE/DROP/ALTER` on sandbox objects; DML only on sandbox tables (`INSERT/UPDATE/DELETE/TRUNCATE/COPY/MERGE/REPLACE`); `GRANT/REVOKE` only on sandbox objects/principals; `ALTER ... SET|UNSET TAG` requires sandbox tag + target; `CREATE TASK|PIPE|DYNAMIC TABLE|INDEX ... AS` and `CREATE STREAM ... ON TABLE` only sandbox refs; `REMOVE @stage` only sandbox stages. |\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `execute_sql` | Execute SQL with sandbox validation |\n| `execute_multi_sql` | Execute multiple SQL statements |\n| `show_databases` | List all databases |\n| `show_tables` | List tables in database |\n| `describe_table` | Get table schema |\n| `get_session_sandbox_prefix` | Get current session prefix |\n| `list_session_sandbox_databases` | List sandbox databases |\n| `create_session_sandbox_database` | Create sandbox database |\n| `show_stages` / `list_stage_files` / `create_stage` | Stage management |\n| `show_connections` | List connections |\n\n## Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `DATABEND_DSN` | - | Connection string |\n| `LOCAL_MODE` | `false` | Use embedded Databend |\n| `DATABEND_QUERY_TIMEOUT` | `300` | Query timeout (seconds) |\n| `DATABEND_MCP_SERVER_TRANSPORT` | `stdio` | Transport: `stdio`, `http`, `sse` |\n| `DATABEND_MCP_BIND_HOST` | `127.0.0.1` | Bind host for HTTP/SSE |\n| `DATABEND_MCP_BIND_PORT` | `8001` | Bind port for HTTP/SSE |\n\nLocal mode stores data in `.databend/`.\n\n## Development\n\n```bash\ngit clone https://github.com/databendlabs/mcp-databend\ncd mcp-databend\nuv sync\n\n# Run locally\nuv run python -m mcp_databend.main\n\n# Debug\nnpx @modelcontextprotocol/inspector uv run python -m mcp_databend.main\n\n# Test\nuv run pytest\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabendlabs%2Fmcp-databend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatabendlabs%2Fmcp-databend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabendlabs%2Fmcp-databend/lists"}