metadata
title: Compost
emoji: π
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
Platform - AI Tool Integration Platform
A self-hosted AI tool integration platform that dynamically fetches 1000+ tools from the Composio API. No hardcoded tool definitions - everything is fetched live and cached locally.
How It Works
Instead of hardcoding tools, this platform:
- Fetches toolkits and tools from Composio's public API (
https://backend.composio.dev/api/v3.1) - Caches them locally in SQLite with configurable TTL (default: 1 hour)
- Executes tools via Composio API with proper credential management
- Supports on-demand sync via API endpoints or UI
Features
- 1000+ Tools - Dynamically fetched from Composio API (GitHub, Gmail, Slack, Notion, Stripe, etc.)
- Dynamic Sync - Tools are automatically synced at startup and can be refreshed on-demand
- Local Cache - Tools are cached locally with configurable TTL for offline access
- MCP Server - Full Model Context Protocol implementation
- Tool Execution Engine - Execute tools with proper credential injection via Composio API
- OAuth + API Key Vault - Secure credential storage with AES-256-GCM encryption
- Analytics - Usage metrics and performance insights
- Professional UI - Clean dark theme (not the typical purple AI theme)
Quick Start
1. Get a Composio API Key
Sign up at app.composio.dev and create an API key.
2. Configure Environment
cp .env.example .env
# Edit .env and add your COMPOSIO_API_KEY
3. Build and Run
# Using Docker
docker build -t platform .
docker run -p 7860:7860 -v /path/to/data:/data --env-file .env platform
# Or directly
cd backend && pip install -r requirements.txt
export COMPOSIO_API_KEY=sk_your_key_here
python -c "from database import init_db; init_db()"
python integrations/registry.py # Syncs from Composio API
uvicorn main:app --reload
API Endpoints
Sync Tools On-Demand
# Sync integrations
curl -X POST http://localhost:7860/api/apps/sync \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Sync tools
curl -X POST http://localhost:7860/api/tools/sync \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Execute Tools
curl -X POST http://localhost:7860/api/tools/github_create_issue/execute \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"params": {
"owner": "myorg",
"repo": "myrepo",
"title": "Bug report"
}
}'
Composio API Endpoints Used
| Endpoint | Purpose |
|---|---|
GET /api/v3.1/toolkits |
List all available toolkits (integrations) |
GET /api/v3.1/tools |
List all available tools |
POST /api/v3.1/tools/execute/{slug} |
Execute a tool |
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Platform Platform β
β β
β βββββββββββββββ ββββββββββββββββ ββββββββββββββ β
β β React UI βββββΊβ FastAPI βββββΊβ SQLite β β
β β (Vite) β β Backend β β Database β β
β βββββββββββββββ ββββββββ¬ββββββββ ββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββ β
β β Composio API β β
β β backend.composio.dev β β
β β /api/v3.1/toolkits β β
β β /api/v3.1/tools β β
β β /api/v3.1/tools/executeβ β
β βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Default Credentials
- Email:
admin@platform.local - Password:
admin123
Tech Stack
- Frontend: React, TypeScript, Vite, Tailwind CSS, Zustand, Recharts
- Backend: Python, FastAPI, SQLAlchemy, httpx, Pydantic
- Database: SQLite with local caching
- Auth: JWT with bcrypt password hashing
- Encryption: AES-256-GCM for credential vault
License
MIT