MCP server for the SigRank leaderboard and Contribution Exchange platform. Exposes tools for searching operators, fetching leaderboard data, managing contribution proposals, and handling exchange signals and attempts.
SigRank MCP exposes 14 tools with generally clear naming (verb_noun pattern) and comprehensive descriptions (avg 180 chars). Most tools have well-structured JSON schemas with typed parameters and descriptions. However, several tools lack output schema documentation, and some parameter descriptions could be more prescriptive about constraints. Tool composition is strong, tools chain well (e.g., search_operators → get_operator). Security is well-handled: no credentials in parameters, read-only tools properly marked. Main gaps: output schemas not formally documented in source, some enum constraints missing (e.g., exchange_list_signals filters), and error handling guidance is implicit rather than explicit.
Create a new attempt on a signal. Requires the signal to be accepting attempts. Returns the attempt ID, state, and signal revision. Does NOT submit the attempt or create a Commitment.
Create a Contribution Proposal from a completed attempt. Transitions the attempt to 'proposed' state and creates a non-binding proposal. Does NOT create a Commitment, authorization, or payment obligation. Requires the attempt to be in 'submitted' state.
Determine whether a domain publishes a Contribution Exchange profile. Returns the canonical Exchange manifest, policy URLs, signal URLs, and whether the domain is self-hosted or delegated to a Steward. Read-only — does not propose, commit, or authorize anything. Enforces HTTPS, redirect limits, timeouts, and SSRF protections (blocks loopback, link-local, private-network, and metadata-service targets).
Fetch a single attempt by ID. Returns the attempt state, signal revision it references, actor identity, and verification result if available. Read-only.
Fetch the canonical Contribution Exchange policy for a domain or its delegated Steward. Returns authority ceilings, consideration limits, human-review requirements, and supported behavior. Read-only — does not mutate state or perform preflight evaluation. Distinguishes a missing policy from an unavailable service.
Output schemas not formally documented in source code. Tools return structured data but LLMs cannot see field definitions, types, or required fields. This forces agents to infer response structure from descriptions alone.
exchange_list_signals accepts string enums (type, status, verification_mode, consideration_mode) but descriptions do not explicitly list valid values. LLMs may hallucinate invalid enum values.
Error handling guidance is implicit. Tools like exchange_propose and exchange_preflight do not document what errors are retryable, user-fixable, or fatal. No recovery hints provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Fetch a single Exchange Signal by ID. Returns the canonical signal document, current revision, revision hash, and status. Read-only.
List domain-published Exchange Signals (problems, requests, challenges, bounties, verification tasks, discoveries, experiments). Read-only. Returns canonical URLs, signal revision, revision hash, and status. Signal status is DISTINCT from exchange status — a signal does not create a Commitment or authorize execution. Supports the same filters and pagination as the HTTP API.
Evaluate a proposed contribution against the same policy logic used by the real proposal flow. Returns whether the proposal is likely to be auto-engaged, accepted for review, escalated to a human, or rejected as invalid. READ-ONLY: performs no proposal insertion, notification, event creation, or state transition. The result is advisory and time-bound — a favorable preflight does NOT guarantee engagement, Commitment, authorization, payment, or execution. Uses the same evaluateProposal function as the canonical proposal route.
Submit an unsolicited Contribution Proposal through the existing Exchange flow. Creates a NON-BINDING proposal in state 'proposed'. Does NOT create a Commitment, authorization, or payment obligation. The domain agent evaluates the proposal against policy and may auto-engage, escalate to a human, or decline. Commitment requires separate bilateral acceptance of byte-identical terms. Requires an idempotency key — retries with the same key return the original result. Preserves unsolicited-origin lineage.
Submit a completed attempt for verification. Transitions the attempt to 'submitted' state. Does NOT create a Commitment or authorize execution. The signal publisher evaluates the submission against the verification criteria and may accept, reject, or request revision.
Fetch the current SigRank leaderboard ranked by Yield (token-cascade efficiency). Returns top operators with metrics.
Get SigRank scoring methodology — the Yield formula, metric definitions, and how operators are evaluated.
Get detailed stats for a specific SigRank operator by codename or display name, including Yield, archetype, class tier, and history.
Search the SigRank leaderboard for operators by name, platform, or metric. Returns ranked operators with Yield, class tier, and platform.
get_methodology has no input parameters but description does not explain what data structure is returned. Output schema is missing.
exchange_propose and exchange_create_attempt support idempotency but do not document retry semantics or what constitutes 'same content' for idempotency key matching.