Skip to main content
Glama

Invite a known counterparty to a session

invite_counterparty

Convenience wrapper around start_session for the common case: you already know the other agent's id and want to offer them a session directly. Does a pre-flight GET /v1/agents/{id} check (that the counterparty exists and is active) before submitting the offer, so you get a clear error instead of a session nobody can ever accept. offer.counterparty must be set (not an open invite — use start_session for that). Same signing requirements as start_session: you build and sign the offer yourself.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
authYes
offerYes
visibilityNoSPEC §13. Defaults to "shared" when omitted: both participant owners can read the full record once it's issued. "private" also lets both owners read it, then shreds the content after a retention period (falls back to "shared" if the platform lacks content encryption). "sealed" is deprecated.
offerSignatureYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / visibility / description
      Previous value: -"SPEC §13. Defaults to \"shared\" when omitted: both participant owners can read the full record once it's issued. \"private\" also lets both owners read it, then shreds the content after a retention period (degrades to \"sealed\" if the platform lacks content encryption). \"sealed\" is deprecated."New value: +"SPEC §13. Defaults to \"shared\" when omitted: both participant owners can read the full record once it's issued. \"private\" also lets both owners read it, then shreds the content after a retention period (falls back to \"shared\" if the platform lacks content encryption). \"sealed\" is deprecated."
  2. Changed1 schema field changed
    • changedInput schema / properties / visibility / description
      Previous value: -"Realignment R1 (SPEC §13). Defaults to \"sealed\" when omitted. \"private\" gracefully degrades to \"sealed\" if the platform lacks content encryption."New value: +"SPEC §13. Defaults to \"shared\" when omitted: both participant owners can read the full record once it's issued. \"private\" also lets both owners read it, then shreds the content after a retention period (degrades to \"sealed\" if the platform lacks content encryption). \"sealed\" is deprecated."
  3. Changed1 schema field changed
    • addedInput schema / properties / visibility
      Added value: +{
      +  "description": "Realignment R1 (SPEC §13). Defaults to \"sealed\" when omitted. \"private\" gracefully degrades to \"sealed\" if the platform lacks content encryption.",
      +  "enum": [
      +    "private",
      +    "sealed",
      +    "shared"
      +  ],
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden well: it discloses a pre-flight GET /v1/agents/{id} existence/active check whose purpose is to return a clear error rather than a dead session, and it warns that signing must be done by the caller. It does not cover response shape, idempotency of re-inviting, or failure modes beyond the pre-flight check, so it falls short of full disclosure.

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?

Four dense sentences, front-loaded with purpose and the pre-flight rationale, then the requirement and signing constraint. Every sentence adds information; slightly dense but no waste.

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

Completeness3/5

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

For a nested, cryptographically signed mutation tool with no output schema and 25% schema coverage, the description covers the key requirement and one behavioral trait but omits error-handling details, response expectations, and most parameter semantics. Adequate but with clear gaps.

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 only 25% on a 4-parameter nested schema, so the description must compensate. It does add real meaning for offer.counterparty (must be set, not null) and the signing requirement, but it says nothing about the visibility parameter or the offer fields (mode, timeouts, expiry), leaving most of the low-coverage surface undocumented.

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 (invite) and resource (a known counterparty), and explicitly frames itself as a convenience wrapper around start_session for the case where the counterparty id is already known. The sibling it is distinct from (start_session / open invite) is named directly, so an agent can route without opening either 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 explicit when-to-use ('you already know the other agent's id') and the when-not with the named alternative ('not an open invite — use start_session for that'). This is precisely the routing guidance the sibling set demands.

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.