Skip to main content
Glama
ShellFrameAI

AgentSecure Community

Official

agentsecure.read_message

Retrieve and acknowledge a local Mesh message after listing the inbox by message_id and matching agent_id; returns read status and read_at while the body remains redacted.

Instructions

Retrieve and acknowledge one local Mesh message after listing the inbox. Requires agent_id to match the record's recipient; an unknown ID or a different recipient causes an error. Returns the message record with status=read and read_at; the first read updates local state and audit. Re-reading returns the same acknowledged record. Body remains [redacted], with only body_summary/body_sha256 available; this does not recover original text. Use agentsecure.list_messages to inspect without marking read. The recipient check compares caller-supplied IDs, not authenticated identities.

Input Schema

NameRequiredDescriptionDefault
agent_idYesNon-empty Mesh agent ID, e.g. backend-agent. Pass this session's AGENTSECURE_AGENT_ID value when set; it is not read automatically. IDs are caller-supplied local labels, not authentication credentials.
message_idYesExact message_id returned by list_messages or send_message. Unknown IDs cause an error.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / agent_id / description
      Added value: +"Non-empty Mesh agent ID, e.g. backend-agent. Pass this session's AGENTSECURE_AGENT_ID value when set; it is not read automatically. IDs are caller-supplied local labels, not authentication credentials."
    • addedInput schema / properties / message_id / description
      Added value: +"Exact message_id returned by list_messages or send_message. Unknown IDs cause an error."
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the recipient-match requirement, error conditions, local state plus audit update on first read, idempotent re-reads, redacted body behavior, and the critical caveat that the recipient check compares caller-supplied IDs rather than authenticated identities.

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?

The description is dense and front-loaded: purpose first, then prerequisites, then return/idempotency semantics, then redaction caveat, then the alternative tool. Every sentence adds distinct information.

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?

For a two-parameter mutation tool with no annotations and no output schema, the description covers everything an agent needs: usage context, error behavior, return shape (status/read_at), idempotency, redaction constraints, and the audit implication.

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 would be 3. The description adds value beyond the schema by stating that agent_id must match the record's recipient and by reinforcing that the check is against caller-supplied labels, not authenticated identities.

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 ('Retrieve and acknowledge one local Mesh message') plus the scope ('after listing the inbox') and the side effect (acknowledgement). This clearly distinguishes it from the read-only sibling list_messages.

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 tells the agent to use agentsecure.list_messages to inspect without marking read, and describes the prerequisite of listing the inbox. The alternative and the condition that selects it are both stated.

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