A comprehensive Python toolkit for AI-powered data operations - from natural language SQL queries to multi-agent orchestration.
- π€ Cross-provider LLM operations - Unified interface for OpenAI, Anthropic, Gemini, and Together AI
- π SQL Agent - Convert natural language to SQL with automatic table filtering for large databases
- π Data extraction - Extract structured data from PDFs, images, HTML, text documents, and even images embedded in HTML
- π οΈ Advanced AI tools - Code interpreter, web search, YouTube transcription, document citations
- π Agent orchestration - Hierarchical task delegation and multi-agent coordination
- πΎ Memory management - Automatic conversation compactification for long contexts
pip install --upgrade defog
from defog.llm.utils import chat_async
from defog.llm.llm_providers import LLMProvider
# Works with any provider
response = await chat_async(
provider=LLMProvider.ANTHROPIC, # or OPENAI, GEMINI
model="claude-sonnet-4-20250514",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.content)
from defog.llm.sql import sql_answer_tool
from defog.llm.llm_providers import LLMProvider
# Ask questions in natural language
result = await sql_answer_tool(
question="What are the top 10 customers by total sales?",
db_type="postgres",
db_creds={
"host": "localhost",
"database": "mydb",
"user": "postgres",
"password": "password"
},
model="claude-sonnet-4-20250514",
provider=LLMProvider.ANTHROPIC
)
print(f"SQL: {result['query']}")
print(f"Results: {result['results']}")
from defog.llm import extract_pdf_data
# Extract structured data from any PDF
data = await extract_pdf_data(
pdf_url="https://example.com/financial_report.pdf",
focus_areas=["revenue", "financial metrics"]
)
for datapoint_name, extracted_data in data["data"].items():
print(f"{datapoint_name}: {extracted_data}")
from defog.llm.code_interp import code_interpreter_tool
from defog.llm.llm_providers import LLMProvider
# Execute Python code with AI assistance
result = await code_interpreter_tool(
question="Analyze this data and create a visualization",
csv_string="name,sales\nAlice,100\nBob,150",
model="gpt-4o",
provider=LLMProvider.OPENAI
)
print(result["code"]) # Generated Python code
print(result["output"]) # Execution results
π Full Documentation - Comprehensive guides and API reference
- LLM Utilities - Chat, function calling, structured output, memory management
- Database Operations - SQL generation, query execution, schema documentation
- Data Extraction - PDF, image, and HTML data extraction tools
- Agent Orchestration - Multi-agent coordination and task delegation
- API Reference - Complete API documentation
# API Keys
export OPENAI_API_KEY="your-openai-key"
export ANTHROPIC_API_KEY="your-anthropic-key"
export GEMINI_API_KEY="your-gemini-key"
export TOGETHER_API_KEY="your-together-key"
For advanced features like:
- Memory compactification for long conversations
- YouTube video transcription and summarization
- Multi-agent orchestration with shared context
- Database schema auto-documentation
- Model Context Protocol (MCP) support
See the full documentation.
- Run tests:
python -m pytest tests
- Format code:
ruff format
- Update documentation when adding features
- Run
defog serve
once to complete your setup, anddefog db
to update your database credentials - Add to your MCP Client
- Claude Code:
claude mcp add defog -- python3 -m defog.mcp_server
. Or if you do not want to install the defog package globally or set up environment variables, runclaude mcp add dfg -- uv run --directory FULL_PATH_TO_VENV_DIRECTORY --env-file .env -m defog.mcp_server
- Claude Desktop: add the config below
{ "mcpServers": { "defog": { "command": "python3", "args": ["-m", "defog.mcp_server"], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_KEY", "ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_KEY", "GEMINI_API_KEY": "YOUR_GEMINI_KEY", "DB_TYPE": "YOUR_DB_TYPE", "DB_HOST": "YOUR_DB_HOST", "DB_PORT": "YOUR_DB_PORT", "DB_USER": "YOUR_DB_USER", "DB_PASSWORD": "YOUR_DB_PASSWORD", "DB_NAME": "YOUR_DB_NAME" } } } }
- Claude Code:
The Defog MCP server provides the following capabilities:
Tools (actions the AI can perform):
text_to_sql_tool
- Execute natural language queries against your databaselist_database_schema
- List all tables and their schemasyoutube_video_summary
- Get transcript/summary of YouTube videos (requires Gemini API key)extract_pdf_data
- Extract structured data from PDFsextract_html_data
- Extract structured data from HTML pagesextract_text_data
- Extract structured data from text files
Resources (read-only data the AI can access):
schema://tables
- Get list of all tables in the databaseschema://table/{table_name}
- Get detailed schema for a specific tablestats://table/{table_name}
- Get statistics and metadata for a table (row count, column statistics)sample://table/{table_name}
- Get sample data (10 rows) from a table
MIT License - see LICENSE file for details.