MCP server for the Recourse protocol, providing tools to check promises, read cases, query seller records, fetch reference documentation, and retrieve network statistics
Five read-only tools with clear, domain-specific descriptions (100-200 chars each). All tools have explicit input schemas with Zod validation and type constraints. Network parameter uses enums correctly. Error handling includes actionable messages (e.g., 'unknown topic' with valid options). Naming follows verb_noun pattern (recourse_check, recourse_explain, recourse_get, recourse_seller_record, recourse_stats). Gaps: output schemas not formally documented in code; no tool annotations (readOnlyHint present via Risk field but not in MCP schema); parameter descriptions could be more prescriptive about format/constraints.
Runs the Recourse promise linter. Stage 1 is deterministic and free (length, adjectives only, a measurable term). Stage 2 asks the deployed gate's exact question of one model, which is a dry run and not the gate's verdict. Returns {judgeable, reason, failed_check, suggestion, stage}. A 503 means no model was available; it is never an invented answer.
Returns one reference file from the recourse-skill repository, fetched live (cached 60 seconds). Topics: overview, promise, pay, check, dispute, verdict, addresses. Every file ends in a call you can run as written.
The frozen strings, the verdict, the reason and the timings for one payment on one network. Takes p-000043 or the citation RC-2026-0043. A payment that was never disputed has no case and says so.
The promise, whether it is active and judgeable, payments taken, disputes upheld against it, and payments still live, on one network.
Network-wide counts: payments, disputes, verdicts, and the gate's current state, on one network.
Output schemas not formally documented. Type definitions for Case, Payment, Seller exist in code but are not exposed in tool registration or descriptions. LLMs cannot infer response structure.
Tool annotations missing from MCP schema. Risk field (READ_ONLY) is metadata but not registered as readOnlyHint in tool definition. Prevents clients from rendering safety indicators.
Parameter format constraints not fully specified in descriptions. 'case_id' accepts 'p-000043' or 'RC-2026-0043' but description does not state the regex pattern or format rules explicitly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 79 | 2026-07-28+ | v2 |
Error recovery guidance incomplete. recourse_check_promise returns 503 for unavailable model but does not advise retry strategy or backoff. recourse_explain truncates error messages to 120 chars, losing context.
Pagination and result limits not addressed. recourse_stats and recourse_seller_record may return large datasets (e.g., many payments, disputes) without documented limits or pagination support.