Skip to main content
Glama
statespace-tech

ToolFront MCP Server

ToolFront

Turn your data into shareable LLM apps in minutes. All in pure Markdown. Zero boilerplate.

Test Suite Python 3.10+ PyPI package License Discord X


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 date

Serve 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.stdout
import { 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 files

Update 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 files

Compose 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 API

Note: 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 queries

Note: 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 . --private

Alternatively, share public apps with the community:

toolfront deploy . --public

Note Statespace gives you app URLs you can paste in prompts and instructions.

Installation

Install toolfront with your favorite PyPI package manager:

pip install toolfront
uv add toolfront
poetry add toolfront

Community & Contributing

License

This project is licensed under the terms of the MIT license.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/statespace-tech/toolfront'

If you have feedback or need assistance with the MCP directory API, please join our Discord server