Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,556Letters: 14Defects: 1,331counted 1 min ago
teppi

Server definition

Hash
sha256:8af943bfb7bfedfe43d134cbb2177acfbf9a9328a51bb89e197224317f227734
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": "Contribution Exchange MCP — discover and act on Contribution Exchange opportunities. Read-only tools: exchange_discover_domain (check if a domain has an Exchange profile), exchange_get_policy (fetch domain policy), exchange_preflight (advisory policy evaluation — no state change), exchange_list_signals (domain-published work signals), exchange_get_signal, exchange_get_attempt. Mutation tools (require auth): exchange_propose (unsolicited proposal — creates a non-binding proposal, NOT a Commitment), exchange_create_attempt, exchange_submit_attempt, exchange_create_proposal_from_attempt. IMPORTANT: No Exchange tool creates a Commitment, authorization, or payment obligation. Signals and proposals are invitational, not binding. Bilateral terms-hash acceptance is required for Commitment formation.", "tools": [ { "description": "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).", "inputSchema": { "additionalProperties": false, "properties": { "domain": { "description": "Domain name or HTTPS URL to check (e.g. 'signalaf.com' or 'https://signalaf.com'). Normalized to hostname.", "maxLength": 253, "minLength": 3, "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "exchange_discover_domain", "outputSchema": null }, { "description": "Get detail for a signal attempt. Read-only. Enforces attempt visibility — actors may only read their own private attempts. Returns attempt status and verification result if available. Attempt status is NOT an exchange state. Verification is Steward-controlled and cannot be self-asserted.", "inputSchema": { "additionalProperties": false, "properties": { "attempt_id": { "description": "Attempt ID.", "maxLength": 200, "minLength": 1, "type": "string" }, "signal_id": { "description": "Signal ID.", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "signal_id", "attempt_id" ], "type": "object" }, "name": "exchange_get_attempt", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "domain": { "description": "Domain name to fetch policy for.", "maxLength": 253, "minLength": 3, "type": "string" } }, "required": [ "domain" ], "type": "object" }, "name": "exchange_get_policy", "outputSchema": null }, { "description": "Get full detail for a single Exchange Signal by ID. Read-only. Returns the complete signal including constraints, participation rules, verification configuration, consideration declaration, and follow-on behavior. A signal does NOT create a Commitment, authorize execution, or guarantee payment.", "inputSchema": { "additionalProperties": false, "properties": { "signal_id": { "description": "Signal ID.", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "signal_id" ], "type": "object" }, "name": "exchange_get_signal", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "accepting_attempts": { "description": "Only return signals currently accepting attempts.", "type": "boolean" }, "consideration_mode": { "description": "Filter by consideration mode.", "enum": [ "fixed", "maximum", "negotiable" ], "type": "string" }, "cursor": { "description": "Pagination cursor from a previous response.", "type": "string" }, "domain": { "description": "Filter by publisher domain.", "type": "string" }, "expires_before": { "description": "ISO 8601 timestamp — only signals expiring before this.", "type": "string" }, "label": { "description": "Filter by label.", "type": "string" }, "limit": { "default": 50, "description": "Maximum signals to return (1-100, default 50).", "maximum": 100, "minimum": 1, "type": "integer" }, "published_after": { "description": "ISO 8601 timestamp — only signals published after this.", "type": "string" }, "status": { "description": "Filter by signal status.", "enum": [ "published", "paused", "closed", "expired", "withdrawn" ], "type": "string" }, "type": { "description": "Filter by signal type.", "enum": [ "problem", "request", "challenge", "bounty", "verification", "discovery", "experiment" ], "type": "string" }, "verification_mode": { "description": "Filter by verification mode.", "enum": [ "deterministic", "hybrid", "manual" ], "type": "string" } }, "type": "object" }, "name": "exchange_list_signals", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "category": { "description": "Contribution category (e.g. 'technical', 'accessibility', 'documentation', 'research').", "type": "string" }, "confidence": { "description": "Confidence in the observation (score 0-1 and basis).", "properties": { "basis": { "type": "string" }, "score": { "maximum": 1, "minimum": 0, "type": "number" } }, "type": "object" }, "consideration": { "description": "Requested consideration (cash, royalty, reciprocal_access, attribution, referral, other). Advertised consideration is NOT binding until accepted through Commitment.", "items": { "type": "object" }, "type": "array" }, "domain": { "description": "Target domain for the proposed contribution.", "maxLength": 253, "minLength": 3, "type": "string" }, "required_authorization": { "description": "Authority requested (inspect_public, sandbox_test, repository_write, private_data, credential_access, production_modify, deploy, penetration_testing).", "properties": { "credential_access": { "type": "boolean" }, "deploy": { "type": "boolean" }, "inspect_public": { "type": "boolean" }, "other": { "items": { "type": "string" }, "type": "array" }, "penetration_testing": { "type": "boolean" }, "private_data": { "type": "boolean" }, "production_modify": { "type": "boolean" }, "repository_read": { "type": "boolean" }, "repository_write": { "type": "boolean" }, "sandbox_test": { "type": "boolean" } }, "type": "object" } }, "required": [ "domain", "category" ], "type": "object" }, "name": "exchange_preflight", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8af943bfb7bfedfe43d134cbb2177acfbf9a9328a51bb89e197224317f227734 | sha256sum