Skip to main content
Glama

Cape Partners Exchange

Progress a candidate (supervised engagement request)

progress_candidate
Destructive

Use this when the user wants to ACT on a counterparty the exchange has already shown them: it raises a supervised ENGAGEMENT REQUEST for that candidate — the introduction — which is the step that turns a match into a conversation, and which nothing else in this app can take. The candidate must be the exact name of one counterparty from the list the exchange handed THIS participant, read back with get_exchange_answer; the exchange validates it against its live list and refuses anything else, so never invent a name and never name a firm found elsewhere. It raises a request: it does not select, award or commit. The call is staged: a dry run sends nothing, and the confirmed call is bound to the exact payload that dry run returned. Call once with dry_run=true to get the exact payload and a confirmation_token; call again with the same arguments plus that token to send. A token that does not match the payload is refused and nothing is sent.

Input Schema

NameRequiredDescriptionDefault
keyYesThe msgid / answer key of your accepted declaration.
noteNoOptional note in the user's own words, passed to the desk.
dry_runNotrue returns the payload and a confirmation_token, and raises nothing.
candidateYesThe EXACT name of one candidate the exchange handed you. Never invented, never a name from elsewhere.
request_idYesYour own idempotency key for this request.
confirmation_tokenNoThe token from the dry run, for the confirmed send.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing server-side validation of the candidate against a live list, refusal of unknown names, and the two-phase staged call where a mismatched token sends nothing. It does not, however, say whether a raised request can be withdrawn or what the confirmed call returns, which matters for a destructiveHint=true mutation.

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?

Front-loaded with the action and the prerequisite, and every clause carries information. It is dense with long multi-clause sentences and restates the 'never invent a name' rule already in the schema, which costs some crispness.

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 6-parameter, no-output-schema mutation, the description covers the trigger, validation, refusal semantics, and the dry-run/confirm protocol. The remaining gap is the outcome of a successful confirmed call — nothing describes what the agent should report back after sending.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns more by explaining the causal relationship between parameters — dry_run produces the payload and confirmation_token, and the confirmed call is bound to that exact payload — plus the sourcing rule for 'candidate' and the meaning of 'key' as an accepted declaration.

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?

States a concrete verb+resource (raises a supervised engagement request for a candidate) and explicitly scopes it against everything else: 'the step that turns a match into a conversation, and which nothing else in this app can take.' An agent can distinguish it from siblings like find_matches or reply_to_exchange without opening a schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('when the user wants to ACT on a counterparty the exchange has already shown them'), names the upstream dependency (read the name back with get_exchange_answer), and states exclusions ('it does not select, award or commit'). The alternative path for discovery (find_matches) is implied by the 'already shown them' framing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources