Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
E2E test runner using Chrome Pool (browserless/chrome) with parallel execution <p align="center"> <img src="https://img.shields.io/npm/v/@matware/e2e-runner?color=blue" alt="npm version" /> <img src="https://img.shields.io/node/v/@matware/e2e-runner" alt="node version" /> <img src="https://img.shields.io/npm/l/@matware/e2e-runner" alt="license" /> <img src="https://img.shields.io/badge/MCP-compatible-green" alt="MCP compatible" /> </p> @matware/e2e-runner JSON-driven E2E test runner. Define bro Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
@matware/e2e-runner is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
E2E test runner using Chrome Pool (browserless/chrome) with parallel execution <p align="center"> <img src="https://img.shields.io/npm/v/@matware/e2e-runner?color=blue" alt="npm version" /> <img src="https://img.shields.io/node/v/@matware/e2e-runner" alt="node version" /> <img src="https://img.shields.io/npm/l/@matware/e2e-runner" alt="license" /> <img src="https://img.shields.io/badge/MCP-compatible-green" alt="MCP compatible" /> </p> @matware/e2e-runner JSON-driven E2E test runner. Define bro
Public facts
7
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Fastslack
Artifacts
0
Benchmarks
0
Last release
1.1.1
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/fastslack/mtw-e2e-runner.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Fastslack
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
2 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
json
[
{
"name": "login-flow",
"actions": [
{ "type": "goto", "value": "/login" },
{ "type": "type", "selector": "#email", "value": "user@test.com" },
{ "type": "type", "selector": "#password", "value": "secret" },
{ "type": "click", "text": "Sign In" },
{ "type": "assert_text", "text": "Welcome back" },
{ "type": "screenshot", "value": "logged-in.png" }
]
}
]bash
curl -fsSL https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/scripts/quickstart.sh | bash
bash
curl -fsSL https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/scripts/quickstart.sh | bash
bash
# 1. Install npm install --save-dev @matware/e2e-runner # 2. Scaffold project structure npx e2e-runner init # 3. Start Chrome pool (requires Docker) npx e2e-runner pool start # 4. Run all tests npx e2e-runner run --all # 5. Open the dashboard npx e2e-runner dashboard
bash
claude mcp add --transport stdio --scope user e2e-runner \ -- npx -y -p @matware/e2e-runner e2e-runner-mcp
text
e2e/
tests/
01-sample.json # Sample test suite
screenshots/ # Reports and error screenshots
e2e.config.js # Configuration fileFull documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
E2E test runner using Chrome Pool (browserless/chrome) with parallel execution <p align="center"> <img src="https://img.shields.io/npm/v/@matware/e2e-runner?color=blue" alt="npm version" /> <img src="https://img.shields.io/node/v/@matware/e2e-runner" alt="node version" /> <img src="https://img.shields.io/npm/l/@matware/e2e-runner" alt="license" /> <img src="https://img.shields.io/badge/MCP-compatible-green" alt="MCP compatible" /> </p> @matware/e2e-runner JSON-driven E2E test runner. Define bro
JSON-driven E2E test runner. Define browser tests as simple JSON action arrays, run them in parallel against a Chrome pool. No JavaScript test files, no complex setup.
[
{
"name": "login-flow",
"actions": [
{ "type": "goto", "value": "/login" },
{ "type": "type", "selector": "#email", "value": "user@test.com" },
{ "type": "type", "selector": "#password", "value": "secret" },
{ "type": "click", "text": "Sign In" },
{ "type": "assert_text", "text": "Welcome back" },
{ "type": "screenshot", "value": "logged-in.png" }
]
}
]
One-liner (requires Node.js >= 20 and Docker):
curl -fsSL https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/scripts/quickstart.sh | bash
This checks prerequisites, installs the package, scaffolds the project, starts the Chrome pool, and runs the sample tests.
Step by step:
# 1. Install
npm install --save-dev @matware/e2e-runner
# 2. Scaffold project structure
npx e2e-runner init
# 3. Start Chrome pool (requires Docker)
npx e2e-runner pool start
# 4. Run all tests
npx e2e-runner run --all
# 5. Open the dashboard
npx e2e-runner dashboard
Add to Claude Code (once, available in all projects):
claude mcp add --transport stdio --scope user e2e-runner \
-- npx -y -p @matware/e2e-runner e2e-runner-mcp
The init command creates:
e2e/
tests/
01-sample.json # Sample test suite
screenshots/ # Reports and error screenshots
e2e.config.js # Configuration file
Each .json file in e2e/tests/ contains an array of tests. Each test has a name and sequential actions:
[
{
"name": "homepage-loads",
"actions": [
{ "type": "goto", "value": "/" },
{ "type": "wait", "selector": ".hero" },
{ "type": "assert_text", "text": "Welcome" },
{ "type": "assert_url", "value": "/" },
{ "type": "screenshot", "value": "homepage.png" }
]
}
]
Suite files can have numeric prefixes for ordering (01-auth.json, 02-dashboard.json). The --suite flag matches with or without the prefix, so --suite auth finds 01-auth.json.
| Action | Fields | Description |
|--------|--------|-------------|
| goto | value | Navigate to URL (relative to baseUrl or absolute) |
| click | selector or text | Click by CSS selector or visible text content |
| type / fill | selector, value | Clear field and type text |
| wait | selector, text, or value (ms) | Wait for element, text, or fixed delay |
| assert_text | text | Assert text exists on the page |
| assert_url | value | Assert current URL contains value |
| assert_visible | selector | Assert element is visible |
| assert_count | selector, value | Assert element count matches |
| screenshot | value (filename) | Capture a screenshot |
| select | selector, value | Select a dropdown option |
| clear | selector | Clear an input field |
| press | value | Press a keyboard key (e.g. Enter, Tab) |
| scroll | selector or value (px) | Scroll to element or by pixel amount |
| hover | selector | Hover over an element |
| evaluate | value | Execute JavaScript in the browser context |
When click uses text instead of selector, it searches across interactive elements:
button, a, [role="button"], [role="tab"], [role="menuitem"], div[class*="cursor"], span
{ "type": "click", "text": "Sign In" }
# Run tests
npx e2e-runner run --all # All suites
npx e2e-runner run --suite auth # Single suite
npx e2e-runner run --tests path/to.json # Specific file
npx e2e-runner run --inline '<json>' # Inline JSON
# Pool management
npx e2e-runner pool start # Start Chrome container
npx e2e-runner pool stop # Stop Chrome container
npx e2e-runner pool status # Check pool health
# Issue-to-test
npx e2e-runner issue <url> # Fetch issue details
npx e2e-runner issue <url> --generate # Generate test file via AI
npx e2e-runner issue <url> --verify # Generate + run + report
# Dashboard
npx e2e-runner dashboard # Start web dashboard
# Other
npx e2e-runner list # List available suites
npx e2e-runner init # Scaffold project
| Flag | Default | Description |
|------|---------|-------------|
| --base-url <url> | http://host.docker.internal:3000 | Application base URL |
| --pool-url <ws> | ws://localhost:3333 | Chrome pool WebSocket URL |
| --tests-dir <dir> | e2e/tests | Tests directory |
| --screenshots-dir <dir> | e2e/screenshots | Screenshots/reports directory |
| --concurrency <n> | 3 | Parallel test workers |
| --timeout <ms> | 10000 | Default action timeout |
| --retries <n> | 0 | Retry failed tests N times |
| --retry-delay <ms> | 1000 | Delay between retries |
| --test-timeout <ms> | 60000 | Per-test timeout |
| --output <format> | json | Report format: json, junit, both |
| --env <name> | default | Environment profile |
| --pool-port <port> | 3333 | Chrome pool port |
| --max-sessions <n> | 10 | Max concurrent Chrome sessions |
| --project-name <name> | dir name | Project display name for dashboard |
Create e2e.config.js (or e2e.config.json) in your project root:
export default {
baseUrl: 'http://host.docker.internal:3000',
concurrency: 4,
retries: 2,
testTimeout: 30000,
outputFormat: 'both',
hooks: {
beforeEach: [{ type: 'goto', value: '/' }],
afterEach: [{ type: 'screenshot', value: 'after-test.png' }],
},
environments: {
staging: { baseUrl: 'https://staging.example.com' },
production: { baseUrl: 'https://example.com', concurrency: 5 },
},
};
--base-url, --concurrency, ...)BASE_URL, CONCURRENCY, ...)e2e.config.js or e2e.config.json)When --env <name> is set, the matching profile from environments overrides everything.
| Variable | Maps to |
|----------|---------|
| BASE_URL | baseUrl |
| CHROME_POOL_URL | poolUrl |
| TESTS_DIR | testsDir |
| SCREENSHOTS_DIR | screenshotsDir |
| CONCURRENCY | concurrency |
| DEFAULT_TIMEOUT | defaultTimeout |
| POOL_PORT | poolPort |
| MAX_SESSIONS | maxSessions |
| RETRIES | retries |
| RETRY_DELAY | retryDelay |
| TEST_TIMEOUT | testTimeout |
| OUTPUT_FORMAT | outputFormat |
| E2E_ENV | env |
| PROJECT_NAME | projectName |
| ANTHROPIC_API_KEY | anthropicApiKey |
| ANTHROPIC_MODEL | anthropicModel |
Hooks run actions at lifecycle points. Define them globally in config or per-suite in the JSON file:
{
"hooks": {
"beforeAll": [{ "type": "goto", "value": "/login" }],
"beforeEach": [{ "type": "goto", "value": "/" }],
"afterEach": [],
"afterAll": []
},
"tests": [
{ "name": "test-1", "actions": [...] }
]
}
Suite-level hooks override global hooks per key (non-empty array wins). The plain array format ([{ name, actions }]) is still supported.
Override globally or per-test:
{
"name": "flaky-test",
"retries": 3,
"timeout": 15000,
"actions": [...]
}
Promise.race(). Defaults to 60s.npx e2e-runner run --all --output junit
# or: --output both (JSON + XML)
Output saved to e2e/screenshots/junit.xml.
jobs:
e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npx e2e-runner pool start
- run: npx e2e-runner run --all --output junit
- uses: mikepenz/action-junit-report@v4
if: always()
with:
report_paths: e2e/screenshots/junit.xml
| Code | Meaning |
|------|---------|
| 0 | All tests passed |
| 1 | One or more tests failed |
import { createRunner } from '@matware/e2e-runner';
const runner = await createRunner({ baseUrl: 'http://localhost:3000' });
// Run all suites
const report = await runner.runAll();
// Run a specific suite
const report = await runner.runSuite('auth');
// Run a specific file
const report = await runner.runFile('e2e/tests/login.json');
// Run inline test objects
const report = await runner.runTests([
{
name: 'quick-check',
actions: [
{ type: 'goto', value: '/' },
{ type: 'assert_text', text: 'Hello' },
],
},
]);
import {
loadConfig,
waitForPool, connectToPool, getPoolStatus, startPool, stopPool,
runTest, runTestsParallel, loadTestFile, loadTestSuite, loadAllSuites, listSuites,
generateReport, generateJUnitXML, saveReport, printReport,
executeAction,
} from '@matware/e2e-runner';
The package includes a built-in MCP server that gives Claude Code native access to the test runner. Install once and it's available in every project.
Via npm (requires Node.js):
claude mcp add --transport stdio --scope user e2e-runner \
-- npx -y -p @matware/e2e-runner e2e-runner-mcp
Via Docker (no Node.js required):
claude mcp add --transport stdio --scope user e2e-runner \
-- docker run -i --rm fastslack/e2e-runner-mcp
| Tool | Description |
|------|-------------|
| e2e_run | Run tests (all suites, by suite name, or by file path) |
| e2e_list | List available test suites with test names and counts |
| e2e_create_test | Create a new test JSON file |
| e2e_pool_status | Check Chrome pool availability and capacity |
| e2e_screenshot | Retrieve a screenshot by its hash (e.g. ss:a3f2b1c9) |
| e2e_issue | Fetch a GitHub/GitLab issue and generate E2E tests |
Note: Pool start/stop are only available via CLI (
e2e-runner pool start|stop), not via MCP — restarting the pool kills all active sessions from other clients.
All tools accept an optional cwd parameter (absolute path to the project root). Claude Code passes its current working directory so the MCP server resolves e2e/tests/, e2e.config.js, and .e2e-pool/ relative to the correct project — even when switching between multiple projects in the same session.
Once installed, Claude Code can run tests, analyze failures, and create new test files as part of its normal workflow. Just ask:
"Run all E2E tests" "Create a test that verifies the checkout flow" "What's the status of the Chrome pool?"
claude mcp list
# e2e-runner: ... - Connected
Turn GitHub and GitLab issues into executable E2E tests. Paste an issue URL and get runnable tests -- automatically.
gh or glab CLIPrompt mode (default, no API key): Returns issue data + a structured prompt. Claude Code uses its own intelligence to create tests via e2e_create_test and run them.
Verify mode (requires ANTHROPIC_API_KEY): Calls Claude API directly, generates tests, runs them, and reports whether the bug is confirmed or not reproducible.
# Fetch and display issue details
e2e-runner issue https://github.com/owner/repo/issues/42
# Generate a test file via Claude API
e2e-runner issue https://github.com/owner/repo/issues/42 --generate
# -> Creates e2e/tests/issue-42.json
# Generate + run + report bug status
e2e-runner issue https://github.com/owner/repo/issues/42 --verify
# -> "BUG CONFIRMED" or "NOT REPRODUCIBLE"
# Output AI prompt as JSON (for piping)
e2e-runner issue https://github.com/owner/repo/issues/42 --prompt
In Claude Code, the e2e_issue tool handles everything:
"Fetch issue https://github.com/owner/repo/issues/42 and create E2E tests for it"
Claude Code receives the issue data, generates appropriate test actions, saves them via e2e_create_test, and runs them with e2e_run.
gh CLI authenticated (gh auth login)glab CLI authenticated (glab auth login)Provider is auto-detected from the URL. Self-hosted GitLab is supported via glab config.
Generated tests assert the correct behavior. If the tests fail, the correct behavior doesn't work -- bug confirmed. If all tests pass, the bug is not reproducible.
Real-time UI for running tests, viewing results, screenshots, and run history.
e2e-runner dashboard # Start on default port 8484
e2e-runner dashboard --port 9090 # Custom port
Monitor tests in real-time as they run. Each test shows its steps with individual durations, pass/fail status, and active connection count.
<p align="center"> <img src="https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/docs/screenshots/blog-dashboard-live-running.png" alt="Dashboard - Live test execution" width="900" /> </p>Browse all test suites across multiple projects. Run a single suite or all tests with one click.
<p align="center"> <img src="https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/docs/screenshots/blog-dashboard-suites.png" alt="Dashboard - Test suites grid" width="900" /> </p>Track pass rate trends over time with the bar chart. Click any row to expand the full run detail with per-test results, screenshots, and console errors.
<p align="center"> <img src="https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/docs/screenshots/blog-dashboard-runs.png" alt="Dashboard - Run history with trend chart" width="900" /> </p>Expanded view shows each test with PASS/FAIL badge, screenshot thumbnails with copyable hashes (ss:77c28b5a), and formatted console errors.
Browse all captured screenshots per project. Includes both manual captures and error screenshots.
<p align="center"> <img src="https://raw.githubusercontent.com/fastslack/mtw-e2e-runner/main/docs/screenshots/blog-dashboard-screenshots-gallery.png" alt="Dashboard - Screenshot gallery" width="900" /> </p>bin/cli.js CLI entry point (manual argv parsing)
bin/mcp-server.js MCP server entry point (stdio transport)
src/config.js Config cascade: defaults -> file -> env -> CLI -> profile
src/pool.js Chrome pool: Docker Compose lifecycle + WebSocket
src/runner.js Parallel test executor with retries and timeouts
src/actions.js Action engine: maps JSON actions to Puppeteer calls
src/reporter.js JSON reports, JUnit XML, console output
src/mcp-server.js MCP server: exposes tools for Claude Code
src/mcp-tools.js Shared MCP tool definitions and handlers
src/dashboard.js Web dashboard: HTTP server, REST API, WebSocket
src/db.js SQLite multi-project database
src/issues.js GitHub/GitLab issue fetching (gh/glab CLI)
src/ai-generate.js AI test generation (prompt builder + Claude API)
src/verify.js Bug verification orchestrator
src/logger.js ANSI colored logger
src/index.js Programmatic API (createRunner)
templates/ Scaffolding templates for init command
page.goto, page.click, page.type, etc.).The baseUrl defaults to http://host.docker.internal:3000 because Chrome runs inside Docker and needs to reach the host machine.
Copyright 2025 Matias Aguirre (fastslack)
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
No
Data region
global
Protocol support
Requires: mcp, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/fastslack/mtw-e2e-runner#input",
"outputSchemaRef": "https://github.com/fastslack/mtw-e2e-runner#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:46:12.523Z",
"sourceUpdatedAt": "2026-02-24T19:46:12.523Z",
"freshnessSeconds": 4441295
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T05:27:47.840Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "e2e",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "testing",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "chrome",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "puppeteer",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "browserless",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "parallel",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "claude-code",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "github-issues",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai-testing",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:e2e|supported|profile capability:testing|supported|profile capability:chrome|supported|profile capability:puppeteer|supported|profile capability:browserless|supported|profile capability:parallel|supported|profile capability:mcp|supported|profile capability:claude-code|supported|profile capability:github-issues|supported|profile capability:ai-testing|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:12.523Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:12.523Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/fastslack/mtw-e2e-runner#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:12.523Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Fastslack",
"href": "https://github.com/fastslack/mtw-e2e-runner#readme",
"sourceUrl": "https://github.com/fastslack/mtw-e2e-runner#readme",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2 GitHub stars",
"href": "https://github.com/fastslack/mtw-e2e-runner",
"sourceUrl": "https://github.com/fastslack/mtw-e2e-runner",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-fastslack-mtw-e2e-runner/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to @matware/e2e-runner and adjacent AI workflows.