MATE — Command Center for AI Agents

Edit prompts, swap models, and gate access from a dashboard — no code change, no redeploy.

Source repo
antiv/mate
Stars
★ 108
Last updated
3d ago
License
Apache-2.0
Primary language
Python

At a glance

How it runs
Self-hosted serviceWeb app
Works with
Universal · cross-platformOpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Python 3.10+Docker (optional)LLM provider API key (e.g. GOOGLE_API_KEY)SQLite/PostgreSQL/MySQL databaseShell / CLINetwork accessLocal filesystemMCP Server
Typical use
Platform or ops teams that need one control plane for agent hierarchies, permissions and costs across multiple teams and projects.
Not a fit if
  • Solo developers who want a single-file script, not a running web service
  • Teams unwilling to operate a database-backed server

What does this agent do, and when should you use it?

MATE is a production-oriented multi-agent orchestration engine built on Google ADK (with LangGraph support), served through FastAPI with a web dashboard. Agent definitions live in the database and are edited on a drag-and-drop canvas where you draw parent→child hierarchies, attach tools and MCP servers, and roll back to any previous version in one click. It reaches 50+ LLM providers through LiteLLM — including local servers such as Ollama and LM Studio — and logs every model call with a US-dollar cost plus a four-bucket token breakdown. Governance features include per-agent RBAC, token and dollar budgets that warn or block, alert rules to webhook/email/Slack/Discord, guardrails, and an append-only audit log. An eval framework with exact-match, semantic-similarity and LLM-judge scoring, plus a Playground for side-by-side variant comparison, covers pre-release testing. It ships as a Docker image or run-from-source self-hosted service with SQLite by default and PostgreSQL/MySQL 8 as alternatives.

MATE boots a FastAPI server via auth_server.py on port 8000 and reads agent definitions from the database: model, instructions, parent/child hierarchy, tools, MCP servers, memory blocks, planner and RBAC roles. During a conversation it calls the configured model through LiteLLM and writes each call's dollar cost and prompt/response/thoughts/tool-use token counts to logs surfaced at /dashboard/usage. It exposes each root agent as an MCP server (/agents/{name}/mcp/*) and an A2A endpoint (/a2a/{agent}), provides an OpenAI-compatible /v1 bridge, and ships an embeddable <script> chat widget. The eval framework invokes the live agent, scores responses by exact match, semantic similarity or LLM-as-Judge, and fires a regression webhook when a new version drops more than 5 points. Database migrations run automatically at startup.

  1. Platform or ops teams that need one control plane for agent hierarchies, permissions and costs across multiple teams and projects.
  2. Product teams that iterate on prompts and models without redeploying, with one-click rollback as a safety net.
  3. Teams deploying chat on several public websites (support, sales, docs) with per-site appearance and access rules via widget keys.
  4. Finance or compliance groups tracking LLM spend per agent, project and user, with budgets and alerting.
  5. Developers connecting agents to Claude Desktop, Cursor or OpenAI-compatible IDE clients.
  6. Teams wanting automated regression suites against prompt changes before shipping.

How do you install or deploy this agent?

Fastest path: run the published Docker image.

docker run -d --name mate -p 8000:8000 \
  -e AUTH_PASSWORD=change-me -e GOOGLE_API_KEY=your-key \
  -e DB_PATH=data/my_agent_data.db -v mate-data:/app/data \
  ghcr.io/antiv/mate:latest

Or install from source:

git clone https://github.com/antiv/mate.git && cd mate
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.lock

cp .env.example .env
# Set GOOGLE_API_KEY (or any supported provider key), AUTH_USERNAME and AUTH_PASSWORD

You can also build the full stack with docker-compose up --build (it needs AUTH_PASSWORD set in .env).

Requirements: Python 3.10+ for the source path, one LLM provider API key, and a database — SQLite by default, with migrations applied automatically on startup.

How do you use this agent?

After the service starts, open http://localhost:8000 and log in with AUTH_USERNAME / AUTH_PASSWORD (left empty they are admin / mate; MATE_ENV=production refuses that default).

Source install launch:

python auth_server.py
# Dashboard: http://localhost:8000

You land on /dashboard/workroom, pick a root agent from the card grid and chat. On /dashboard/agents you create agents, draw parent→child edges and configure tools and MCP servers on the canvas.

Expose agents as MCP servers:

export MCP_EXPOSED_AGENTS=creative_agent,support_agent

Clients authenticate with a Personal Access Token from the dashboard account menu:

curl -H "Authorization: Bearer mate_pat_..." https://your-mate-instance.com/mcp

Embed the chat widget on a website:

<script
  src="https://your-mate-instance.com/widget/mate-widget.js"
  data-key="wk_abc123..."
  data-server="https://your-mate-instance.com"
></script>

Common environment variables: DB_TYPE, GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET and GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET for SSO, RATE_LIMIT_ENABLED, ALERTS_ENABLED, CSP_MODE, OTEL_TRACING_ENABLED, AUDIT_RETENTION_DAYS.

What are this agent's strengths and limitations?

Pros
  • Agent config is database-driven: prompts, models and roles change live from the dashboard with one-click rollback and no redeploy.
  • 50+ providers through LiteLLM, including local servers like Ollama, LM Studio, llama.cpp, LocalAI and Llamafile.
  • Built-in per-agent RBAC, dollar cost tracking, budgets that warn or block, alerts and an append-only audit log.
  • Eval framework plus Playground compare model, instructions and stored versions side by side on score, latency and cost.
  • Every agent can be exposed as an MCP server and A2A endpoint, with an OpenAI-compatible /v1 bridge for external clients.
  • A single <script> tag deploys a per-key chat widget with its own admin panel and origin restrictions.
Limitations
  • It is a substantial service: a FastAPI process plus a database (SQLite by default, PostgreSQL or MySQL 8 alternatives) to operate.
  • google-adk and SQLAlchemy are hand-pinned below 2.1 in requirements.txt, so upgrades depend on upstream changelogs.
  • Advanced capabilities (SSO, alerts, OpenTelemetry, MCP exposure, A2A) each need extra environment configuration.
  • Cost reporting depends on OpenRouter/LiteLLM price lists or prices you set; unknown-price calls are labeled rather than counted as $0.
  • The product UI is in English and the browser wizard demo is in Serbian, so non-English teams need to adjust.

How does this agent compare with similar options?

The README contrasts MATE directly with raw Google ADK: in ADK, changing a prompt or model means editing code and redeploying, whereas MATE applies it instantly from the dashboard; ADK ships without per-agent RBAC, cost visibility, budgets, an eval suite or an embeddable widget, all of which MATE adds.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
MATE — Command Center for AI Agents This agent 53 · Major gaps Self-hosted serviceFree + model costs ★ 108 3d ago Python OpenAI API · Claude API
EDDI Conversational AI Orchestration 68 · Some gaps Self-hosted serviceFree + model costs ★ 389 today Java OpenAI API
DashClaw 65 · Some gaps CLIFree ★ 316 1mo ago TypeScript Codex · Claude Code
Agent Swarm 47 · Major gaps Agent plugin / skillFree + model costs ★ 1k today TypeScript Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
53/ 100 5-point scale 2.7 / 5
Trust 16/29
Reliability 8/14
Adaptability 10/18
Convention 9/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

Evidence shows layered authorization (DashboardAuthzMiddleware, platform-only paths, workspace isolation, three-layer RBAC) and a solid CSP doc, so least_privilege scores 2; however insecure defaults (AUTH_PASSWORD=mate, TRUSTED_PROXY_HOSTS=*, WIDGET_ORIGIN_STRICT=false, CSP report-only by default) weaken least privilege, deducted. user_confirmation only appears as optional RESUMABILITY human-in-the-loop tool approval (off by default), no general confirmation, scores 1. data_flow_transparency has a configuration reference and CSP/data-flow notes but no end-to-end data-flow map, scores 2. sensitive_data_handling has MATE_SECRET_KEY encryption, PAT hashing, audit logs, but stores secrets in clear with only a warning when unset, deducted to 2. dependency_security has hashed requirements.lock and a monthly upgrade workflow, but no vulnerability-scanning evidence, scores 2. external_effects covers code execution, browser tools, MCP stdio, alert egress, gated only by platform-only checks with no unified confirmation/rollback, scores 1. rollback has one-click agent version rollback but config-level only, scores 2. source_attribution lists author and case links but publisher is unverified and no provenance mechanism, scores 1.

