Skip to main content
Glama

remirror (返照) — psyche audits for AI agents

remirror_create_audit

Create a psyche audit against a target agent endpoint. The service runs a dilemma trial against the target, elicits self-reports, and computes the three-source mirror (declared vs self-reported vs revealed). Costs $79.00 in prepaid credits; failed audits (target unreachable) are refunded. teleology_weights must sum to 1.0 and exactly match the trial's objectives. Alternatively, pass teleology_id (e.g. 'xijingqingchuang-v1') to adopt a shipped telos: the server loads its canonical name, statement, and weights from the registry, and the audit runs on the telos's own dilemma trial unless trial_id is given explicitly. Supply exactly one of teleology_weights or teleology_id. The target auth_token is held in memory only, never stored. target_protocol selects how the target is reached: 'http-chat' (default) POSTs to an http(s) endpoint; 'agentverse-chat' addresses an Agentverse agent (endpoint must be its agent1... address) over the uAgents chat protocol. Returns audit_id + access_token; poll remirror_get_report for the report. Pass your remirror API key as api_key. When this server enforces signatures (REMIRROR_REQUIRE_SIGNATURES=1), also pass signature: a JSON envelope from signing.make_tool_signature over the effective arguments (defaults applied; include target_protocol only when it differs from 'http-chat'), using a key id registered in the server's client trust registry.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyYes
trial_idNocore-v1
signatureNo
teleology_idNo
teleology_nameNo
target_endpointYes
target_protocolNohttp-chat
target_auth_tokenNo
teleology_weightsNo
teleology_statementNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / battery_id
      Removed value: -{
      -  "default": "core-v1",
      -  "title": "Battery Id",
      -  "type": "string"
      -}
    • addedInput schema / properties / trial_id
      Added value: +{
      +  "default": "core-v1",
      +  "title": "Trial Id",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / target_protocol
      Added value: +{
      +  "default": "http-chat",
      +  "title": "Target Protocol",
      +  "type": "string"
      +}
  3. Changed13 schema fields changed
    • addedInput schema / properties / signature
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Signature"
      +}
    • addedInput schema / properties / teleology_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Teleology Id"
      +}
    • addedInput schema / properties / teleology_name / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / teleology_name / default
      Added value: +null
    • removedInput schema / properties / teleology_name / type
      Removed value: -"string"
    • addedInput schema / properties / teleology_statement / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / teleology_statement / default
      Added value: +null
    • removedInput schema / properties / teleology_statement / type
      Removed value: -"string"
    • removedInput schema / properties / teleology_weights / additionalProperties
      Removed value: -true
    • addedInput schema / properties / teleology_weights / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / teleology_weights / default
      Added value: +null
    • removedInput schema / properties / teleology_weights / type
      Removed value: -"object"
    • changedInput schema / required
      Previous value: -[
      -  "api_key",
      -  "target_endpoint",
      -  "teleology_name",
      -  "teleology_statement",
      -  "teleology_weights"
      -]New value: +[
      +  "api_key",
      +  "target_endpoint"
      +]
  4. First observed

TDQS

A4.7/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: it discloses cost ($79.00 in prepaid credits), refund behavior for unreachable targets, the security posture of target_auth_token (held in memory only, never stored), the conditional signature requirement with REMIRROR_REQUIRE_SIGNATURES=1 and which arguments are signed, and the return shape (audit_id + access_token). This is exactly the kind of context annotations cannot supply.

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 action and cost are front-loaded ahead of conditional logistics, and each clause adds operational information rather than filler. It is a single dense paragraph, though, with the signature rules and protocol semantics running together with no structural separation, which hurts scannability for a 10-parameter tool.

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?

With no output schema and no annotations, the description steps up by documenting the return value and the polling handoff, plus auth, cost, and failure semantics. The only real hole is the unexplained teleology_name/teleology_statement pair, which an agent would otherwise have to guess at.

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 description coverage is 0%, so the description must compensate; it explains teleology_weights (must sum to 1.0, match trial objectives), teleology_id with an example, target_protocol values and their mechanics, api_key, signature, and trial_id's override role. However, teleology_name and teleology_statement are never mentioned, leaving two of ten parameters undocumented anywhere.

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?

The first sentence states a specific verb and resource ('Create a psyche audit against a target agent endpoint') and immediately characterizes the operation (dilemma trial, self-reports, three-source mirror). It is trivially distinguishable from the read-only siblings remirror_get_report and remirror_list_trials.

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 gives explicit routing: 'Supply exactly one of teleology_weights or teleology_id', names the alternative path (shipped telos loaded from the registry on the telos's own dilemma trial 'unless trial_id is given explicitly'), and tells the caller to poll remirror_get_report for the result. When-not conditions and alternatives are both spelled out.

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