Show HN: TetherDust – Self-hosted AI Analytics Engineer (open source) TetherDust, an open-source self-hosted AI analytics engineer, was released on Show HN, enabling AI agents to generate verifiable SQL and build interactive d3.js dashboards by bridging codebases and databases through containerized Model Context Protocol servers. The platform runs entirely within user infrastructure with read-only query enforcement, role-based access control, and immutable audit logging, supporting multiple databases and AI agent integrations including ChatGPT, Claude, and Ollama. TetherDust bridges the gap between your codebase and databases using containerized Model Context Protocol MCP servers. By documenting database schemas alongside repository documentation, TetherDust enables any AI agent to generate verifiable SQL, build dynamic d3.js dashboards, and map schema-to-code dependencies. The platform runs entirely within your infrastructure, enforcing strict read-only query boundaries, role-based access control RBAC , and immutable audit logging. TetherDust is designed to be a flexible platform for AI-driven data interaction, with features that include: - Generate well-structured, wiki-like codebase and database documentation from natural language prompts, with rich Markdown support. - Point TetherDust at a GitHub codebase or codebase documentation together with a database documentation. The agent explores both and produces an interactive visual graph showing which code files read or write which tables and columns, versioned as the schema drifts. - Describe the dashboard you want; the AI agent writes the SQL and the d3.js code for every chart. Charts auto-refresh on a schedule and are cached for performance. - Edit the generated chart directly for custom behavior, or ask the agent to update it when requirements change. - Define queries and run them on a schedule, delivering results by email or download. Use Chat to access all of TetherDust's capabilities in one place. - Ask natural language questions about your data and get streamed answers grounded in your documentation. You can mention documentation sources by name to pull in specific context, or let the agent decide what to use. - TetherDust can write and execute SQL queries — either at your request or to confirm details before answering. - Reach reports, dashboards, and tethers by name from the chat. - Use predefined prompts. Use CLI tools, API calls, or Ollama to connect any agent that speaks MCP. Currently supported agent integrations: | Provider | Method | |---|---| Codex CLI OpenAI | ChatGPT subscription auth token | Codex CLI OpenAI | OpenAI API key | Claude Code Anthropic | Claude Pro/Max OAuth token | Claude Code Anthropic | Anthropic API key | Direct API | Any agent accessible via HTTP API, configured with custom MCP servers | Ollama | Local Ollama models with MCP support | Connect any database with a Python SQLAlchemy dialect and a read-only user. Currently supported databases: PostgreSQL, MySQL/MariaDB, SQL Server, SQLite, ClickHouse, Oracle, Snowflake, BigQuery. Many more agents and databases to comeThe architecture is designed to be agent-agnostic, with a simple interface for adding new ones. Agent runtimes are containerized, so the only way for an agent to interact with TetherDust's features is through MCP servers, which expose tools and data sources as APIs. TetherDust includes a built-in MCP server that exposes the core features. Every user's role decides which databases, MCP tools, documentation sources, dashboards, reports, and tethers they can see. php flowchart LR User 👤 User -- Role{{Role}} Role -- allowed databases -- DB Databases Role -- allowed tools -- Tools MCP Tools Role -- allowed doc sources -- Docs Doc Sources Role -- allowed prompts -- Prompts Prompts Role -- allowed mcp servers -- MCP Custom MCP Servers Role -- can view dashboards -- Dash Dashboards Role -- can view reports -- Reports Reports Role -- can view tethers -- Tethers Tethers DB -- Agent 🤖 Agent Tools -- Agent Docs -- Agent Prompts -- Agent MCP -- Agent Agent -. only sees the