Home
New: Router Pattern • HTTP Streamable • 83% Token Reduction

MCP Integration

Connect Claude Code to your test data using the Model Context Protocol (MCP). Now with 5 consolidated tools (down from 24) using an efficient router pattern.

What's New in v2.0

  • 5 tools instead of 24 - Router pattern with ~83% token reduction
  • HTTP Streamable transport - More reliable than legacy SSE
  • 14 queryable datasets - Unified filter interface via query_exolar_data
  • Semantic definitions - Metric formulas prevent AI hallucinations
  • Markdown output - ~70% fewer tokens than JSON

Installation

1Quick Start (OAuth - Recommended)

Run this command and authenticate via browser — no token copying needed:

claude mcp add --transport http exolar-qa https://exolar.ai-innovation.site/api/mcp/mcp

When prompted, select "Authenticate" → browser opens → log in → done!

2Alternative: Manual Token

If OAuth doesn't work, get a token from /settings/mcp:

claude mcp add --transport http exolar-qa https://exolar.ai-innovation.site/api/mcp/mcp \
  --header "Authorization: Bearer YOUR_TOKEN_HERE"

🤖AI-Guided CI/CD Setup

After connecting, ask Claude Code:

"Help me integrate Exolar with my Playwright tests"

Claude uses an Integration Engineer persona to guide you through GitHub Actions setup with step-by-step instructions.

Architecture: Router Pattern

Instead of 24 individual tools, the MCP server uses a two-level router pattern:

Level 1: Tool
Which category?
  • • explore (discovery)
  • • query (data retrieval)
  • • action (heavy ops)
  • • definition (semantics)
  • • config (setup)
Level 2: Dataset/Action
Which specific data?
  • • executions, failures
  • • flaky_tests, trends
  • • compare, classify
  • • metric formulas
  • • CI/CD snippets

Benefits

  • 83% fewer tokens - Tool definitions reduced from ~3,000 to ~500 tokens
  • Unified filters - Consistent interface across all datasets
  • Better discovery - explore_exolar_index shows what's available
  • Flexible routing - Easy to add new datasets

Available Tools (5 Total)

All tools support organization-scoped access with automatic filtering.

discoveryexplore_exolar_index

Discovery tool - call FIRST to learn what data exists. Lists datasets, branches, suites, or metrics with optional search filtering.

queryquery_exolar_data

Universal data retrieval router. Retrieves data from any of the 14 available datasets using a unified filter interface.

actionperform_exolar_action

Execute heavy operations: compare executions, generate reports, or classify failures as FLAKE vs BUG.

metadataget_semantic_definition

Get metric definitions to prevent AI hallucinations. Returns formula, thresholds, unit, and related tools for any metric.

metadataget_installation_config

Get CI/CD integration code snippets and setup instructions. Returns ready-to-use config for Playwright reporter, GitHub Actions, and environment variables.

Available Datasets

Use query_exolar_data with these datasets:

01
executions
List test executions with optional filters (branch, suite, status, dates)
02
execution_details
Full execution data with all test results and artifacts (requires execution_id)
03
failures
Failed tests with AI-enriched context and error details
04
flaky_tests
Tests with flakiness history (min_runs, include_resolved filters)
05
trends
Time-series metrics with flexible granularity (hour, day, week, month)
06
dashboard_stats
Overall metrics summary (total executions, pass rate, avg duration)
07
error_analysis
Error type distribution breakdown
08
test_search
Search tests by name or file path (requires query param)
09
test_history
Execution history for a specific test (requires test_signature)
10
flakiness_summary
Overall flakiness metrics and worst offenders
11
reliability_score
Suite health score (0-100) with breakdown and trend
12
performance_regressions
Tests slower than historical baseline
13
execution_summary
Aggregated execution overview without full test list
14
execution_failures
Only failed tests from an execution with error grouping

Migration from v1.0

If you were using the previous 24-tool version, here's how to migrate:

Old ToolNew ToolParameters
list_branchesexplore_exolar_index{ category: "branches" }
get_executionsquery_exolar_data{ dataset: "executions" }
get_flaky_testsquery_exolar_data{ dataset: "flaky_tests" }
compare_executionsperform_exolar_action{ action: "compare" }
See full mapping in documentation

Usage Examples

After connecting, you can ask Claude things like:

Show me what datasets are available
List all branches with their stats
What metrics can I query?
Get recent test failures on main branch
Show me the flakiest tests with at least 5 runs
What were the test results from the last CI run?
Search for tests related to login
Get metrics for the past week
What's the health score for my test suite?
Are there any performance regressions on the main branch?
Show me tests that got slower in the last 24 hours
What's the error distribution for failed tests?
Compare the last two runs on main branch
What tests broke in the feature branch compared to main?
Show me new failures between main and feature-auth
Is this test failure a flake or a real bug?
Classify the failure in test 'should login successfully'
Help me set up MCP integration
How do I configure GitHub Actions?
What's the formula for pass rate?
How is reliability score calculated?

Conversational CI/CD Setup

The get_installation_config tool uses an Integration Engineer persona that guides you through setup step-by-step.

🔍

Discovery

Claude asks about your CI provider (GitHub Actions recommended), monorepo structure, and existing tests

🎯

Adaptation

Receives CI-specific instructions with exact secrets management steps for GitHub Actions

Validation

Gets dry run commands to verify integration before pushing to CI

Example Conversation

You: “Help me integrate Exolar with my Playwright tests”
Claude (Integration Engineer): “I'll help you set up Exolar! First, which CI provider are you using? (GitHub Actions recommended, or running locally?)”
You: “GitHub Actions”
Claude: “Perfect! Here are your GitHub Actions setup instructions: 1. Add this secret in Settings > Secrets > Actions: Name: EXOLAR_API_KEY Value: [from /settings/mcp] 2. Install the package: npm install @exolar/reporter 3. MERGE (don't replace!) the reporter into your playwright.config.ts reporters array 4. Update your .github/workflows/playwright.yml with... Would you like me to explain how to merge the reporter config?”

Key Benefits

  • • No guessing where to put the EXOLAR_API_KEY
  • • Clear instructions: MERGE vs REPLACE config files
  • • GitHub Actions-specific secrets management path
  • • Monorepo-aware guidance (where to place reporters, per-package config)
  • • Built-in validation commands (dry run locally before CI push)

Router Pattern Alternative

You can also use the router pattern to get pre-filtered configuration programmatically:

query_exolar_data({
  dataset: "setup_guide",
  filters: {
    ci_provider: "github",  // or "local" (v2.1)
    framework: "playwright",
    monorepo: false,        // or true
    section: "all"          // or specific section
  }
})

Output Formats

Markdown (Default)

  • • CLI-friendly tables
  • • ~70% fewer tokens than JSON
  • • Human-readable
  • • Easier to scan

JSON

  • • Structured data
  • • Programmatic parsing
  • • Full details
  • • API integration

Security

  • JWT tokens verified using Neon Auth JWKS
  • All data automatically scoped to your organization
  • Database-level RLS policies for additional protection
  • HTTPS-only communication (encrypted in transit)
  • No cross-tenant access - users only see their org's data

Troubleshooting

“Invalid or expired token”

Visit /settings/mcp to generate a new token. Tokens expire after 30 days.

“User not found”

Ensure you're logged into the dashboard and have an organization assigned. Generate a new token from /settings/mcp after logging in.

“Tool not found”

You may be using old tool names. Use the 5 consolidated tools: explore_exolar_index, query_exolar_data, perform_exolar_action, get_semantic_definition, get_installation_config.

Connection fails

Check: (1) Dashboard is accessible, (2) NEON_AUTH_JWKS_URL is set in Vercel, (3) URL is correct (/api/mcp/mcp not /api/mcp).

Additional Resources