Skip to content

kruskal-labs/toolfront

Repository files navigation

Test Suite Discord


toolfront

AI agents lack context about your databases, while teams keep rewriting the same queries because past work often gets lost. ToolFront connects agents to your databases and feeds them your team's proven query patterns, so both agents and teammates can learn from each other and ship faster.

Features

  • ⚑ One-step setup: Connect coding agents like Cursor, GitHub Copilot, and Claude to all your databases with a single command or config.
  • πŸ”’ Privacy-first: Your data never leaves your premises, and is only shared between agents and databases through a secure MCP server.
  • 🧠 Collaborative learning: The more your team uses ToolFront, the better your AI agents understand your databases and query patterns. Requires API key.

databases

Quickstart

ToolFront runs on your computer through an MCP server, a secure protocol that lets apps provide context to LLM models.

Prerequisites

  • uv or Docker to run the MCP server (we recommend uv)
  • Database connection URLs of your databases - see below
  • API key (optional) to activate collaborative learning - see below

Run ToolFront in your IDE

Add to Cursor with UV Add to GitHub Copilot with UV Add to Cursor with Docker Add to GitHub Copilot with Docker

First, create an MCP config by clicking a setup button above or navigating to the MCP settings for your IDE:

IDE Setup Instructions Documentation
Cursor Settings β†’ Cursor Settings β†’ MCP Tools (or create .cursor/mcp.json file) Cursor Documentation
GitHub Copilot (VSCode) Copilot icon β†’ Edit preferences β†’ Copilot Chat β†’ MCP GitHub Copilot Documentation
Windsurf Plugins icon β†’ Plugin Store β†’ Add manually (or edit ~/.codeium/windsurf/mcp_config.json) Windsurf Documentation
Claude Code Run claude mcp add toolfront uvx toolfront [database-urls] --api-key YOUR-API-KEY Claude Code Documentation

Then, edit the MCP configuration with your database connection URLs and optional API key:

Edit UV Config
{
  // Rest of config file
  "toolfront": {
    "command": "uvx",
    "args": [
      "toolfront",
      "snowflake://user:pass@org",
      "postgresql://user:pass@host:port/db",
      # Add other database URLs here
      "--api-key", "YOUR-API-KEY"  // Optional
    ]
  }
}
Edit Docker Config
{
  // Rest of config file
  "toolfront": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "antidmg/toolfront",
      "snowflake://user:pass@org",
      "postgresql://user:pass@host:port/db",
      # Add other database URLs here
      "--api-key", "YOUR-API-KEY"  // Optional
    ]
  }
}

You're all set! You can now ask your coding assistant about your databases.

Tip

Version control: You can pin to specific versions for consistency. Use toolfront==0.1.x for UV or antidmg/toolfront:0.1.x for Docker.

Run ToolFront from your Terminal

To use ToolFront outside your IDE, run it directly from your terminal with your database URLs and optional API key:

# Using UV
uvx toolfront "snowflake://user:pass@org" "postgresql://user:pass@host:port/db" --api-key "YOUR-API-KEY"

# Using Docker  
docker run -i antidmg/toolfront "snowflake://user:pass@org" "postgresql://user:pass@host:port/db" --api-key "YOUR-API-KEY"

Tip

Localhost databases: Add --network host before the image name when connecting to databases running on localhost.

Collaborative In-context Learning

Data teams keep rewriting the same queries because past work often gets siloed, scattered, or lost. ToolFront teaches AI agents how your team works with your databases through in-context learning. With ToolFront, your agents can:

  • Reason about historical query patterns
  • Remember relevant tables and schemas
  • Reference your and your teammates' work

Note

In-context learning is currently in open beta. To request an API key, please email Esteban at esteban@kruskal.ai or hop into our Discord server.

Databases

ToolFront supports the following databases:

Database URL Format Documentation
BigQuery bigquery://{project-id}?credentials_path={path-to-service-account.json} Google Cloud Docs
Databricks databricks://token:{token}@{workspace}.cloud.databricks.com/{catalog}?http_path={warehouse-path} Databricks Docs
DuckDB duckdb://{path-to-database.duckdb} DuckDB Docs
MySQL mysql://{user}:{password}@{host}:{port}/{database} MySQL Docs
PostgreSQL postgres://{user}:{password}@{hostname}:{port}/{database-name} PostgreSQL Docs
Snowflake snowflake://{user}:{password}@{account}/{database} Snowflake Docs
SQL Server mssql://{user}:{password}@{server}:{port}/{database} or sqlserver://{user}:{password}@{server}:{port}/{database} SQL Server Docs
SQLite sqlite://{path-to-database.sqlite} SQLite Docs

Don't see your database? Submit an issue or pull request, or let us know in our Discord!

Tip

SSH tunneling: For databases behind SSH bastions, add SSH parameters to your URL: postgresql://user:pass@db:5432/database?ssh_host=bastion&ssh_user=ubuntu&ssh_password=pass or use ssh_key_path=/path/to/key.pem for key authentication.

Working with local data files? Add duckdb://:memory: to your config to analyze local Parquet, CSV, Excel, or JSON files.

Tools

MCP tools are functions that AI agents can call to interact with external systems. ToolFront comes with seven database tools:

Tool Description Requires API Key
test Tests whether a data source connection is working βœ—
discover Discovers and lists all configured databases and file sources βœ—
scan Searches for tables using regex, fuzzy matching, or TF-IDF similarity βœ—
inspect Inspects table schemas, showing column names, data types, and constraints βœ—
sample Retrieves sample rows from tables to understand data content and format βœ—
query Executes read-only SQL queries against databases with error handling βœ—
learn Retrieves relevant queries or tables for in-context learning βœ“

FAQ

How is ToolFront different from other database MCPs?

ToolFront has three key advantages: multi-database support, privacy-first architecture, and collaborative learning.

Multi-database support: While some general-purpose MCP servers happen to support multiple databases, most database MCPs only work with one database at a time, forcing you to manage separate MCP servers for each connection. ToolFront connects to all your databases in one place.

Privacy-first architecture: Other multi-database solutions route your data through the cloud, which racks up egress fees and creates serious privacy, security, and access control issues. ToolFront keeps everything local.

Collaborative learning: Database MCPs just expose raw database operations. ToolFront goes further by teaching your AI agents successful query patterns from your team's work, helping them learn your specific schemas and data relationships to improve over time.

How is collaborative learning different from agent memory?

Agent memory stores conversation histories for individuals, whereas ToolFront's collaborative learning remembers relational query patterns across your team and databases.

When one teammate queries a database, that knowledge becomes available to other team members using ToolFront. The system gets smarter over time by learning from your team's collective database interactions.

What data is collected during collaborative learning?

With an API key, ToolFront only logs the query syntax and their descriptions generated by your AI agents. It never collects your actual database content or personal information. For details, see the query and learn functions in tools.py.

How does ToolFront keep my data safe?
  • Local execution: All database connections and queries run on your machine
  • No secrets exposure: Database credentials are never shared with AI agents
  • Read-only operations: Only safe, read-only database queries are allowed
  • No data transmission: Your database content never leaves your environment
  • Secure MCP protocol: Direct communication between agents and databases with no third-party storage
How do I troubleshoot connection issues?

Run the uvx toolfront or docker run commands with your database URLs directly from the command line. ToolFront automatically tests all connections before starting and shows detailed error messages if any connection fails.

If you're still having trouble, double-check your database URLs using the examples in the Databases section above.

Support & Community

Need help with ToolFront? We're here to assist:

Contributing

See CONTRIBUTING.md for guidelines on how to contribute to ToolFront.

License

ToolFront is released under the GPL License v3. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the GPL v3 License. For the full license text, see the LICENSE file in the repository.