ToolFront MCP server

Provides unified access to multiple database types including PostgreSQL, MySQL, SQLite, DuckDB, BigQuery, and Snowflake with tools for schema inspection, data sampling, read-only querying, and intelligent pattern matching across tables.
Back to servers
Setup instructions
Provider
Kruskal Labs
Release date
Jun 12, 2025
Language
Go
Stats
264 stars

ToolFront is an MCP (Model Context Protocol) server that helps AI models discover and interact with your data sources. It serves as a bridge between AI applications and various data sources like databases, APIs, and documents, allowing AI models to learn about your data on-the-fly and answer questions accurately.

Installation

ToolFront can be installed and run using either UV or Docker, with integration options for AI frameworks and IDEs.

Prerequisites

  • uv or Docker to run the MCP server (uv is recommended)
  • URLs for your databases and APIs
  • API key (optional) for using the continuous evaluation and learning features

Setting Up in AI Frameworks/IDEs

First, create an MCP configuration for your chosen environment:

Using UV (Recommended)

{
  "toolfront": {
    "command": "uvx",
    "args": [
      "toolfront[all]",
      "postgresql://user:pass@host:port/db",
      "https://api.com/openapi.json?api_key=key",
      "--api-key", "YOUR-API-KEY"
    ]
  }
}

Using Docker

{
  "toolfront": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "antidmg/toolfront",
      "postgresql://user:pass@host:port/db",
      "https://api.com/openapi.json?token=my_token",
      "--api-key", "YOUR-API-KEY"
    ]
  }
}

For Docker with local file access:

{
  "toolfront-docker": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "-v", "/Users/you/Documents:/app/docs",
      "antidmg/toolfront",
      "postgresql://user:pass@host:port/db",
      "file:///app/docs",
      "--api-key", "YOUR-API-KEY"
    ]
  }
}

Running Directly

You can also run ToolFront directly from the command line:

# Using uvx and SSE
uvx "toolfront[postgres]" "postgres://user:pass@host:port/db" "https://api.com/spec.json?token=my_token" --transport sse

# Using Docker and stdio
docker run -i antidmg/toolfront "postgres://user:pass@host:port/db" "https://api.com/spec.json?token=my_token" --transport stdio

For Docker with local file access:

# Mount local directories as volumes
docker run -i -v "/path/to/local/docs:/app/docs" antidmg/toolfront "file:///app/docs" --transport stdio

Supported Data Sources

Databases

ToolFront supports various database types:

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

APIs

ToolFront supports APIs with OpenAPI or Swagger specifications. Some common examples:

API Specification URL
Wikipedia https://en.wikipedia.org/api/rest_v1/?spec
GitHub https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json
Stripe https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json
Slack https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json
Discord https://raw.githubusercontent.com/discord/discord-api-spec/main/specs/openapi.json

For APIs requiring authentication, append your API key or token to the specification URL.

Document Libraries

ToolFront can work with various document types:

{
  "toolfront": {
    "command": "uvx", 
    "args": [
      "toolfront[document]",
      "file:///path/to/your/documents"
    ]
  }
}

Supported formats include PDF, Word, PowerPoint, Excel, JSON, Markdown, TXT, XML, YAML, and RTF.

Available Tools

ToolFront provides various tools that AI agents can call:

Tool Description
discover List all configured databases, APIs, and document libraries
search_documents Search documents by name pattern or similarity
read_document Read document contents with smart pagination
search_endpoints Search API endpoints by pattern or similarity
search_tables Search database tables by pattern or similarity
sample_table Get sample rows from a database table
inspect_table Show structure and columns of a database table
inspect_endpoint Show structure and parameters of an API endpoint
query_database Run read-only SQL queries against databases
request_api Make requests to API endpoints
search_queries Retrieve and learn from relevant query samples (requires API key)
search_requests Retrieve and learn from relevant requests (requires API key)

Troubleshooting Tips

If you encounter connection issues:

  • Run ToolFront directly from the command line to see detailed error messages
  • Double-check your database and API URLs
  • For localhost databases with Docker, add --network HOST before the image name
  • When using Docker with local files, ensure paths are correctly mounted as volumes

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "toolfront" '{"command":"uvx","args":["toolfront[all]","DATABASE-URL-1","DATABASE-URL-2","--api-key","YOUR-API-KEY"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "toolfront": {
            "command": "uvx",
            "args": [
                "toolfront[all]",
                "DATABASE-URL-1",
                "DATABASE-URL-2",
                "--api-key",
                "YOUR-API-KEY"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "toolfront": {
            "command": "uvx",
            "args": [
                "toolfront[all]",
                "DATABASE-URL-1",
                "DATABASE-URL-2",
                "--api-key",
                "YOUR-API-KEY"
            ]
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later