MCP Tool Reference
The Quell connector exposes 8 tools. All tools read from synced reports — never from your local disk.
Tool 1 — list_projects
List all synced Quell projects for your account.
Input: none
Claude uses this when: you ask "what projects does Quell know about?" or refer to a project by an ambiguous name.
Tool 2 — get_prs_report
Get the latest PRS report for a project.
Input:
{ "project_alias": "payments-service" }
Output: full sync payload — PRS, edge case counts, written/scaffolded/flagged items.
Claude uses this when: you ask about PRS, test counts, or overall status.
Tool 3 — get_prs_history
Get PRS trend over time (last N runs).
Input:
{ "project_alias": "payments-service", "last_n_runs": 10 }
Claude uses this when: you ask "is my PRS improving?", "when did we drop below 80?".
Tool 4 — get_written_tests
Get WRITTEN test metadata, optionally filtered by confidence tier.
Input:
{ "project_alias": "payments-service", "tier": "MEDIUM" }
Tier values: HIGH (85 and above), MEDIUM (60–84), LOW (below 60), or omit for all.
Claude uses this when: you ask "which tests should I review?", "show me low-confidence tests".
Tool 5 — get_flagged_items
Get all FLAGGED items with reasons and file:line locations.
Input:
{ "project_alias": "payments-service" }
Claude uses this when: you ask "why can't these be auto-tested?", "what are my blind spots?".
Tool 6 — get_scaffolded_items
Get all SCAFFOLDED stubs with age in days (used for PRS penalty tracking).
Input:
{ "project_alias": "payments-service" }
Claude uses this when: you ask "which stubs have I not finished?", "am I losing PRS points?".
Tool 7 — get_badge_url
Get the SVG badge URL for a project's current PRS.
Input:
{ "project_alias": "payments-service" }
Output:
{
"badge_url": "https://quell.buildsbyshashank.tech/badge/payments-service.svg",
"markdown": "",
"prs": 71,
"tier": "Review Needed"
}
Claude uses this when: you ask "give me the badge for my README".
Tool 8 — reproduce_via_cloud
Trigger quell reproduce via the cloud API. Requires Pro or Team and the quell:reproduce:write OAuth scope.
Input:
{
"project_alias": "payments-service",
"bug_description": "payment of amount=-1 should raise ValueError but doesn't",
"function_signature": "def process_payment(amount: float, currency: str) -> dict:",
"docstring": "Raises: ValueError: if amount <= 0"
}
Only function_signature and docstring are sent to the LLM — never the function body. The generated test still runs all 5 gates server-side before being returned.
Claude uses this when: you paste a bug description and say "write a test for this".
Rate limits
| Tool | Limit |
|---|---|
list_projects, get_prs_report, get_prs_history | 100 req/min |
get_written_tests, get_flagged_items, get_scaffolded_items | 100 req/min |
get_badge_url | 500 req/min |
reproduce_via_cloud | 10 req/min |