Reliability8 / 14 · 2.9/5

self_consistency: docs, configuration reference and CSP doc are mutually consistent, scores 2. dependency_availability: lock file, multiple DB drivers, Docker image, scores 2. failure_messages: some errors (403/404/409) documented but no systematic error-message spec, scores 1.

Adaptability10 / 18 · 2.8/5

audience_and_scenarios clearly separates user/dev docs and three spaces, scores 2. capability_boundaries has a platform-only capability list and workspace boundaries, scores 2. trigger_precision has triggers and alerts but thin evidence on precision/dedup, scores 1. environment_fit supports SQLite/PostgreSQL/MySQL, Docker, many LLM providers, scores 2.

Convention9 / 18 · 2.5/5

information_architecture has docs tree with order and covers metadata, scores 2. install_notes has Quick Start, Docker, dependency notes, scores 2. naming_stability no stability commitment found, scores 1. examples_and_faq has examples and demos but no FAQ, scores 1. known_limitations has Known gaps and insecure-default notes, scores 2. license states Apache-2.0, scores 2. versioning_changelog has CHANGELOG link and release badge but content not in evidence, scores 1. maintenance_responsibility has author and monthly dependency workflow but unverified publisher and unclear ownership, scores 1.

Effectiveness7 / 13 · 2.7/5

output_usability has dashboard, API, MCP, A2A, embeddable widget, scores 2. marginal_value adds governance, cost, evals over raw ADK, scores 2. cost_benefit has cost tracking and budgets but high deployment/ops complexity and insecure defaults add hidden cost, scores 1.

Verifiability3 / 8 · 1.9/5

claim_traceability README claims 1400+ tests and production use but no test files or case detail in evidence, scores 1. cross_source_corroboration several docs corroborate some config but key claims lack independent support, scores 1. fact_inference_separation docs mix marketing claims with facts without clear separation, scores 1.

Risks and how to mitigate them
  • Insecure defaults: AUTH_PASSWORD=mate, TRUSTED_PROXY_HOSTS=*, WIDGET_ORIGIN_STRICT=false, CSP report-only by default; must be tightened before production.
  • Secrets stored in clear when MATE_SECRET_KEY is unset, with only a startup warning.
  • High-risk capabilities (code execution, browser tools, MCP stdio) gated only by platform-only checks, lacking unified confirmation and rollback.
  • README claims 1400+ tests and production use, but no test files or case detail appear in evidence; verify independently.
  • Publisher identity is unverified; maintenance responsibility and update path are unclear.
Evidence confidence: Low Reviewed Nov 06, 2026 Reviewed revision 797c317150ce
See the full review method →

FAQ

Does the software itself cost anything?
MATE is open source under Apache-2.0 and self-hosted; you still supply LLM provider API keys and pay per use. Pointing it at local Ollama or LM Studio servers avoids inference charges.
Which databases are supported?
SQLite by default, plus PostgreSQL and MySQL 8. Migrations run automatically at startup, and python shared/migrate.py status lists pending ones.
Can agents run outside MATE?
Governance — RBAC, cost, evals, guardrails — is bound to the MATE service and its database. The docs describe governing external agents, but the control plane remains the MATE instance itself.
How do I avoid shipping regressions after a prompt change?
Write a test suite in the eval framework and set a regression threshold; a new version scoring more than 5 points lower fires a webhook. The Playground also compares variants before you commit.
Can Claude Desktop or Cursor use my agents?
Yes. Set MCP_EXPOSED_AGENTS, then clients call /agents/{name}/mcp/* with a dashboard-issued Personal Access Token (Authorization: Bearer mate_pat_...).
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents