# Meta Council
> AI Expert Panel Intelligence — transparent, multi-perspective decision support

## What is Meta Council?
Meta Council is a platform where multiple specialized AI agents independently analyze your question, then a synthesis step combines their opinions into a clear recommendation with full transparency into every expert's reasoning.

## Key Features
- **284+ Expert AI Agents** across 15+ domains (strategy, finance, legal, healthcare, biotech, military, engineering, etc.)
- **23 Pre-built Panels** — curated groups of agents for specific decision types
- **17+ Workflow Pipelines** — multi-step processes with human checkpoints (TDD coding, due diligence, research, incident postmortems)
- **Full Transparency** — see every agent's reasoning, perspective, and dissenting opinions
- **Risk Matrix** — automated risk assessment with likelihood, impact, agent attribution, and mitigation
- **30-40% Fewer Hallucinations** — multi-agent cross-validation catches errors single models miss
- **On-Premise Deployment** — self-hosted option where data never leaves your infrastructure
- **Customizable** — build custom agents, set weights, adjust synthesis strategy
- **Audit Trail** — every query, response, and synthesis logged with timestamps

## How It Works
1. User submits a query to a panel of expert agents
2. Each agent analyzes independently (in parallel)
3. A synthesis model combines all opinions into a unified recommendation
4. Output includes: Executive Summary, Detailed Analysis, Consensus Points, Dissenting Views, Risk Matrix, and Action Plan
5. Users see every expert's full reasoning and can share, export PDF, or save results

## Use Cases
- M&A due diligence and acquisition analysis
- Clinical decision support in healthcare
- Product roadmap prioritization
- Sales deal strategy and negotiation prep
- Cybersecurity threat assessment
- Policy analysis with multi-partisan perspectives
- Budget planning and financial analysis
- Incident postmortems and root cause analysis

## Pricing
- Free: 5 queries/day, 284+ agents, all panels, 3 council runs/hr
- Pro ($49/mo): 50 queries/day, premium models, custom agents, API access, 20 council runs/hr
- Enterprise: Custom pricing, on-premise deployment, SSO, unlimited

## API Overview

Base URL: `https://meta-council.com/api`
Authentication: JWT tokens (via POST /api/auth/login) or API keys (mc_ prefix, Bearer header)
Rate limits: Free 3 council runs/hr, Pro 20/hr, Enterprise unlimited
All responses: JSON
OpenAPI spec: https://meta-council.com/openapi.json
Full docs: https://meta-council.com/static/docs.html

## API Authentication

Two methods:
1. **JWT token**: POST /api/auth/login with {email, password} → returns token. Header: `Authorization: Bearer <jwt>`
2. **API key**: Generate at Settings > Developer API or POST /api/v1/keys. Keys use `mc_` prefix. Header: `Authorization: Bearer mc_<key>`

## API Endpoints — Council (Core)

### POST /api/council/run — Start a council session
Request body:
- `query` (string, required): The question or decision to deliberate on
- `panel` (string, optional): Panel slug. Default "default". Use "auto" for AI selection, "dynamic" for MMR matching
- `model_override` (string, optional): Override model for all agents (e.g. "claude-sonnet-4-20250514")
- `council_id` (string, optional): Custom council ID, takes precedence over panel
- `is_private` (boolean, optional): If true, session is private. Default false

Response: `{session_id: string, status: "running"}`

### GET /api/council/sessions/{session_id} — Poll for results
Response (completed):
```json
{
  "session_id": "ses_abc123",
  "status": "completed",  // running | synthesizing | completed | failed
  "query": "original query",
  "panel": "default",
  "duration": 18.4,
  "synthesis": {
    "executive_summary": "2-3 paragraph recommendation",
    "detailed_analysis": "full multi-perspective analysis",
    "consensus_points": ["point1", "point2"],
    "dissenting_views": ["view1"],
    "risk_matrix": [{"risk": "description", "likelihood": "medium", "impact": "high", "agent": "Risk Analyst", "mitigation": "steps"}],
    "recommended_action": "clear next steps"
  },
  "agents": {
    "Agent Name": {
      "name": "Agent Name",
      "role": "professional role",
      "model": "model-id",
      "weight": 1.0,
      "status": "completed",
      "recommendation": "PROCEED WITH CONDITIONS",
      "confidence": 0.82,
      "reasoning": "detailed analysis",
      "key_considerations": ["factor1", "factor2"],
      "risks": ["risk1"],
      "dissenting_points": [],
      "duration": 6.2,
      "tokens": 2840
    }
  }
}
```

### GET /api/panels — List all panels
### GET /api/agents — List all 284+ agents with metadata and expertise tags
### GET /api/council/platform-status — Check current default model
### GET /api/council/model-specs — Get model context windows and capabilities

## API Endpoints — Workflows

### GET /api/workflows/templates — List all workflow templates
### GET /api/workflows/templates/{slug} — Get template details with steps and examples
### POST /api/workflows/start — Start a workflow
Request: `{template: string, context: string, model_override?: string}`
Response: `{session_id: string, status: "running", current_step: 0, total_steps: N}`

### GET /api/workflows/sessions/{session_id} — Poll workflow status
### POST /api/workflows/sessions/{session_id}/advance — Approve/reject checkpoint
Request: `{action: "approve"|"reject", feedback?: string}`

### POST /api/workflows/parse-goal — Natural language goal → workflow template match
Request: `{goal: string}`

### POST /api/workflows/templates — Create custom workflow (Pro+)
### PUT /api/workflows/templates/{slug} — Update custom workflow
### DELETE /api/workflows/templates/{slug} — Delete custom workflow

## API Endpoints — Workflow Schedules

### GET /api/workflows/schedules — List your schedules
### POST /api/workflows/schedules — Create schedule
Request: `{template_slug: string, context: string, cron: string, enabled?: boolean}`

### PUT /api/workflows/schedules/{id} — Update schedule
### DELETE /api/workflows/schedules/{id} — Delete schedule

## API Endpoints — History & Sharing

### GET /api/history — List past sessions (paginated, most recent first)
### GET /api/history/{session_id} — Full session results (same data as /s/{id} links)

## API Endpoints — Settings & Keys

### GET /api/settings — Get user settings (masked API keys, model preference)
### PUT /api/settings — Update settings
Request: `{keys?: {anthropic?: string, openai?: string, ...}, default_model?: string}`

### POST /api/v1/keys — Generate developer API key (JWT auth required)
Request: `{name: string}`
Response: `{id: string, name: string, key: "mc_...", created_at: string}`

### GET /api/v1/keys — List API keys (JWT auth required)
### DELETE /api/v1/keys/{key_id} — Revoke an API key

## Developer API (v1) — Simplified Interface

All v1 endpoints use /api/v1/ prefix with API key auth only (Bearer mc_<key>).

- POST /api/v1/councils/run — Start council (same params as /api/council/run)
- GET /api/v1/councils/sessions/{id} — Poll session results
- POST /api/v1/query — Synchronous query (blocks until complete)
- POST /api/v1/query/async — Async query (returns job_id)
- GET /api/v1/query/{job_id} — Get async query results
- GET /api/v1/agents — List agents
- GET /api/v1/agents/{slug} — Agent details
- GET /api/v1/panels — List panels
- GET /api/v1/settings — Get settings
- PUT /api/v1/settings — Update settings

## Error Handling

All errors return: `{"detail": "error message"}`
HTTP codes: 400 (bad request), 401 (unauthorized), 403 (forbidden), 404 (not found), 429 (rate limit), 500 (server error)
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (unix timestamp)

## MCP Server

Meta Council MCP server for Claude Code / Cursor / AI agent integration.
Install: `pip install meta-council-mcp`
10 tools: convene_council, list_panels, list_agents, recommend_panel, get_session, get_agent_detail, get_settings, configure_model, configure_provider_key, configure_tool_key

## Links
- Website: https://meta-council.com
- Blog: https://meta-council.com/blog
- API Docs: https://meta-council.com/static/docs.html
- OpenAPI Spec: https://meta-council.com/openapi.json
- Enterprise: https://meta-council.com/static/enterprise.html
- Contact: sales@meta-council.com
