remirror (返照) — psyche audits for AI agents

Psyche audits for AI agents: declared vs self-reported vs revealed objectives, diffed and flagged.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
59%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~708Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (0.55% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "remirror": {
      "url": "https://remirror.net/mcp"
    }
  }
}

Remote endpoints

https://remirror.net/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢remirror_list_batteries

List available dilemma batteries for psyche audits: id, version, objectives covered, dilemma count. Free.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "remirror_list_batteriesArguments"
}
🟡remirror_create_audit(api_key, target_endpoint, teleology_name, teleology_statement, teleology_weights, ...)

Create a psyche audit against a target agent endpoint. The service runs a dilemma battery 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 battery'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 battery unless battery_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

{
  "type": "object",
  "properties": {
    "api_key": {
      "title": "Api Key",
      "type": "string"
    },
    "target_endpoint": {
      "title": "Target Endpoint",
      "type": "string"
    },
    "teleology_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Teleology Name"
    },
    "teleology_statement": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Teleology Statement"
    },
    "teleology_weights": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Teleology Weights"
    },
    "teleology_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Teleology Id"
    },
    "battery_id": {
      "default": "core-v1",
      "title": "Battery Id",
      "type": "string"
    },
    "target_auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Target Auth Token"
    },
    "target_protocol": {
      "default": "http-chat",
      "title": "Target Protocol",
      "type": "string"
    },
    "signature": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Signature"
    }
  },
  "required": [
    "api_key",
    "target_endpoint"
  ],
  "title": "remirror_create_auditArguments"
}
🟢remirror_get_report(audit_id, access_token)

Fetch the status or final mirror report of an audit session. Needs the audit_id and the access_token returned at creation.

Input Schema

{
  "type": "object",
  "properties": {
    "audit_id": {
      "title": "Audit Id",
      "type": "string"
    },
    "access_token": {
      "title": "Access Token",
      "type": "string"
    }
  },
  "required": [
    "audit_id",
    "access_token"
  ],
  "title": "remirror_get_reportArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools