Odel
Okareo

Okareo

@okareo-aiCommunicationPythonApache-2.0Updated 1w ago

Simulation, evaluation and monitoring for voice agents.

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Okareo MCP Server

The Okareo MCP server exposes Okareo's evaluation capabilities as MCP tools, allowing AI coding assistants to create and manage scenarios, register models, run evaluations, and execute multi-turn simulations directly from your editor.

For detailed documentation, see the Okareo MCP docs.

Prerequisites

  • An Okareo account at app.okareo.com
  • A copilot that supports MCP servers (Claude Code, Cursor, or VS Code)
  • Python 3.10–3.12 (only for the local install modes; not needed for remote)

Remote MCP (hosted) — recommended

The fastest way to get started. No local install, no Python, no API key in .mcp.json. Browser sign-in handles auth on first connect.

Recommended (OAuth — Claude Code, Claude Desktop, Cursor, VS Code 1.101+)

Add to your copilot's MCP config (typically .mcp.json):

{
  "mcpServers": {
    "okareo": {
      "type": "http",
      "url": "https://tools.okareo.com/mcp"
    }
  }
}

Reload the copilot. It will open a browser to Okareo sign-in once; thereafter the copilot stores the token itself. Your .mcp.json contains no secrets.

Fallback (Bearer header — older clients or headless / CI)

For clients that haven't shipped the MCP OAuth flow yet, paste your API key as a bearer header. Prefer the env-var form over an inline literal:

{
  "mcpServers": {
    "okareo": {
      "type": "http",
      "url": "https://tools.okareo.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:OKAREO_API_KEY}"
      }
    }
  }
}

Working across multiple Okareo organizations

If your Okareo account belongs to more than one organization (tenant), the remote MCP exposes two conversational tools so you don't have to leave the copilot to switch:

  • list_tenants — show every organization you have access to. Marks which one this session is currently operating against.
  • switch_tenant(tenant_id) — change the active organization for subsequent tool calls in this session.

The selection is session-scoped: it lasts as long as the MCP connection stays alive. If you close and reopen the copilot, ask the LLM to re-switch (or just re-issue switch_tenant from the resumed conversation). Tenant selection requires the OAuth path; on the API-key fallback path both tools return tenant_selection_requires_oauth because each API key is already pinned to one organization.


Local install (alternative)

Run the MCP server on your own machine. Useful for offline / airgapped environments and for development.

Prefer the Remote MCP section above unless you have a specific reason to install locally (airgapped, custom build, development on this repo). The remote endpoint requires no install and stays current automatically.

For multi-org users, the remote endpoint also exposes tenant management tools (list_tenants, switch_tenant).

Step 1: Set Your API Key

export OKAREO_API_KEY="your-api-key"

Add this to your ~/.zshrc or ~/.bash_profile for persistence.

Step 2: Configure Your Copilot

Claude Code

Add to .mcp.json:

{
  "mcpServers": {
    "okareo": {
      "command": "uvx",
      "args": ["okareo-mcp"],
      "env": {
        "OKAREO_API_KEY": "${OKAREO_API_KEY}"
      }
    }
  }
}

No pre-install needed — uvx handles it automatically.

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "okareo": {
      "command": "uvx",
      "args": ["okareo-mcp"]
    }
  }
}

Cursor inherits OKAREO_API_KEY from your shell environment.

Alternative: pip install

If you don't have uv installed:

pip install okareo-mcp

Then use "command": "okareo-mcp" instead of "command": "uvx" with "args": ["okareo-mcp"].


Configuration Reference

VariableDefaultDescription
OKAREO_API_KEY(required)Your Okareo API key
OKAREO_BASE_URLhttps://api.okareo.comOverride for on-prem Okareo backend
TRANSPORTstdioTransport: stdio (local) or sse (Docker)
PORT8000Port for SSE transport

Available Tools

Scenarios

ToolDescription
save_scenarioSave a named scenario from rows of input/result data (idempotent)
list_scenariosList all scenarios in the project with names, IDs, and row counts
get_scenarioRetrieve a scenario's metadata and all data rows by name or ID
create_scenario_versionCreate a new version of an existing scenario with updated data
preview_delete_scenarioPreview what will be deleted before removing a scenario
delete_scenarioPermanently delete a scenario and all related test data

Generation Models

