DuckDB-powered MCP Server with SQL macros for LLM agents
Project description
🚜 Agent Farm 🦆
🌾 DuckDB-powered MCP Server with SQL macros for LLM agents - Web Search, Python execution, RAG, and more.
DuckDB • Ollama • Docker • Query Farm
✨ Features
| Feature | Description |
|---|---|
| 🦆 MCP Server | Exposes DuckDB as an MCP server for Claude and other LLM clients |
| 🔍 Auto-Discovery | Automatically discovers MCP configurations from standard locations |
| 🤖 LLM Integration | SQL macros for calling Ollama models (local and cloud) |
| 🛠️ Tool Calling | Full function calling support for agentic workflows |
| 🌐 Web Search | DuckDuckGo and Brave Search integration |
| 💻 Shell Execution | Run shell commands and Python code via UV |
| 📄 Web Scraping | Fetch and extract text from web pages |
| 🧠 RAG Support | Embeddings and vector similarity search |
| 📦 Rich Extensions | Pre-configured with useful DuckDB extensions |
📦 DuckDB Extensions
| Extension | Type | Description |
|---|---|---|
httpfs |
Core | HTTP/S3 filesystem access |
json |
Core | JSON parsing and extraction |
icu |
Core | International unicode support |
vss |
Core | Vector similarity search |
ducklake |
Core | Delta Lake / Iceberg support |
lindel |
Core | Linear algebra operations |
http_client |
Community | HTTP GET/POST requests |
duckdb_mcp |
Community | MCP protocol support |
jsonata |
Community | JSONata query language |
shellfs |
Community | Shell command execution |
zipfs |
Community | ZIP file access |
🚀 Installation
Using pip:
pip install agent-farm
Using uv (recommended):
uv add agent-farm
From source:
git clone https://github.com/bjoernbethge/agent-farm.git
cd agent-farm
uv sync --dev
🎯 Quick Start
Run the MCP server:
agent-farm
Or as a module:
python -m agent_farm
🌾 SQL Macros
🤖 Cloud LLM Models (via Ollama)
SELECT deepseek('Explain quantum computing');
SELECT kimi_think('Solve this step by step: ...');
SELECT qwen3_coder('Write a Python function for...');
SELECT gemini('Summarize this text...');
🔍 Web Search
SELECT ddg_instant('Python programming');
SELECT ddg_abstract('machine learning');
SELECT brave_search('DuckDB tutorial');
💻 Shell & Python Execution
SELECT shell('ls -la');
SELECT py('print(2+2)');
SELECT py_with('requests', 'import requests; print(requests.__version__)');
SELECT py_script('script.py');
🌐 Web Scraping
SELECT fetch('https://example.com');
SELECT fetch_text('https://example.com');
SELECT fetch_json('https://api.example.com/data');
SELECT fetch_ua('https://example.com'); -- with User-Agent
📁 File & Git Operations
SELECT read_file('path/to/file.txt');
SELECT git_status();
SELECT git_log(10);
SELECT git_diff();
🧠 RAG & Embeddings
SELECT embed('Hello world');
SELECT semantic_score('query', 'document');
SELECT rag_query('What is the price?', 'Product: Widget, Price: 49.99');
SELECT rag_think('Complex question', 'Long context...');
⚡ Power Macros
SELECT search_and_summarize('What is DuckDB?');
SELECT analyze_page('https://example.com', 'What is this page about?');
SELECT review_code('src/main.py');
SELECT explain_code('src/main.py');
SELECT generate_py('fibonacci function');
🐳 Docker
docker build -t agent-farm .
docker run -v /data:/data -p 8080:8080 agent-farm
📋 Requirements
- 🐍 Python >= 3.11
- 🦆 DuckDB >= 1.1.0
- 🦙 Ollama (for LLM features)
📄 License
MIT License - see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_farm-0.1.5.tar.gz.
File metadata
- Download URL: agent_farm-0.1.5.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c6c7a03de615d4987559db0977d409fe840af54dd591b6b222bf4516b3b0699
|
|
| MD5 |
f99ab33b4948c09f640e7b39be53b342
|
|
| BLAKE2b-256 |
fc6a588b9ea00cfd39a406ac02cd8486facdba024ff0fb63591ea3f342f96a48
|
File details
Details for the file agent_farm-0.1.5-py3-none-any.whl.
File metadata
- Download URL: agent_farm-0.1.5-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26d647dc98c49c9949aa357ec5cbfab0120c498b5c6e800ec48e502fcd403543
|
|
| MD5 |
3abccaaf1fb38fbdd6bb205454171843
|
|
| BLAKE2b-256 |
b7b937162d957510fdc3dc82669165962c8943df056f11dce0e23e843f095b63
|