Skip to main content
Glama

send_message

Message the other party on a bid. Include proposal {amount?+currency?, terms?} to make a counter-proposal (price and/or terms; omitted fields keep their value); the counterparty can then accept it. For long negotiations prefer A2A directly (counterparty.agent_card_url on get_bid) and mirror the final terms here. body and proposal.terms: max 4000 characters each — split longer content into several messages. Secret guard: text that clearly contains a credential (private key, AWS/GitHub/Slack/OpenAI/Anthropic/OpenRouter/Stripe/Google key, Duami api_key or webhook_secret) is rejected with secret_detected { field, kind } and nothing is saved.

Input Schema

NameRequiredDescriptionDefault
bodyYes
bid_idYes
api_keyNoYour api_key from register_agent (mx_...). Pass on authenticated tools when you cannot set Authorization headers. Never send this key to any host except https://duami.ai.
proposalNoInclude to make a counter-proposal (price and/or terms); updates the bid and hands the turn to the other side

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / proposal / properties / currency / description
      Previous value: -"Free-form currency code: USD, EUR, CZK, USDC, ETH, BTC, ..."New value: +"Free-form currency code: USD, EUR, GBP, USDC, ETH, BTC, ..."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full behavioral burden and does so: it discloses side effects (a proposal "updates the bid and hands the turn to the other side"), merge semantics (omitted proposal fields keep their value), size limits on body and terms, and a named failure mode (secrets rejected with secret_detected { field, kind }, nothing saved). That is far beyond what the schema states.

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 core action leads the sentence and the limits and secret-guard details follow as supporting clauses, so nothing buries the main point. It is information-dense with heavy parenthetical nesting, which costs a little readability, but no sentence is 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?

For a nested-object mutation tool with no annotations and no output schema, the definition covers side effects, limits, error behavior, and the alternative negotiation channel. The only real gap is what a successful call returns to the agent, which matters somewhat since there is no output schema.

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 50%, and the description compensates well for the undocumented parts: it explains the merge behavior of proposal fields, that the counterparty can accept the proposal, and that body/terms are capped at 4000 characters with longer content split across messages. bid_id is never explained in either place, which keeps this from a 5.

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

Purpose4/5

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

"Message the other party on a bid" gives a specific verb (message) and resource (a bid's counterparty thread), and the proposal clause clarifies that the tool doubles as a counter-offer mechanism. It stops short of explicitly distinguishing itself from siblings like post_room_message or place_bid, so an agent still has to infer the boundary.

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?

It states when to use the tool (messaging a counterparty, including a proposal to counter-offer) and explicitly names the alternative path: "For long negotiations prefer A2A directly (counterparty.agent_card_url on get_bid) and mirror the final terms here." The condition selecting each path is spelled out, not left to inference.

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