{"_id":"@arkty/redash-mcp","_rev":"2-3cac955d17e19f05d87fae412cbc77ff","name":"@arkty/redash-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@arkty/redash-mcp","version":"0.1.0","keywords":["mcp","redash","sql","model-context-protocol","claude","ai"],"author":{"name":"arkty"},"license":"MIT","_id":"@arkty/redash-mcp@0.1.0","maintainers":[{"name":"arkty","email":"andrey.khitryy@gmail.com"}],"homepage":"https://github.com/arkty/redash-mcp","bugs":{"url":"https://github.com/arkty/redash-mcp/issues"},"bin":{"redash-mcp":"build/index.js"},"dist":{"shasum":"67da245f5a3c6c39154398ef7460d415b72d0de6","tarball":"https://registry.npmjs.org/@arkty/redash-mcp/-/redash-mcp-0.1.0.tgz","fileCount":39,"integrity":"sha512-X69i6ZWOwEBBksPNMgyUyr+Oum7jwCq793ppQSZDpIGHeHMCrDyknXhrxW48uCOPS0exFSmIrh6vcwm8vZF4hQ==","signatures":[{"sig":"MEYCIQDpe0cIlhugLkP0DYLMxx6OTK70L71H1Atp5xNFG16rggIhAPdSx0GJCMsMNOgQC0hfnlTVJDXCKRPow8oJdyubPxvi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55213},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"59e948fcbdb99fc82b2a7fa245a9ad701d331f63","scripts":{"dev":"tsc --watch","build":"tsc && chmod 755 build/index.js","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"arkty","email":"andrey.khitryy@gmail.com"},"repository":{"url":"git+https://github.com/arkty/redash-mcp.git","type":"git"},"_npmVersion":"9.8.1","description":"MCP Server for Redash — execute queries, explore schemas, get results as JSON or CSV","directories":{},"_nodeVersion":"18.18.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/redash-mcp_0.1.0_1774549657863_0.6127744068561904","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@arkty/redash-mcp","version":"0.1.1","description":"MCP Server for Redash — execute queries, explore schemas, get results as JSON or CSV","type":"module","main":"build/index.js","bin":{"redash-mcp":"build/index.js"},"scripts":{"build":"tsc && chmod 755 build/index.js","prepublishOnly":"npm run build","dev":"tsc --watch","start":"node build/index.js"},"keywords":["mcp","redash","sql","model-context-protocol","claude","ai"],"author":{"name":"arkty"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/arkty/redash-mcp.git"},"homepage":"https://github.com/arkty/redash-mcp","bugs":{"url":"https://github.com/arkty/redash-mcp/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.28.0","zod":"^4.3.6"},"devDependencies":{"@types/node":"^25.5.0","typescript":"^6.0.2"},"gitHead":"409511d4bb5985109b4625dde45cb6f59c254cf4","types":"./build/index.d.ts","_id":"@arkty/redash-mcp@0.1.1","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-Q4L5YSlnF16GEkbUr8BXKDGL5pemFz38TtuVUBfl0x9h5mowCe6XU8KFZM/a9VgiuTOvKPJFrOFdm/plfaBNFw==","shasum":"b70d9595a889337da3274c92e3331b4a74c33b9b","tarball":"https://registry.npmjs.org/@arkty/redash-mcp/-/redash-mcp-0.1.1.tgz","fileCount":39,"unpackedSize":55996,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICia9FZbsRr1QV3j+9ubpsusIPuaM2n+d+JfadIu4elOAiEA6IyIVjHE7DZflIhEOvAkyELVpdakJS8hkQ3RrElpSNM="}]},"_npmUser":{"name":"arkty","email":"andrey.khitryy@gmail.com"},"directories":{},"maintainers":[{"name":"arkty","email":"andrey.khitryy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/redash-mcp_0.1.1_1774704071699_0.06557265445435112"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T18:27:37.800Z","modified":"2026-03-28T13:21:11.977Z","0.1.0":"2026-03-26T18:27:38.028Z","0.1.1":"2026-03-28T13:21:11.862Z"},"bugs":{"url":"https://github.com/arkty/redash-mcp/issues"},"author":{"name":"arkty"},"license":"MIT","homepage":"https://github.com/arkty/redash-mcp","keywords":["mcp","redash","sql","model-context-protocol","claude","ai"],"repository":{"type":"git","url":"git+https://github.com/arkty/redash-mcp.git"},"description":"MCP Server for Redash — execute queries, explore schemas, get results as JSON or CSV","maintainers":[{"name":"arkty","email":"andrey.khitryy@gmail.com"}],"readme":"# @arkty/redash-mcp\n\n[![Made with AI](https://img.shields.io/badge/Made%20with-AI-blue)](https://claude.ai) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![npm](https://img.shields.io/npm/v/@arkty/redash-mcp)](https://www.npmjs.com/package/@arkty/redash-mcp)\n\nMCP Server for [Redash](https://redash.io) — execute SQL queries, explore database schemas, and get results as JSON or CSV.\n\n- **Ad-hoc queries** without creating objects in Redash (no trace left)\n- **SQL write guard** — destructive operations (INSERT/UPDATE/DELETE/DROP) are blocked\n- **CSV export** — saves results to file, returns summary to LLM\n- **Schema exploration** — list tables, search columns, inspect structure\n- **Default data source** — configure once, query without specifying every time\n\n## Installation\n\n```bash\nnpx -y @arkty/redash-mcp\n```\n\n## Configuration\n\n### Claude Code (`.mcp.json`)\n\n```json\n{\n  \"mcpServers\": {\n    \"redash\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@arkty/redash-mcp\"],\n      \"env\": {\n        \"REDASH_URL\": \"https://your-redash.example.com\",\n        \"REDASH_API_KEY\": \"your-api-key\",\n        \"REDASH_DEFAULT_DATA_SOURCE_ID\": \"1\"\n      }\n    }\n  }\n}\n```\n\n### Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `REDASH_URL` | Yes | — | Redash instance URL |\n| `REDASH_API_KEY` | Yes | — | User API key (from Redash profile settings) |\n| `REDASH_DEFAULT_DATA_SOURCE_ID` | No | — | Default data source ID |\n| `REDASH_DEFAULT_TABLE` | No | — | Default table name (shown in tool description) |\n| `REDASH_TIMEOUT` | No | 30000 | Request timeout in ms |\n| `REDASH_MAX_ROWS` | No | 500 | Max rows in JSON response |\n| `REDASH_POLL_INTERVAL` | No | 1000 | Job polling interval in ms |\n| `REDASH_MAX_POLL_ATTEMPTS` | No | 120 | Max poll attempts before timeout |\n| `REDASH_OUTPUT_DIR` | No | `.` | Directory for CSV file output |\n| `REDASH_EXTRA_HEADERS` | No | — | Extra HTTP headers (JSON or `key=value;key2=value2`) |\n\n## Tools\n\n### `execute_adhoc_query`\n\nExecute SQL directly against a data source. No query object is created in Redash. Destructive SQL is blocked.\n\nParameters: `query`, `data_source_id?`, `format? (\"json\" | \"csv\")`\n\n### `list_data_sources`\n\nList all available data sources with IDs, names, and types.\n\n### `get_data_source_schema`\n\nGet full database schema (all tables and columns) for a data source.\n\nParameters: `data_source_id`\n\n### `get_table_info`\n\nGet column names and types for a specific table.\n\nParameters: `data_source_id`, `table_name`\n\n### `search_schema`\n\nSearch tables and columns by name pattern (case-insensitive).\n\nParameters: `data_source_id`, `search`\n\n## Security\n\n- Destructive SQL (INSERT, UPDATE, DELETE, DROP, ALTER, TRUNCATE, CREATE, etc.) is blocked at the MCP server level. **The filter is intentionally simple** — it checks for keyword presence in the query text. This means it may produce false positives (e.g., `SELECT REPLACE(...)` is blocked because `REPLACE` is a keyword). This is a safety net, not a bulletproof solution.\n- Use read-only database credentials in your Redash data source configuration — this is the real protection layer\n- API key is passed via environment variable, never hardcoded\n\n## License\n\nMIT\n","readmeFilename":"README.md"}