Omnara Agent Dashboard - MCP Server and Python SDK
Project description
Omnara - Mission Control for Your AI Agents ๐
Your AI workforce launchpad, in your pocket.
๐ What is Omnara?
Omnara transforms your AI agents (Claude Code, Cursor, GitHub Copilot, and more) from silent workers into communicative teammates. Get real-time visibility into what your agents are doing, respond to their questions instantly, and guide them to success - all from your phone.
โจ Key Features
| Feature | Description |
|---|---|
| ๐ Real-Time Monitoring | See every step your AI agents take as they work |
| ๐ฌ Interactive Q&A | Respond instantly when agents need guidance |
| ๐ฑ Mobile-First Design | Full control from your phone, tablet, or desktop |
| ๐ Smart Notifications | Get alerted only when your input is needed |
| ๐ฏ Universal Dashboard | All your AI agents in one unified interface |
๐ฌ See It In Action
The moment your agent needs help, you're there. No more returning to failed jobs hours later.
๐ก Why Omnara?
We built Omnara because we were tired of:
- โ Starting long agent jobs and finding them stuck hours later
- โ Missing critical questions that blocked progress
- โ Having no visibility into what our AI was actually doing
- โ Being tied to our desks while agents worked
Now you can:
- โ Launch agents and monitor them from anywhere
- โ Get push notifications when input is needed
- โ Send real-time feedback to guide your agents
- โ Have confidence your AI workforce is productive
๐๏ธ Architecture Overview
Omnara uses the Model Context Protocol (MCP) to enable seamless communication between your agents and the dashboard.
graph TB
subgraph "Your AI Agents"
A[๐ค AI Agents<br/>Claude, Cursor, Copilot]
end
subgraph "Omnara Platform"
S[๐ MCP Server]
DB[(๐ Database)]
API[๐ API Server]
end
subgraph "Your Devices"
M[๐ฑ Mobile App]
W[๐ป Web Dashboard]
end
A -->|Log activities| S
S -->|Store data| DB
DB -->|Real-time sync| API
API -->|Push updates| M
API -->|Push updates| W
M -->|Send feedback| API
W -->|Send feedback| API
API -->|Store feedback| DB
S <-->|Agent queries| DB
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style S fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
style DB fill:#ffccbc,stroke:#d84315,stroke-width:2px
style API fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
style M fill:#f8bbd0,stroke:#c2185b,stroke-width:3px
style W fill:#f8bbd0,stroke:#c2185b,stroke-width:3px
๐ง Technical Stack
- Backend: FastAPI with separate read/write servers for optimal performance
- Frontend: React (Web) + React Native (Mobile)
- Protocol: Model Context Protocol (MCP) + REST API
- Database: PostgreSQL with SQLAlchemy ORM
- Auth: Dual JWT system (Supabase for users, custom for agents)
๐ Quick Start
For Users
- Download the app or visit omnara.ai
- Create an account and generate an API key
- Configure your agent with the API key
- Start monitoring your AI workforce!
For Developers
๐ ๏ธ Development Setup
Prerequisites
- Python 3.10+
- PostgreSQL
- Node.js (for CLI tools)
Setup Steps
-
Clone and enter the repository
git clone https://github.com/omnara-ai/omnara cd omnara
-
Set up Python environment
python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate make dev-install
-
Generate JWT keys
python scripts/generate_jwt_keys.py -
Configure environment (create
.envfile)DATABASE_URL=postgresql://user:password@localhost:5432/omnara SUPABASE_URL=https://your-project.supabase.co SUPABASE_ANON_KEY=your-anon-key JWT_PRIVATE_KEY='-----BEGIN RSA PRIVATE KEY-----\n...' JWT_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----\n...'
-
Initialize database
cd shared/ alembic upgrade head cd ..
-
Run services
# Terminal 1: MCP + REST Server python -m servers.app # Terminal 2: Backend API cd backend && python -m main
๐ Integration Guide
Method 1: MCP Configuration
{
"mcpServers": {
"omnara": {
"url": "https://api.omnara.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Method 2: Python SDK
from omnara import OmnaraClient
client = OmnaraClient(api_key="your-api-key")
# Log progress and check for user feedback
response = client.log_step(
agent_type="claude-code",
step_description="Analyzing codebase structure"
)
# Ask for user input when needed
answer = client.ask_question(
question="Should I refactor this legacy module?"
)
Method 3: REST API
curl -X POST https://api.omnara.ai/api/v1/steps \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"step_description": "Starting deployment process"}'
๐ค Contributing
We love contributions! Check out our Contributing Guide to get started.
Development Commands
make lint # Run code quality checks
make format # Auto-format code
make test # Run test suite
make dev-serve # Start development servers
๐ Pricing
| Plan | Price | Features |
|---|---|---|
| Free | $0/mo | 20 agents/month, Core features |
| Pro | $9/mo | Unlimited agents, Priority support |
| Enterprise | Contact Us | Teams, SSO, Custom integrations |
๐ Support
- ๐ Documentation
- ๐ฌ GitHub Discussions
- ๐ Report Issues
- ๐ง Email Support
๐ License
Omnara is open source software licensed under the Apache 2.0 License.
Project details
Release history Release notifications | RSS feed
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 omnara-1.3.12.tar.gz.
File metadata
- Download URL: omnara-1.3.12.tar.gz
- Upload date:
- Size: 49.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e929119986c6dbda0bb61d34f2ecfb21aa3af315f364c30cfe847bcaddb08f9
|
|
| MD5 |
10945067ea444a102a779ba61f03a2a9
|
|
| BLAKE2b-256 |
48171b0a8336d507921183dea2b64d2112ed91c458d77a8a6bde991218de1f00
|
File details
Details for the file omnara-1.3.12-py3-none-any.whl.
File metadata
- Download URL: omnara-1.3.12-py3-none-any.whl
- Upload date:
- Size: 55.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
261e5d0ebc756639cf8d1b5d6ad96406e1731340f69dfbfd26f56b69d6e8c5e9
|
|
| MD5 |
31cd6641f02f35cb922dd0bca19525f9
|
|
| BLAKE2b-256 |
b6bd66ac43fdce927d2018b145da72e06e349bb5eb4a0ede3df7668f8a52ce7f
|