Skip to main content
Glama

settlement_proposal_propose_cross_tenant

Record a payment obligation against a KYB-verified partner tenant's settlement_proposals — the record-don't-move on-ramp: this writes the row only, no money moves until a later settlement-rails door executes it. amount_cents is a nonzero integer CENTS (positive = you owe them, negative = a refund/reversal record) and currency must be a 3-letter code. Requires the payee's cross_tenant_settlement consent grant and both sides KYB-approved; payee-side failures refuse identically to block probing, but your OWN unapproved KYB answers distinctly. Your tenant is injected as payer_tenant_id and cannot be spoofed. NEXT: settlement_proposal_accept moves it to accepted on the payee side.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "to_tenant_id": "<to_tenant_id>"
    },
    "name": "settlement_proposal_propose_cross_tenant"
  }
}

Input Schema

NameRequiredDescriptionDefault
statusNo
currencyNo
accepted_atNo
descriptionNo
amount_centsNo
to_tenant_idYesThe payee tenant id — must be another tenant, never your own. The payee must hold an active cross_tenant_settlement consent grant and both tenants must be KYB-approved, or the door refuses uniformly without revealing which condition failed.
payer_tenant_idNo
consent_grant_idNo
related_entity_idNo
related_entity_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: explains that no money moves until a later settlement-rails door executes, documents the sign convention of amount_cents (positive = you owe, negative = refund/reversal), and discloses the failure model — payee-side failures refuse uniformly to block probing while your own unapproved KYB answers distinctly. Also states payer_tenant_id is injected and cannot be spoofed, which the annotations never cover.

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?

Front-loads the verb, resource and the 'record-don't-move' distinction, then stacks prerequisites, unit/sign semantics, failure behavior and the next step. Dense but every clause adds information an agent would otherwise have to guess; no filler sentences.

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 10-parameter, low-schema-coverage mutation with no output schema, the description covers the critical semantics and failure modes thoroughly. The gaps are secondary: the status enum's meaning, accepted_at, and the related_entity linkage are unexplained, and the caller gets no hint about what the created proposal record returns.

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?

With only 10% schema description coverage, the description carries the burden and does real work on the high-stakes parameters: amount_cents must be a nonzero integer in cents with sign semantics, currency must be a 3-letter code, payer_tenant_id is server-injected, and to_tenant_id must be another tenant holding an active consent grant. It leaves status, accepted_at, related_entity_id/type and description undocumented, so the compensation is strong but incomplete.

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 — record a payment obligation against a partner tenant's settlement_proposals — and immediately differentiates its behavior from the sibling mutator by framing it as the 'record-don't-move on-ramp' that writes the row only. An agent can distinguish it from settlement_proposal_accept/list/read without opening the schema.

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?

Gives clear context: requires the payee's cross_tenant_settlement consent grant and both sides KYB-approved, and names the follow-on tool (settlement_proposal_accept moves it to accepted on the payee side). It stops short of an explicit 'use X instead when' branch, but the sequencing guidance is unusually concrete.

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