Skip to main content
Glama

Swap cards with a booth

booth_connect
Idempotent

Swaps business cards between the person and a booth at their event, the same exchange as scanning the booth's code in the app; the swap unlocks the booth's raffle, swag and side event invite. Pass eventId and the boothId from an events_booths row. Needs a personal connector token and a seat at the event. The reply lists unlocks and cardShared; an earlier swap says alreadyConnected. Two steps: without confirm it returns a confirmToken and shares nothing; with confirm true and that token it shares. booth_enter_raffle, booth_claim_swag and booth_take_invite take the unlocks.

Input Schema

NameRequiredDescriptionDefault
boothIdYesThe booth id from an events_booths row, as that row gives it.
confirmNoAbsent on the first call, which shares nothing. true, together with confirmToken, swaps the cards.
eventIdYesThe event id or public slug the booth is at.
confirmTokenNoThe token the first call returned. Needed when confirm is true.

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
editNo
boothNo
errorNo
messageNo
previewNo
unlocksNo
servedByNo
connectedNo
cardSharedNo
confirmTokenNo
alreadyConnectedNo
expiresInSecondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / boothId / description
      Previous value: -"The booth id from an events_booths or events_booth_detail row, as that row gives it."New value: +"The booth id from an events_booths row, as that row gives it."
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the two-step confirm contract: the first call shares nothing and returns a confirmToken, and only confirm=true with that token performs the swap. It also documents the alreadyConnected case for repeat swaps and names the response fields (unlocks, cardShared), which the annotations do not cover.

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 purpose and the app-equivalent analogy, then prerequisites, then the response contract, then routing. It is dense and clause-heavy in places (the unlock sentence is a run-on), but no sentence is filler.

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?

Covers the full picture an agent needs for a mutating, two-phase tool: auth requirements, ID provenance, the confirm handshake, the repeat-call outcome, and where the returned unlocks are consumed. Even though an output schema exists, the named response fields help the agent branch on results.

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, but the description adds real ordering semantics: it explains that confirmToken is the value returned by the first call and that confirm must be paired with it. That is information not present in the field descriptions, which only restate the same relationship more loosely.

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 specific verb and resource: swaps business cards between the person and a booth at their event, and anchors it to a known user action (scanning the booth's code in the app). It is clearly distinct from the sibling booth_* tools, which it names as consumers of the resulting unlocks.

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?

Explicitly states prerequisites (personal connector token, a seat at the event), the source of the IDs (an events_booths row), and routes the agent onward: booth_enter_raffle, booth_claim_swag and booth_take_invite take the unlocks. It also distinguishes the two call phases, so the agent knows exactly when to make each call.

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