Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
MCP server for Gaffer test history - give your AI assistant memory of your tests @gaffer-sh/mcp MCP (Model Context Protocol) server for $1 - give your AI assistant memory of your tests. What is this? This MCP server connects AI coding assistants like Claude Code and Cursor to your Gaffer test history and coverage data. It allows AI to: - Check your project's test health (pass rate, flaky tests, trends) - Look up the history of specific tests to understand stability - Get context about test failur Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
@gaffer-sh/mcp is best for mcp, model-context-protocol, gaffer workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
MCP server for Gaffer test history - give your AI assistant memory of your tests @gaffer-sh/mcp MCP (Model Context Protocol) server for $1 - give your AI assistant memory of your tests. What is this? This MCP server connects AI coding assistants like Claude Code and Cursor to your Gaffer test history and coverage data. It allows AI to: - Check your project's test health (pass rate, flaky tests, trends) - Look up the history of specific tests to understand stability - Get context about test failur
Public facts
4
Change events
0
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Gaffer
Artifacts
0
Benchmarks
0
Last release
0.6.2
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/gaffer-sh/mcp.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
Gaffer
Protocol compatibility
MCP
Adoption signal
1 GitHub stars
Handshake status
UNKNOWN
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
bash
claude mcp add gaffer -e GAFFER_API_KEY=gaf_your_api_key_here -- npx -y @gaffer-sh/mcp
json
{
"mcpServers": {
"gaffer": {
"command": "npx",
"args": ["-y", "@gaffer-sh/mcp"],
"env": {
"GAFFER_API_KEY": "gaf_your_api_key_here"
}
}
}
}json
{
"mcpServers": {
"gaffer": {
"command": "npx",
"args": ["-y", "@gaffer-sh/mcp"],
"env": {
"GAFFER_API_KEY": "gaf_your_api_key_here"
}
}
}
}text
list_test_runs(projectId, status="failed") → get_test_run_details(projectId, testRunId, status="failed") → get_failure_clusters(projectId, testRunId) → get_test_history(projectId, testName="...") → compare_test_metrics(projectId, testName, beforeCommit, afterCommit)
text
get_upload_status(projectId, commitSha="abc123") → poll until processingStatus="completed" → get_test_run_details(projectId, testRunId)
text
find_uncovered_failure_areas(projectId) → get_untested_files(projectId) → get_coverage_for_file(projectId, filePath="src/critical/")
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
MCP server for Gaffer test history - give your AI assistant memory of your tests @gaffer-sh/mcp MCP (Model Context Protocol) server for $1 - give your AI assistant memory of your tests. What is this? This MCP server connects AI coding assistants like Claude Code and Cursor to your Gaffer test history and coverage data. It allows AI to: - Check your project's test health (pass rate, flaky tests, trends) - Look up the history of specific tests to understand stability - Get context about test failur
MCP (Model Context Protocol) server for Gaffer - give your AI assistant memory of your tests.
This MCP server connects AI coding assistants like Claude Code and Cursor to your Gaffer test history and coverage data. It allows AI to:
The easiest way to add the Gaffer MCP server is via the Claude Code CLI:
claude mcp add gaffer -e GAFFER_API_KEY=gaf_your_api_key_here -- npx -y @gaffer-sh/mcp
Alternatively, add to your Claude Code settings (~/.claude.json or project .claude/settings.json):
{
"mcpServers": {
"gaffer": {
"command": "npx",
"args": ["-y", "@gaffer-sh/mcp"],
"env": {
"GAFFER_API_KEY": "gaf_your_api_key_here"
}
}
}
}
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"gaffer": {
"command": "npx",
"args": ["-y", "@gaffer-sh/mcp"],
"env": {
"GAFFER_API_KEY": "gaf_your_api_key_here"
}
}
}
}
| Tool | Description |
|------|-------------|
| list_projects | List all projects you have access to |
| get_project_health | Get health metrics (pass rate, flaky count, trends) |
| list_test_runs | List recent test runs with optional filtering |
| get_test_run_details | Get parsed test results for a specific test run |
| get_report | Get report file URLs for a test run |
| get_report_browser_url | Get a browser-navigable URL for viewing reports |
| Tool | Description |
|------|-------------|
| get_test_history | Get pass/fail history for a specific test |
| get_flaky_tests | Get tests with high flip rates (pass↔fail) |
| get_slowest_tests | Get slowest tests by P95 duration |
| compare_test_metrics | Compare test performance between commits |
| get_failure_clusters | Group failed tests by root cause (error similarity) |
| Tool | Description |
|------|-------------|
| get_upload_status | Check if CI results are uploaded and processed |
| Tool | Description |
|------|-------------|
| get_coverage_summary | Get overall coverage metrics and trends |
| get_coverage_for_file | Get coverage for specific files or paths |
| get_untested_files | Get files below a coverage threshold |
| find_uncovered_failure_areas | Find files with low coverage AND test failures |
list_projectsList all projects you have access to.
organizationId (optional), limit (optional, default: 50)get_project_healthGet the health metrics for a project.
projectId (required), days (optional, default: 30)get_test_historyGet the pass/fail history for a specific test.
projectId (required), testName or filePath (one required), limit (optional)get_flaky_testsGet the list of flaky tests in a project.
projectId (required), threshold (optional, default: 0.1), days (optional), limit (optional)list_test_runsList recent test runs with optional filtering.
projectId (required), commitSha (optional), branch (optional), status (optional), limit (optional)get_test_run_detailsGet parsed test results for a specific test run.
testRunId (required), projectId (required), status (optional filter), limit (optional)get_reportGet URLs for report files uploaded with a test run.
testRunId (required)get_report_browser_urlGet a browser-navigable URL for viewing a test report.
projectId (required), testRunId (required), filename (optional)get_slowest_testsGet the slowest tests in a project, sorted by P95 duration.
projectId (required), days (optional), limit (optional), framework (optional), branch (optional)compare_test_metricsCompare test metrics between two commits or test runs.
projectId (required), testName (required), beforeCommit/afterCommit OR beforeRunId/afterRunIdget_coverage_summaryGet the coverage metrics summary for a project.
projectId (required), days (optional, default: 30)get_coverage_for_fileGet coverage metrics for specific files or paths.
projectId (required), filePath (required - exact or partial match)get_untested_filesGet files with little or no test coverage.
projectId (required), maxCoverage (optional, default: 10%), limit (optional)find_uncovered_failure_areasFind code areas with both low coverage AND test failures (high risk).
projectId (required), days (optional), coverageThreshold (optional, default: 80%)get_failure_clustersGroup failed tests by root cause using error message similarity.
projectId (required), testRunId (required)get_upload_statusCheck if CI results have been uploaded and processed.
projectId (required), sessionId (optional), commitSha (optional), branch (optional)These workflows show how an AI agent can use Gaffer tools to diagnose CI failures, wait for results, and find coverage gaps.
list_test_runs(projectId, status="failed")
→ get_test_run_details(projectId, testRunId, status="failed")
→ get_failure_clusters(projectId, testRunId)
→ get_test_history(projectId, testName="...")
→ compare_test_metrics(projectId, testName, beforeCommit, afterCommit)
get_upload_status(projectId, commitSha="abc123")
→ poll until processingStatus="completed"
→ get_test_run_details(projectId, testRunId)
find_uncovered_failure_areas(projectId)
→ get_untested_files(projectId)
→ get_coverage_for_file(projectId, filePath="src/critical/")
| Agent Question | Tool |
|---|---|
| "What failed?" | get_test_run_details |
| "Same root cause?" | get_failure_clusters |
| "Is it flaky?" | get_flaky_tests |
| "Is this new?" | get_test_history |
| "Did my fix work?" | compare_test_metrics |
| "Are results ready?" | get_upload_status |
| "What's untested?" | find_uncovered_failure_areas |
| "What's slow?" | get_slowest_tests |
When using coverage tools to improve your test suite, combine coverage data with codebase exploration for best results:
Before targeting files purely by coverage percentage, explore which code is actually critical:
Low coverage alone doesn't indicate priority. Consider:
find_uncovered_failure_areas for thisThe get_untested_files tool may return many frontend components. For backend or specific areas:
# Query specific paths with get_coverage_for_file
get_coverage_for_file(filePath="server/services")
get_coverage_for_file(filePath="src/api")
get_coverage_for_file(filePath="lib/core")
get_coverage_summaryget_coverage_for_file on critical pathsUser API Keys (gaf_ prefix) provide read-only access to all projects across your organizations. Get your API Key from: Account Settings > API Keys
Project Upload Tokens (gfr_ prefix) are designed for uploading test results and only provide access to a single project. User API Keys are preferred for the MCP server.
| Variable | Required | Description |
|----------|----------|-------------|
| GAFFER_API_KEY | Yes | Your Gaffer API Key (starts with gaf_) |
| GAFFER_API_URL | No | API base URL (default: https://app.gaffer.sh) |
pnpm install
pnpm build
Test locally with Claude Code (use absolute path to built file):
{
"mcpServers": {
"gaffer": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"GAFFER_API_KEY": "gaf_..."
}
}
}
}
MIT
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/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
Do not use if
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": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/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-16T23:58:56.968Z"
}
},
"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": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "model-context-protocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "gaffer",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "test-results",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "claude",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cursor",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai-assistant",
"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|unknown|profile capability:mcp|supported|profile capability:model-context-protocol|supported|profile capability:gaffer|supported|profile capability:test-results|supported|profile capability:claude|supported|profile capability:cursor|supported|profile capability:ai-assistant|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Gaffer",
"href": "https://gaffer.sh",
"sourceUrl": "https://gaffer.sh",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:19:55.640Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T03:19:55.640Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1 GitHub stars",
"href": "https://github.com/gaffer-sh/mcp",
"sourceUrl": "https://github.com/gaffer-sh/mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:19:55.640Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-gaffer-sh-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[]
Sponsored
Ads related to @gaffer-sh/mcp and adjacent AI workflows.