Skip to main content
Glama

Contribution Exchange

Server Details

Contribution Exchange MCP: domain discovery, policies, preflight, proposals, and signals.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
SunrisesIllNeverSee/sigrank-app
GitHub Stars
6

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct concept: domain discovery, policy lookup, signal listing/detail, attempt detail, and preflight evaluation. There is no meaningful overlap or ambiguity between any two tools.

Naming Consistency4/5

All tool names share the exchange_ prefix and mostly follow a predictable verb_noun pattern such as discover_domain, get_policy, and list_signals. The one minor deviation is exchange_preflight, which lacks an explicit object but remains clear.

Tool Count5/5

Six tools is well-scoped for a focused read-only discovery and preflight server. Each tool earns its place and none feel redundant.

Completeness2/5

The read-only surface is fairly thorough for discovery, policy, signals, attempts, and preflight, but there is no tool to actually submit a proposal, create a commitment, or authorise an exchange. The descriptions repeatedly reference a real proposal flow that is not exposed, leaving agents unable to complete the core contribution workflow.

Available Tools

6 tools
exchange_discover_domainExchange Discover Domain — Contribution Exchange Profile LookupA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name or HTTPS URL to check (e.g. 'signalaf.com' or 'https://signalaf.com'). Normalized to hostname.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description adds meaningful behavioral guarantees: it is read-only, does not propose/commit/authorize anything, and explicitly discloses HTTPS enforcement, redirect limits, timeouts, and SSRF protections including blocked network targets. This is valuable, non-redundant context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, followed by return contents, safety, and security constraints. Every sentence adds distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, return content, and important behavioral/security constraints, which is strong given the single parameter and supportive annotations. It does not detail the exact response schema or edge cases like what happens when a domain has no profile, but these are not critical for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'domain' parameter is already well described, including normalization to hostname. The description adds no new parameter-level meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Determine whether a domain publishes a Contribution Exchange profile.' It distinguishes itself from the get_* siblings by stating it returns the canonical manifest, policy URLs, signal URLs, and hosting mode, making its discovery role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies this is the entry-point discovery tool for a domain's Exchange profile, and the sibling names (get_policy, get_signal, etc.) suggest follow-up actions. It does not explicitly state when not to use it or name alternatives, but the context is strong enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exchange_get_attemptExchange Get Attempt — Signal Attempt DetailA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
signal_idYesSignal ID.
attempt_idYesAttempt ID.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive behavior, and the description adds significant non-obvious context: visibility enforcement, that verification is Steward-controlled and cannot be self-asserted, and that attempt status is distinct from exchange state. This goes well beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and every sentence adds meaningful information. There is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read operation with rich annotations, the description covers what the tool returns, when data may be absent, access restrictions, and domain-specific caveats. No critical information an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% because both signal_id and attempt_id are documented as IDs with length constraints. The description does not add extra parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get detail for a signal attempt.' It further distinguishes the target by noting 'Attempt status is NOT an exchange state' and by focusing on 'verification result,' which separates it from sibling tools like exchange_get_signal and exchange_get_policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies this is the read-only way to retrieve attempt detail and provides important access context ('actors may only read their own private attempts'), but it does not explicitly name alternatives or state when to use another sibling tool. Usage guidance is present but mostly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exchange_get_policyExchange Get Policy — Domain Exchange PolicyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to fetch policy for.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds meaningful behavioral context: it returns authority ceilings, consideration limits, human-review requirements, and supported behavior, and it distinguishes a missing policy from an unavailable service. This helps the agent interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences, with the primary verb and resource front-loaded. Every sentence adds useful information and there is no repetition of schema or annotation details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description enumerates the returned policy dimensions and error-relevant behavior. Combined with the annotations, this gives an agent enough to call the tool and interpret its result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the only parameter, 'domain', with 100% coverage. The description adds some context with 'domain or its delegated Steward' but provides no new format or value constraints, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Fetch'), a clear resource ('canonical Contribution Exchange policy'), and the valid targets ('a domain or its delegated Steward'). It also lists what the tool returns, which distinguishes it from sibling tools like exchange_preflight and exchange_get_signal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that the tool is read-only and does not perform preflight evaluation, which tells an agent when not to use it. It does not explicitly name sibling alternatives, so it stops short of fully explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exchange_get_signalExchange Get Signal — Signal Detail by IDA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
signal_idYesSignal ID.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, and non-destructive behavior, but the description adds domain-specific transparency by listing what the response includes and by explicitly stating that a signal does NOT create a Commitment, authorize execution, or guarantee payment. This meaningfully goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is front-loaded with the core purpose, and the final sentence provides valuable behavioral context. The standalone 'Read-only.' sentence is slightly redundant with the readOnlyHint annotation, so not every sentence fully earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the components of the returned signal and by clarifying what the signal does not do. For a single-parameter read-only getter, the remaining operational context is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents signal_id as 'Signal ID.' The tool description adds Exchange Signal context, but no additional parameter semantics or format guidance beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb ('Get'), resource ('Exchange Signal'), and access pattern ('by ID'), clearly distinguishing this from sibling exchange_list_signals. The title reinforces the same purpose with 'Signal Detail by ID'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: use when you need the full detail of a single signal known by ID. It does not explicitly mention alternatives such as exchange_list_signals, so when-not-to-use guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exchange_list_signalsExchange List Signals — Domain-Published Work SignalsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by signal type.
labelNoFilter by label.
limitNoMaximum signals to return (1-100, default 50).
cursorNoPagination cursor from a previous response.
domainNoFilter by publisher domain.
statusNoFilter by signal status.
expires_beforeNoISO 8601 timestamp — only signals expiring before this.
published_afterNoISO 8601 timestamp — only signals published after this.
verification_modeNoFilter by verification mode.
accepting_attemptsNoOnly return signals currently accepting attempts.
consideration_modeNoFilter by consideration mode.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds crucial behavioral context: it explicitly warns that signal status is distinct from exchange status and that a signal does not create a Commitment or authorize execution. It also discloses the key returned attributes (canonical URLs, revision, revision hash, status), which is valuable since there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the action, and every sentence earns its place: scope, safety, return contents, and the important status-semantics caveat. No filler or redundant restatement of the schema is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 11 parameters and no output schema, the description covers the essential scope, return keys, and a critical semantic warning about signal vs exchange status. It relies somewhat on the HTTP API reference for exact filter behavior, but the schema already documents all parameters, so an agent has enough context to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented in the input schema. The description adds only a general statement that the same filters and pagination as the HTTP API are supported, which does not deepen the meaning of any specific parameter beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List'), identifies the exact resource ('domain-published Exchange Signals'), and enumerates the signal types. It clearly differentiates this listing operation from the sibling get/discover/preflight tools, especially because it emphasizes the list scope and the returned fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for listing signals and notes that it supports filters and pagination, but it does not explicitly contrast alternatives such as exchange_get_signal for a single signal. The usage context is present but no when-not-to-use or sibling routing guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exchange_preflightExchange Preflight — Advisory Proposal Policy EvaluationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesTarget domain for the proposed contribution.
categoryYesContribution category (e.g. 'technical', 'accessibility', 'documentation', 'research').
confidenceNoConfidence in the observation (score 0-1 and basis).
considerationNoRequested consideration (cash, royalty, reciprocal_access, attribution, referral, other). Advertised consideration is NOT binding until accepted through Commitment.
required_authorizationNoAuthority requested (inspect_public, sandbox_test, repository_write, private_data, credential_access, production_modify, deploy, penetration_testing).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even with readOnlyHint and idempotentHint annotations already present, the description adds meaningful behavioral detail: 'performs no proposal insertion, notification, event creation, or state transition' and notes that results are 'advisory and time-bound.' This goes beyond what annotations convey and sets accurate expectations about side effects and reliability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action in the first sentence and important caveats following. The 'Uses the same evaluateProposal function' sentence adds credibility but is somewhat optional, and the READ-ONLY phrasing slightly overlaps with the explicit no-state-transition list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description still communicates the main outcome classes and clarifies side effects and non-guarantees. It does not specify the exact response shape or fields, but an agent has enough context to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter. The tool description adds no parameter-level meaning beyond what the schema provides. For fully covered schemas, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Evaluate a proposed contribution against the same policy logic used by the real proposal flow.' It also lists the distinct possible results (auto-engaged, accepted, escalated, rejected), making it easy to distinguish from sibling getter/discovery tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly frames this as an advisory, pre-flight check and explicitly warns that favorable results do not guarantee commitment, authorization, payment, or execution. It does not name specific alternative tools for when a non-preflight action is needed, but the sibling tool names and the READ-ONLY framing make the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedexchange_discover_domain
    • First observedexchange_get_attempt
    • First observedexchange_get_policy
    • First observedexchange_get_signal
    • First observedexchange_list_signals
    • First observedexchange_preflight

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables contributing, challenging, discovering, verifying, and querying contestable public records from AI coding tools via MCP.
    6
    28 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables humans and AI agents to share canonical, versioned knowledge through MCP, with auditable provenance, review workflows, and reconciliation.
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables AI coding agents to coordinate by sharing environment snapshots and diffs, surfacing overlapping work, exchanging debug-session messages, handing off tasks, and enforcing policy preflight checks.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.