fix-failing-tests
Skill17k starsChanged 7 months agoApache-2.0View on GitHub
Diagnose a failing test in the googleapis/mcp-toolbox repo and land a fix by reasoning from the actual error: read the failure, reproduce it, shrink it until the cause is forced into the open, then fix the cause. Use this whenever a test or CI job is red, a build breaks after a change, many packages fail at once, or a test passes locally but fails in CI.
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 7 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Open every line you cite, including this skill's: Ensure all pointers are correct.
- Distinctive: line 67
Check whether the same job is red on main.
- Very specific: line 87
Use -race locally, because CI does, and a race can be green without it.
- Distinctive: line 89
If you cannot reproduce it, that is itself a finding.
- Distinctive: line 110
When many packages fail at once, resist debugging the first one alphabetically.
- Distinctive: line 111
Look for the single shared thing they all touch, fix that, and re-run.
- Distinctive: line 122
Before writing a patch, be able to answer:
- Distinctive: line 149
Never loosen an assertion, add a retry, or extend a timeout to make red go away unless you can explain why the original was wrong.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Diagnose and Fix Failing Tests
Scope: googleapis/mcp-toolbox
Debug the way a careful developer does. Read the real error, find out what changed, reproduce it, shrink it until the cause is forced into the open, then fix the cause rather than the symptom.
The Evidence Rule
Every factual claim MUST cite evidence: a path with line numbers, a build ID,
a log excerpt, or a SHA. Otherwise mark it [UNVERIFIED] and say what would
confirm it.
Open every line you cite, including this skill's. Ensure all pointers are correct.
1. Read the actual failure
How you arrived decides what evidence you already hold and how much of step 2 you can skip.
| You arrived from | What you have | Where that puts you |
| A gate failing on your PR | A diff and a known-good parent | Your change is the prime suspect, but confirm the same job is green on main before assuming it |
A periodic-failure issue | A build link buried in a long thread | Take the newest comment's link. The title often describes a different, already-fixed failure |
| An issue someone filed | A claim, often without a log | Establish that it still fails before anything else. Reports go stale, and the fix may have landed already |
main is red | A range of commits, none of them yours | Bisect over merges. Say you are inheriting it rather than absorbing it into your change |
| Fails locally, green in CI | A reproduction | Suspect your environment: stale build cache, leftover local state, missing env, different Go version |
| Green locally, fails in CI | Neither | Suspect what CI does differently: -race, another OS, concurrency, a clean checkout, no cached state |
Whatever the door, get to the real error before theorising. Do not work from the job summary or the last line of the log. Find the first real error and read it in full.
- Did a test fail at all? Some red jobs contain zero failing tests: a compile error before the test step, a coverage threshold, a separate lint job, or a shard that skipped itself. Confirm a real test failure before debugging one. references/ci-map.md lists the jobs that go red with everything green.
- Which error is the cause? Compile errors cascade, so the first is the cause and the rest are consequences. Assertion failures do not cascade, so read them all: three unrelated ones mean something different from thirty identical ones.
- What kind of failure is it? An assertion, a panic, a timeout, and a connection error each imply a different investigation. A connection error in a test that never touches the network usually means the process under test died.
- What exactly was expected versus produced? Get the diff, the test name, and the subtest name. "The test failed" is not a starting point.
2. Establish what changed
A test that passes on main and fails on your branch is a different problem
from one failing everywhere.
- Check whether the same job is red on
main. If it is, you are inheriting someone else's failure and should say so rather than absorbing it into your change. - Diff your branch against the last green commit. Look for the smallest change that could plausibly reach the failing code, including indirect reach through a shared helper or an interface.
- "Nothing relevant changed" is a hypothesis, not a fact. Shared infrastructure and concurrent CI runs are changes too.
3. Reproduce it
A fix you cannot demonstrate is a guess. Find the smallest command that fails reliably, and run it before and after your patch.
go test -race -v ./path/to/package/ # one package
go test -race -run 'TestX/subtest' -v ./path/... # one subtest
go test -race -count=20 -run 'TestX' ./path/... # does it always fail?Use -race locally, because CI does, and a race can be green without it.
If you cannot reproduce it, that is itself a finding. Say so explicitly, state what you would need (credentials, a build log, a concurrent run), and lower your confidence rather than proceeding as if you had confirmed the cause.
4. Isolate
Shrink the failure until only the cause is left. Each run should answer one question, so change one variable at a time.
| Axis | Run it both ways | What a difference tells you |
| Alone vs in suite | the single test, then the whole package | passing alone means shared state or ordering, not bad logic |
| With vs without your change | stash it and re-run | separates your regression from a pre-existing failure |
| Repeated | -count=20 | distinguishes deterministic from intermittent |
| Order | -shuffle=on | exposes tests that depend on their neighbours |
| Race detector | with and without -race | isolates a genuine data race |
| Scope | one package, then many | one package is local logic, many is a shared cause |
Alone versus in-suite is the highest-information split: it separates "this test is wrong" from "this test is a victim".
When many packages fail at once, resist debugging the first one alphabetically. Look for the single shared thing they all touch, fix that, and re-run. The list usually collapses. Usual candidates: a fake or helper nearly every package imports, a shared struct compared field-by-field in table tests, a signature every caller depends on, or registration via a blank import.
5. Explain it before you fix it
State one hypothesis as a prediction: if this is the cause, then X should be true. Then check X. If you cannot phrase a prediction, you do not have a hypothesis yet and should go back to isolating.
Before writing a patch, be able to answer:
- Why does it fail now, when it passed before?
- Why does it fail here and not in the tests that pass?
- Does the cause explain every symptom, including the ones you set aside?
An explanation that covers only some of the evidence is usually the wrong one.
Suspect a bystander when the symptom sits far from the cause. A shared deadline that also bounds the process under test kills it on overrun, blaming whichever test was running. A fixture collision can block rather than error, surfacing as a downstream timeout. Teardown on an expired context fails silently, leaving stale state for the next run.
6. Fix the cause
Decide what is actually wrong before editing.
- The code is wrong. The test caught a real defect. Fix the code.
- The test is wrong. It encoded an assumption that no longer holds. Change it, and say plainly what behaviour changed and why that is acceptable.
- The conditions are wrong. The test and code are both fine, but the environment is shared, slow, or ordered unfavourably. Fix the conditions.
Fix at the level the cause lives. A shared helper that breaks many packages gets one edit there, not a hundred local patches.
Never loosen an assertion, add a retry, or extend a timeout to make red go away unless you can explain why the original was wrong. Those are the three edits that hide a real bug while looking like a fix.
Skipping is a last resort: only for a diagnosed intermittent failure that is blocking others, and only with a tracking issue and re-enable condition in the skip reason, since a bare "flaky" is how tests stay skipped for years. Never skip a data race, a deterministic failure, or one you cannot explain, because an unexplained failure is the most likely to be a real bug.
7. Verify
- Re-run the exact command that failed, and confirm it now passes.
- Re-run the wider package or suite, to check you did not move the failure.
- For anything intermittent, repeat it. A single green run proves nothing when the failure was one-in-five to begin with.
- Say what you did not verify.
Output format
Report the diagnosis, then the diff, then anything left open.
{
"failure": "<test or job, exact name>",
"kind": "assertion | compile | panic | timeout | connection | not-a-test-failure",
"scope": "<how many packages, and what they share>",
"deterministic": true,
"reproduced": "<the exact command, or why not>",
"evidence": ["<path:line or log excerpt> <what it shows>"],
"root_cause": "<one sentence that explains every symptom>",
"fix_level": "code | test | conditions",
"action": "fix | escalate | no-change",
"confidence": "high | medium | low, and why",
"residual_risk": "<what this patch does not cover, and what you did not verify>"
}State residual_risk honestly. Claiming certainty you do not have is worse than
a hedged claim, because the next person will trust it.
Reference
references/ci-map.md covers where tests run, how to get the logs, and the jobs that go red with every test passing. Read it in step 1.
Trending
Less talk lately.about the whole repository
Who's talking about googleapis/mcp-toolbox
- ИИ за минуту“3 бесплатных MCP для баз данных: read-only #shorts”YouTube · Oct 19, 2026 · 770 views
- Coding Is Art“Agent Tooling Is Eating GitHub 📈 #shorts”YouTube · Jul 30, 2026 · 445 views
- RepoShots“Conecte seus bancos ao Claude com mcp-toolbox #Claude #Shorts”YouTube · Jun 10, 2026 · 396 views
- RepoManiac“Connect AI to Your Database with Google's MCP Toolbox”YouTube · Sep 30, 2026 · 326 views
- Maven Tech“Google's MCP Toolbox for Databases”YouTube · Apr 12, 2026 · 166 views
The biggest 5 of 64 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 64
Talked about on GitHub, YouTube, Bluesky, the web and Hacker News (64 times).
On GitHub · 33
- May 22, 2026MCP OAuth flow ignores PRM authorization_servers and user is redirected to <mcp_host>/authorize → 404 — anthropics/claude-ai-mcp10 reactions · 4 comments
- Apr 30, 2026MCP Toolbox for Databases read-only SQL call is blocked by safety guard after explicit approval (interactive mode) — openai/codex2 reactions · 2 comments
- Jul 6, 2026feat(firestore): support firestore mongodb dialect — GoogleCloudPlatform/db-context-enrichment1 reaction · 4 comments
- Oct 23, 2026mcp-toolbox 1.15.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 19, 2026● relit: googleapis/mcp-toolbox — tests — fitzyracing1/darks0 reactions · 1 comment
28 more on GitHub
- Oct 19, 2026[Vulnerability] googleapis/mcp-toolbox: Information Disclosure — Danyw24/mcp-radar0 reactions
- Oct 17, 2026content: reconcile five search and automation guide pairs — MCPFind/mcp-find0 reactions · 1 comment
- Oct 13, 2026○ dark: googleapis/mcp-toolbox — CF: Deploy Dev Docs — fitzyracing1/darks0 reactions
- Oct 8, 2026mcp-toolbox 1.14.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 7, 2026[Vulnerability] googleapis/mcp-toolbox: Credential Exposure — Danyw24/mcp-radar0 reactions
- Oct 7, 202688 catalog URLs point to GitHub repositories that moved, were renamed, archived or are gone — archestra-ai/archestra0 reactions
- Oct 6, 2026[Vulnerability] googleapis/mcp-toolbox: Authorization Bypass / Information Disclosure — Danyw24/mcp-radar0 reactions
- Sep 25, 2026mcp-toolbox 1.13.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 25, 2026mcp-toolbox 1.13.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 17, 2026mcp-toolbox 1.12.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 17, 2026Security triage review: 2026-09-17 (part 10/10) — flatcar/security-triage0 reactions
- Sep 11, 2026mcp-toolbox 1.11.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Sep 4, 2026x/vulndb: potential Go vuln in github.com/googleapis/mcp-toolbox: GHSA-vwxw-jrg6-9jxv — golang/vulndb0 reactions · 1 comment
- Aug 27, 2026mcp-toolbox 1.10.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Aug 24, 2026x/vulndb: potential Go vuln in github.com/googleapis/mcp-toolbox: GHSA-76g7-m3xw-x9gr — golang/vulndb0 reactions · 2 comments
- Jul 23, 2026Update 147 repository links that have moved 🤖🤖🤖 — punkpeye/awesome-mcp-servers0 reactions · 1 comment
- Jul 19, 2026fix(ci): paginate issue listing in weekly sdk tier assessment — googleapis/mcp-toolbox-sdk-python0 reactions
- Jul 1, 2026x/vulndb: potential Go vuln in github.com/googleapis/mcp-toolbox: GHSA-7pf3-8xx7-rvhf — golang/vulndb0 reactions · 1 comment
- Jun 29, 2026[调研] 20+ 热门 MCP 项目机制清单与 hy-workflow 完美期望态 — voxServalG/hy-workflow-mcp0 reactions
- Jun 25, 2026x/vulndb: potential Go vuln in github.com/googleapis/mcp-toolbox: GHSA-wcpr-6g7x-p44r — golang/vulndb0 reactions · 1 comment
- Jun 24, 2026x/vulndb: potential Go vuln in github.com/googleapis/mcp-toolbox: GHSA-8fcc-w5hv-4gxv — golang/vulndb0 reactions · 1 comment
- Jun 24, 2026x/vulndb: potential Go vuln in github.com/googleapis/mcp-toolbox: GHSA-5gf6-gc35-xjpc — golang/vulndb0 reactions · 1 comment
- Jun 18, 2026Update stateless draft implementation to final `2026-07-28` specification — googleapis/mcp-toolbox-sdk-python0 reactions
- Jun 3, 2026Try a third-party PostgreSQL MCP — jabrena/plinth0 reactions · 2 comments
- May 31, 2026Article freshness: guides/ga4-with-claude.md — watsonrm/rmwcommerce0 reactions
- May 31, 2026Broken links detected (2026-06-14) — awesome-ai-tools/curated-mcp-servers0 reactions
- May 7, 2026Bolt: EXPLAIN/PROFILE plan missing from PULL SUCCESS metadata (breaks Neo4j drivers' summary.Plan()) — ArcadeData/arcadedb0 reactions · 1 comment
- Mar 17, 2026fix(adk): wrap tool execution errors into error output — googleapis/mcp-toolbox-sdk-python0 reactions · 11 comments
On YouTube · 22
- Oct 19, 20263 бесплатных MCP для баз данных: read-only #shorts — ИИ за минуту770 views
- Jul 30, 2026Agent Tooling Is Eating GitHub 📈 #shorts — Coding Is Art445 views
- Jun 10, 2026Conecte seus bancos ao Claude com mcp-toolbox #Claude #Shorts — RepoShots396 views · 1 comment
- Sep 30, 2026Connect AI to Your Database with Google's MCP Toolbox — RepoManiac326 views
- Apr 12, 2026Google's MCP Toolbox for Databases — Maven Tech166 views
17 more on YouTube
- Apr 10, 2026Supercharge Your Database Workflows with MCP Toolbox — Github Signals95 views
- Apr 13, 2026Connect AI agents directly to databases #Shorts — Repo Radar50 views · 1 comment
- Oct 10, 2026What Is MCP? Connect AI Agents to Databases & APIs Safely — CipherVibe36 views
- Oct 15, 2026Don't give your AI agent raw SQL #shorts — Michael Goldenberg34 views
- Sep 26, 2026Let Claude Use Your Files, Git and Database (MCP Setup) — The Agent Workshop33 views · 1 comment
- Oct 14, 2026You Sent One Prompt. Your Agent Gave Up Its Keys, Zenity Says #Shorts — Agent Breach Lab28 views
- Jun 25, 2026Critical AI Tooling CVEs: Patch Agent Workflows #Shorts — dailytechhackglobal14 views
- Jul 31, 2026Google MCP Toolbox Tool Invocation CVE #Shorts — dailytechhackglobal10 views
- Jul 5, 2026Critical Langflow + MCP Toolbox CVEs: Patch AI Tooling Now #Shorts — dailytechhackglobal10 views
- Jul 31, 2026Google MCP Toolbox Tool Invocation CVE #Shorts — dailytechhackglobal9 views
- Oct 14, 2026You Trust Your MCP Server. Your Agent Steers Where It Fetches #Shorts — Agent Breach Lab5 views
- Jul 31, 2026Google MCP Toolbox CVEs: Tool Invocation, SSRF, and OAuth Bypass Fixes — dailytechhackglobal5 views
- Jun 24, 2026Critical AI Tooling Token Risk #Shorts — dailytechhackglobal5 views
- Jun 24, 2026Gemini CLI Critical CVE: Patch AI Workflows Now #Shorts — dailytechhackglobal4 views
- Jul 31, 2026Google MCP Toolbox CVEs: Tool Invocation, SSRF, and OAuth Bypass Fixes — dailytechhackglobal2 views
- Jul 5, 2026Langflow and MCP Toolbox CVEs: Critical AI Tooling Risks Defenders Should Patch — dailytechhackglobal2 views
- Jul 6, 2026Patch containerd and MCP Toolbox: Critical CVEs in Cloud and AI Tooling — dailytechhackglobal1 view
On Bluesky · 5
- Oct 15, 2026mcp-toolbox (⭐️ 16664) MCP Toolbox for Databases is an open source MCP server for databases. #go — @golangoss.bsky.social1 likes and repost
- Aug 15, 2026mcp-toolbox (⭐️ 16179) MCP Toolbox for Databases is an open source MCP server for databases. #go — @golangoss.bsky.social1 likes and repost
- Aug 2, 2026mcp-toolbox (⭐️ 16096) MCP Toolbox for Databases is an open source MCP server for databases. #go — @golangoss.bsky.social1 likes and repost
- Jun 12, 2026mcp-toolbox (⭐️ 15594) MCP Toolbox for Databases is an open source MCP server for databases. #go — @golangoss.bsky.social0 likes and reposts · 1 reply
- May 6, 2026mcp-toolbox (⭐️ 14981) MCP Toolbox for Databases is an open source MCP server for databases. #go — @golangoss.bsky.social0 likes and reposts · 1 reply
On the web · 3
- Oct 22, 2026Cloud Run | MCP Toolbox for Databases — google.com
- Mar 11, 2026feat(bigquery): add maximumBytesBilled to source config ... — google.com
- Aug 25, 2025Add env var for optional fields in prebuilt configs for `cloud- ... — google.com
On Hacker News · 1
- Apr 10, 2026Google: MCP Toolbox2 points · 1 comment
Other versions3 projects use a version of this.
Word for word · 1
- googleapis/genai-toolbox★ 17k100% same
Edited · 0
None found.
Wrote their own version · 2
- Integralist/agent-skills★ 20same name
- tardigrde/agent-skill-eval★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- docsite-link-sweepSkill
- reproduce-bugSkill
- review-prsSkill
- stale-sweepSkill
- triage-issuesSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