ToolDescription
list_available_llmsBrowse available LLMs from the Okareo registry
register_generation_modelRegister a generation model for testing by selecting an LLM from the registry
list_generation_modelsList all registered generation models in the project
get_generation_modelRead detailed information about a registered generation model
update_generation_modelChange the LLM a registered generation model points to
delete_generation_modelRemove a registered generation model and all its related test data

Tests & Checks

ToolDescription
list_checksList available quality checks (built-in and custom) for evaluating model outputs
run_testRun a quality test that evaluates a model against a scenario using specified checks
list_test_runsList past test runs with optional filters (model, scenario, simulation-only)
get_test_run_resultsLoad detailed per-row results of a test run or simulation by ID or name
get_conversation_transcriptRetrieve the full conversation transcript for a single data point
reevaluate_test_runRe-score a completed test run against a (possibly different) set of checks
create_or_update_checkCreate or update a quality check by name — model-based, code-based, or audio (upsert)
generate_checkGenerate a check from a natural-language description, then save it
get_checkRetrieve a check's full configuration, including its prompt template or code
delete_checkPermanently delete a check by name

Simulations (Multi-Turn)

ToolDescription
create_or_update_targetCreate or update a Target — generation model, custom endpoint, or voice (OpenAI, Deepgram, Twilio)
get_targetRetrieve a Target's configuration by name (all types)
list_targetsList all simulation targets (voice and custom_endpoint) in the project
delete_targetRemove a simulation target and all its related test data
create_or_update_driverDefine a simulated user persona that will interact with your target
get_driverRetrieve a Driver's full configuration including the persona prompt
list_driversList all Driver personas in the project
list_driver_voicesDiscover the voices, voice profiles, and languages available for voice drivers
run_simulationRun a multi-turn conversation evaluation (or rerun a previous one with overrides)
list_simulationsList past simulation runs with optional filters (target, scenario, limit)

Voice Monitoring

ToolDescription
ingest_conversationsSubmit completed voice conversations to Okareo for monitoring
connect_voice_integrationConnect a voice provider so its traffic flows into Okareo monitoring
list_voice_integrationsList the voice provider integrations in your project
get_voice_integrationRetrieve a voice provider integration by ID, including its status
update_voice_integrationUpdate a voice provider integration's metadata
rotate_voice_integration_secretRotate a voice provider integration's secrets
delete_voice_integrationDelete a voice provider integration by ID
get_voice_webhook_urlGet the inbound webhook endpoint for a voice provider

Analytics & Dashboards

ToolDescription
query_analyticsQuery Okareo's product analytics to understand evaluation trends
list_dashboardsList the analytics dashboards in your project
get_dashboardRetrieve a dashboard's full configuration by name
save_dashboardCreate or update an analytics dashboard by name (upsert)
reorder_dashboardsSet the display order of dashboards
delete_dashboardDelete a dashboard by name

Tenant Management (remote MCP only)

ToolDescription
list_tenantsList every Okareo organization you have access to in this MCP session
switch_tenantChange which Okareo organization subsequent tool calls operate against

Documentation & Templates

ToolDescription
get_docsQuery the Okareo documentation system for conceptual or user-legible explanations
get_templatesRetrieve prompt templates for common Okareo patterns (works offline)

Troubleshooting

SymptomCauseFix
okareo-mcp: command not foundNot installed or not in PATHRun pip install -e . (dev) or use uvx okareo-mcp (user)
Server exits with API key errorOKAREO_API_KEY not setExport it: export OKAREO_API_KEY="..."
pip install fails on Python 3.13+Okareo SDK requires Python <3.13Use Python 3.10–3.12
Copilot can't connect (Docker)Wrong URLEnsure URL ends with /sse and port matches
Cursor doesn't pick up API keyCursor launched from Dock, not terminalLaunch Cursor from terminal: cursor .

Contributing

This repository is a curated public mirror; the canonical source is maintained by Okareo. We welcome issues and consider community pull requests — see CONTRIBUTING.md for how proposed changes are reviewed and ported.

License & Trademarks

The Okareo MCP server source code is licensed under the Apache License 2.0 (see also NOTICE).

"Okareo", the Okareo logo, and Okareo product names are trademarks of Okareo, Inc. and are not covered by the Apache 2.0 license. See TRADEMARK.md for permitted use.