Offers community support through a Discord server for real-time help and discussions
Offers containerized deployment of the ToolFront MCP server through Docker images
Provides connection to DuckDB databases, allowing AI agents to execute queries and explore DuckDB data
Provides issue tracking and repository hosting for the ToolFront project
Enables GitHub Copilot to connect to your databases, providing context about tables, schemas, and query patterns
Enables connections to MySQL databases, allowing AI agents to query and analyze MySQL data
Provides connection to PostgreSQL databases, allowing AI agents to query and work with PostgreSQL data
Enables connections to Snowflake data warehouses, allowing AI agents to query and analyze Snowflake data
Provides connection to SQLite databases, allowing AI agents to query and analyze SQLite data
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ToolFront MCP Serverconnect to our PostgreSQL analytics database and show me the top 5 customers by revenue this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ToolFront
Turn your data into shareable LLM apps in minutes. All in pure Markdown. Zero boilerplate.
Documentation:
Source code:
ToolFront is a declarative framework for building modular LLM applications in Markdown.
Example
Create it
Start with one file: README.md
---
tools:
- [date]
---
# Instructions
- Run `date` to check today's dateServe it
Run your app locally:
toolfront serve .Note: Runs on
http://127.0.0.1:8000
Ask it
Include the app URL in your prompts:
claude "Get today's date from http://127.0.0.1:8000"copilot "Get today's date from http://127.0.0.1:8000"codex "Get today's date from http://127.0.0.1:8000"For custom agents, add an HTTP request tool:
import subprocess
@tool
def curl_tool(url: str, args: list[str]) -> str:
"""Execute curl commands to interact with Statespace apps."""
result = subprocess.run(
['curl', *args, url],
capture_output=True,
text=True
)
return result.stdoutimport { execFileSync } from 'child_process';
/**
* Execute curl commands to interact with Statespace apps.
*/
function curlTool(url: string, args: string[]): string {
const result = execFileSync('curl', [...args, url], {
encoding: 'utf-8'
});
return result.toString();
}use std::process::Command;
/// Execute curl commands to interact with HTTP endpoints.
fn curl_tool(url: &str, args: Vec<&str>) -> String {
let output = Command::new("curl")
.args(&args)
.arg(url)
.output()
.unwrap();
String::from_utf8_lossy(&output.stdout).to_string()
}Related MCP server: MySQL MCP Server
Complex example
Upgrade it
Your app can grow into a full project:
project/
├── README.md
├── data/
│ ├── log1.txt
│ ├── log2.txt
│ └── log3.txt
└── src/
├── agentic_rag.md
├── text2sql.md
└── vector_search.md
3 directories, 9 filesUpdate README.md with CLI tools to progressively discover and read other files:
---
tools:
- [date]
- [ls]
- [cat]
---
# Instructions
- Run `date` to check today's date
- Use `ls` and `cat` to discover and read other filesCompose it
Add pages and CLI tools for different workflows:
---
tools:
- [curl, -X, POST, https://host.pinecone.io/records/namespaces/user/search]
---
# Vector search instructions:
- Query documents with your vector database APINote: replace the API with your own (e.g., Pinecone, Weaviate, Qdrant)
---
tools:
- [psql, -U, $USER, -d, $DB, -c, { regex: "^SELECT\b.*" }]
---
# Text-to-SQL instructions:
- Use `psql` for read-only PostgreSQL queriesNote: use your own database CLI (e.g.,
mysql,sqlite3,mongosh).
---
tools:
- [grep, -r, -i, { }, ../data/]
---
# Document search instructions:
- Use `grep` to search documents in `../data/`Note: apps can include any file type (e.g.
.csv,.sqlite,.json)
Deploy it
Create a free Statespace account to deploy authenticated private apps:
toolfront deploy . --privateAlternatively, share public apps with the community:
toolfront deploy . --publicNote Statespace gives you app URLs you can paste in prompts and instructions.
Installation
Install toolfront with your favorite PyPI package manager:
pip install toolfrontuv add toolfrontpoetry add toolfrontCommunity & Contributing
Discord: Join our community server for real-time help and discussions
X: Follow us @statespace_tech for updates and news
Issues: Report bugs or request features on GitHub Issues
License
This project is licensed under the terms of the MIT license.