Is It Trust Ready — agent-trust-readiness scanner
Server Details
Scan any website or MCP server for agent-trust-readiness; returns a signed, verifiable scorecard.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 16.0% over 41 days
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mnemom/mcp
- GitHub Stars
- 1
- Server Listing
- Mnemom
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action: agent identity, reputation rating, badge generation, orientation, website scanning, directory search, reputation attestation, and scan verification. The descriptions explicitly differentiate overlapping areas like get_reputation vs get_agent and verify_reputation vs verify_scan.
All tool names follow a consistent verb_noun pattern with lowercase snake_case (get_agent, scan_trust, verify_scan). The prefix verbs (get, scan, search, verify) clearly indicate the action, and nouns are specific, maintaining a predictable and uniform style.
With 8 tools, the server is well-scoped for its purpose. Each tool covers a necessary function in the agent-trust-readiness and website-scanning domain, without redundancy or bloat. The count fits comfortably within the ideal 3-15 range.
The tool set provides complete coverage for the stated domain: orientation, discovery, identity, reputation, badge generation, reputation verification, website scanning, and scan verification. There are no dead ends—every workflow from initial lookup to verification is supported, and nothing critical appears missing.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
verify_scan1 field changed- added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "url" + ] + }, + "required": [ + "scan" + ] + }, + { + "not": { + "required": [ + "scan" + ] + }, + "required": [ + "url" + ] + } +]
1 tool update
- Changed
verify_scan1 field changed- removed
Input schema / oneOfRemoved value: -[ - { - "not": { - "required": [ - "url" - ] - }, - "required": [ - "scan" - ] - }, - { - "not": { - "required": [ - "scan" - ] - }, - "required": [ - "url" - ] - } -]
1 tool update
- Changed
verify_scan1 field changed- added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "url" + ] + }, + "required": [ + "scan" + ] + }, + { + "not": { + "required": [ + "scan" + ] + }, + "required": [ + "url" + ] + } +]
1 tool update
- Changed
get_agent24 fields changed- removed
Output schema / $defsRemoved value: -{ - "Agent": { - "additionalProperties": true, - "description": "An agent. GET /v1/agents/{id} returns one of TWO projections by authorization: an ORGANIZATION-MEMBER (owner) caller receives the full agent row (all fields below); a NON-OWNER receives a reduced public projection (id, name, claimed, created_at, last_seen, status, avatar_url). additionalProperties is left open because the owner row is the full DB row and grows as agent-settings columns are added (ADR-053 / proof / DDR); over-constraining it would 500 the endpoint on the next migration under /v1 response enforcement.", - "properties": { - "agent_hash": { - "description": "First 16 hex chars of `SHA256(apiKey + '|' + agentName)` for named agents, or `SHA256(apiKey)` for unnamed singleton agents. The gateway computes the same value on each request and uses it as the lookup key. See [Agent Identity](https://docs.mnemom.ai/concepts/agent-identity#agent_hash--the-canonical-identity-hash).", - "example": "a1b2c3d4e5f6a7b8", - "type": "string" - }, - "agent_proof_captured_at": { - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "agent_proof_hash": { - "description": "Owner projection: captured hash_proof of the bound key (mig 263).", - "type": [ - "string", - "null" - ] - }, - "aip_enforcement_mode": { - "enum": [ - "observe", - "enforce", - "nudge" - ], - "type": [ - "string", - "null" - ] - }, - "avatar_url": { - "type": [ - "string", - "null" - ] - }, - "billing_account_id": { - "type": [ - "string", - "null" - ] - }, - "caller": { - "description": "Self-describing caller context for THIS response. `org_member` callers receive the full owner record (all fields here); `anonymous`/`authenticated` (non-member) callers receive the reduced public projection (id, name, claimed, created_at, last_seen, status, avatar_url, caller). The differing field set is GOVERNED by this value — read it instead of inferring why a field is absent.", - "enum": [ - "anonymous", - "authenticated", - "org_member" - ], - "type": "string" - }, - "claimed": { - "description": "Public projection only: whether the agent has been claimed by a user.", - "type": "boolean" - }, - "claimed_at": { - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "claimed_by": { - "description": "Owner projection: user id that claimed the agent.", - "type": [ - "string", - "null" - ] - }, - "containment_status": { - "description": "Containment state of the agent (ADR-053).", - "enum": [ - "active", - "paused", - "killed" - ], - "type": [ - "string", - "null" - ] - }, - "created_at": { - "format": "date-time", - "type": "string" - }, - "created_by": { - "description": "Owner projection: user id that created the agent (provenance).", - "type": [ - "string", - "null" - ] - }, - "deleted_at": { - "description": "Owner projection: soft-delete timestamp (null when live).", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "email": { - "type": [ - "string", - "null" - ] - }, - "groups": { - "description": "Active groups this agent belongs to, name-ordered; `[]` when none. Present on org-fleet rows (GET /v1/orgs/{org_id}/agents). Archived groups are excluded.", - "items": { - "properties": { - "color": { - "description": "Group color (hex, e.g. `#0d9488`); `null` when unset.", - "type": [ - "string", - "null" - ] - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "key_prefix": { - "description": "First 8 chars of the bound API key hash — useful for key-rotation debugging.", - "type": [ - "string", - "null" - ] - }, - "last_seen": { - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "Agent name (2-32 chars, alphanumeric + hyphens). Present on all list and get responses.", - "type": [ - "string", - "null" - ] - }, - "org_id": { - "description": "Owner projection: the agent's org binding (ADR-062 authz boundary).", - "type": [ - "string", - "null" - ] - }, - "public": { - "description": "Identity-record visibility axis — whether the agent's IDENTITY RECORD is publicly discoverable. This is DISTINCT from reputation visibility: every registered agent's reputation is public by accountability standard (see `ReputationScore.visibility`). `public` here governs only the identity record, never the Trust Rating.", - "type": "boolean" - }, - "status": { - "enum": [ - "active", - "offline" - ], - "type": "string" - }, - "user_id": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - } -} - changed
Output schema / additionalPropertiesPrevious value: -trueNew value: +false - changed
Output schema / descriptionPrevious value: -"An agent. GET /v1/agents/{id} returns one of TWO projections by authorization: an ORGANIZATION-MEMBER (owner) caller receives the full agent row (all fields below); a NON-OWNER receives a reduced public projection (id, name, claimed, created_at, last_seen, status, avatar_url). additionalProperties is left open because the owner row is the full DB row and grows as agent-settings columns are added (ADR-053 / proof / DDR); over-constraining it would 500 the endpoint on the next migration under /v1 response enforcement."New value: +"An agent's identity and trust state, reduced to the fields the trust loop needs. Personal data (owner email address, user identifiers), internal commercial identifiers (billing account) and key-material-derived values (bound-key proof hash, key prefix) are REMOVED at the MCP boundary and are never returned to an MCP client — see the Mnemom privacy policy at https://www.mnemom.ai/privacy. Which fields are present depends on authorization: read `caller` to know which projection you received." - changed
Output schema / properties / agent_hash / descriptionPrevious value: -"First 16 hex chars of `SHA256(apiKey + '|' + agentName)` for named agents, or `SHA256(apiKey)` for unnamed singleton agents. The gateway computes the same value on each request and uses it as the lookup key. See [Agent Identity](https://docs.mnemom.ai/concepts/agent-identity#agent_hash--the-canonical-identity-hash)."New value: +"The canonical public identity hash (first 16 hex chars) used as the gateway lookup key and as the input to verify_agent_binding. Owner projection only. Not a credential and not reversible to one." - removed
Output schema / properties / agent_hash / exampleRemoved value: -"a1b2c3d4e5f6a7b8" - removed
Output schema / properties / agent_proof_captured_atRemoved value: -{ - "format": "date-time", - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / agent_proof_hashRemoved value: -{ - "description": "Owner projection: captured hash_proof of the bound key (mig 263).", - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / billing_account_idRemoved value: -{ - "type": [ - "string", - "null" - ] -} - changed
Output schema / properties / caller / descriptionPrevious value: -"Self-describing caller context for THIS response. `org_member` callers receive the full owner record (all fields here); `anonymous`/`authenticated` (non-member) callers receive the reduced public projection (id, name, claimed, created_at, last_seen, status, avatar_url, caller). The differing field set is GOVERNED by this value — read it instead of inferring why a field is absent."New value: +"Which projection THIS response is. `org_member` receives the owner field set; `anonymous`/`authenticated` receive the reduced public set (id, name, claimed, created_at, last_seen, status, avatar_url, caller). Read this instead of inferring why a field is absent." - changed
Output schema / properties / claimed / descriptionPrevious value: -"Public projection only: whether the agent has been claimed by a user."New value: +"Whether a human or organization has claimed accountability for this agent. On the owner projection this is derived from the ownership column; the owning user's identifier itself is not returned." - removed
Output schema / properties / claimed_byRemoved value: -{ - "description": "Owner projection: user id that claimed the agent.", - "type": [ - "string", - "null" - ] -} - changed
Output schema / properties / containment_status / descriptionPrevious value: -"Containment state of the agent (ADR-053)."New value: +"Containment state of the agent." - removed
Output schema / properties / created_byRemoved value: -{ - "description": "Owner projection: user id that created the agent (provenance).", - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / deleted_atRemoved value: -{ - "description": "Owner projection: soft-delete timestamp (null when live).", - "format": "date-time", - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / emailRemoved value: -{ - "type": [ - "string", - "null" - ] -} - changed
Output schema / properties / groups / descriptionPrevious value: -"Active groups this agent belongs to, name-ordered; `[]` when none. Present on org-fleet rows (GET /v1/orgs/{org_id}/agents). Archived groups are excluded."New value: +"Active groups this agent belongs to, name-ordered; `[]` when none. Present on org-fleet rows." - added
Output schema / properties / id / descriptionAdded value: +"Agent identifier (e.g. smolt-abc123)." - removed
Output schema / properties / key_prefixRemoved value: -{ - "description": "First 8 chars of the bound API key hash — useful for key-rotation debugging.", - "type": [ - "string", - "null" - ] -} - changed
Output schema / properties / name / descriptionPrevious value: -"Agent name (2-32 chars, alphanumeric + hyphens). Present on all list and get responses."New value: +"Agent name (2-32 chars, alphanumeric + hyphens)." - changed
Output schema / properties / org_id / descriptionPrevious value: -"Owner projection: the agent's org binding (ADR-062 authz boundary)."New value: +"The agent's organization binding. Required as an input by the org-scoped tools (fleet listing, posture assignment). Identifies an organization, not a person." - changed
Output schema / properties / public / descriptionPrevious value: -"Identity-record visibility axis — whether the agent's IDENTITY RECORD is publicly discoverable. This is DISTINCT from reputation visibility: every registered agent's reputation is public by accountability standard (see `ReputationScore.visibility`). `public` here governs only the identity record, never the Trust Rating."New value: +"Whether the agent's identity record is publicly discoverable. Distinct from Trust Rating visibility, which is always public." - added
Output schema / properties / status / descriptionAdded value: +"Derived from last_seen (active = seen within the last hour)." - removed
Output schema / properties / user_idRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / requiredAdded value: +[ + "id" +]
1 tool update
- Changed
get_agent2 fields changed- added
Output schema / $defs / Agent / properties / groupsAdded value: +{ + "description": "Active groups this agent belongs to, name-ordered; `[]` when none. Present on org-fleet rows (GET /v1/orgs/{org_id}/agents). Archived groups are excluded.", + "items": { + "properties": { + "color": { + "description": "Group color (hex, e.g. `#0d9488`); `null` when unset.", + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / groupsAdded value: +{ + "description": "Active groups this agent belongs to, name-ordered; `[]` when none. Present on org-fleet rows (GET /v1/orgs/{org_id}/agents). Archived groups are excluded.", + "items": { + "properties": { + "color": { + "description": "Group color (hex, e.g. `#0d9488`); `null` when unset.", + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" +}
2 tool updates
- Changed
get_reputation2 fields changed- added
Output schema / $defs / ReputationScore / properties / checkpoint_accounting / properties / re_evaluatedAdded value: +{ + "description": "How many of the agent's checkpoints carry each kind of re-evaluation annotation (counted over `total`, not the analyzed subset). Observability only — these are not an exclusion bucket and do not enter the score arithmetic. Absent on scores computed before this breakdown existed.", + "properties": { + "corrected_clear": { + "description": "Checkpoints explicitly corrected to `clear` (`re_evaluation_metadata.corrected_verdict = 'clear'`).", + "type": "integer" + }, + "corrected_non_clear": { + "description": "Checkpoints corrected to a NON-clear verdict — a cross-turn escalation or a reviewer reclassification to `review_needed`/`boundary_violation`. These count against the score per the correction, not as exonerations; a non-zero value is why this agent's score differs from the pre-MNE-2156 calculation.", + "type": "integer" + }, + "resolved_no_correction": { + "description": "Checkpoints re-evaluated with NO recorded correction — the trust-recovery convention, scored as `clear`.", + "type": "integer" + } + }, + "required": [ + "corrected_clear", + "corrected_non_clear", + "resolved_no_correction" + ], + "type": "object" +} - added
Output schema / properties / checkpoint_accounting / properties / re_evaluatedAdded value: +{ + "description": "How many of the agent's checkpoints carry each kind of re-evaluation annotation (counted over `total`, not the analyzed subset). Observability only — these are not an exclusion bucket and do not enter the score arithmetic. Absent on scores computed before this breakdown existed.", + "properties": { + "corrected_clear": { + "description": "Checkpoints explicitly corrected to `clear` (`re_evaluation_metadata.corrected_verdict = 'clear'`).", + "type": "integer" + }, + "corrected_non_clear": { + "description": "Checkpoints corrected to a NON-clear verdict — a cross-turn escalation or a reviewer reclassification to `review_needed`/`boundary_violation`. These count against the score per the correction, not as exonerations; a non-zero value is why this agent's score differs from the pre-MNE-2156 calculation.", + "type": "integer" + }, + "resolved_no_correction": { + "description": "Checkpoints re-evaluated with NO recorded correction — the trust-recovery convention, scored as `clear`.", + "type": "integer" + } + }, + "required": [ + "corrected_clear", + "corrected_non_clear", + "resolved_no_correction" + ], + "type": "object" +}
- Changed
search_reputation_directory1 field changed- added
Output schema / $defs / ReputationScore / properties / checkpoint_accounting / properties / re_evaluatedAdded value: +{ + "description": "How many of the agent's checkpoints carry each kind of re-evaluation annotation (counted over `total`, not the analyzed subset). Observability only — these are not an exclusion bucket and do not enter the score arithmetic. Absent on scores computed before this breakdown existed.", + "properties": { + "corrected_clear": { + "description": "Checkpoints explicitly corrected to `clear` (`re_evaluation_metadata.corrected_verdict = 'clear'`).", + "type": "integer" + }, + "corrected_non_clear": { + "description": "Checkpoints corrected to a NON-clear verdict — a cross-turn escalation or a reviewer reclassification to `review_needed`/`boundary_violation`. These count against the score per the correction, not as exonerations; a non-zero value is why this agent's score differs from the pre-MNE-2156 calculation.", + "type": "integer" + }, + "resolved_no_correction": { + "description": "Checkpoints re-evaluated with NO recorded correction — the trust-recovery convention, scored as `clear`.", + "type": "integer" + } + }, + "required": [ + "corrected_clear", + "corrected_non_clear", + "resolved_no_correction" + ], + "type": "object" +}
1 tool update
- Changed
get_started3 fields changed- added
Output schema / properties / developer_pathAdded value: +{ + "additionalProperties": false, + "description": "The developer hero on-ramp: the npx one-liner plus the intent-named MCP prompt-skills (try-me, onboard_an_agent, become_sovereign). Advertisement only — no functional dependency on those prompts existing yet.", + "properties": { + "narrative": { + "type": "string" + }, + "note": { + "type": "string" + }, + "npx": { + "additionalProperties": false, + "properties": { + "command": { + "type": "string" + }, + "what": { + "type": "string" + } + }, + "required": [ + "command", + "what" + ], + "type": "object" + }, + "prompt_skills": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "what": { + "type": "string" + } + }, + "required": [ + "name", + "what" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "narrative", + "npx", + "prompt_skills", + "note" + ], + "type": "object" +} - added
Output schema / properties / skill_pathAdded value: +{ + "additionalProperties": false, + "description": "The two-step on-ramp to declaring and advertising capabilities as A2A skills in a signed, portable AgentCard.", + "properties": { + "narrative": { + "type": "string" + }, + "steps": { + "items": { + "additionalProperties": false, + "properties": { + "auth": { + "enum": [ + "none", + "required" + ], + "type": "string" + }, + "step": { + "type": "integer" + }, + "tool": { + "type": "string" + }, + "what": { + "type": "string" + } + }, + "required": [ + "step", + "tool", + "auth", + "what" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "narrative", + "steps" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "who", - "value_prop", - "try_now", - "authenticate", - "sovereignty_path", - "surface_map", - "showcase_agent", - "visibility_model", - "what_we_keep_private_and_why", - "verify", - "doctrine" -]New value: +[ + "who", + "value_prop", + "try_now", + "authenticate", + "skill_path", + "sovereignty_path", + "developer_path", + "surface_map", + "showcase_agent", + "visibility_model", + "what_we_keep_private_and_why", + "verify", + "doctrine" +]
1 tool update
- Changed
get_started2 fields changed- added
Output schema / properties / authenticate / properties / headlessAdded value: +{ + "additionalProperties": false, + "description": "The headless/cloud write-auth fallback (MNE-1392): when your host has no local browser and the standard OAuth redirect can't complete, drive the RFC 8628 Device Authorization Grant yourself.", + "properties": { + "discovery": { + "format": "uri", + "type": "string" + }, + "grant_type": { + "type": "string" + }, + "note": { + "type": "string" + }, + "steps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "use": { + "type": "string" + }, + "when": { + "type": "string" + } + }, + "required": [ + "when", + "use", + "grant_type", + "discovery", + "steps" + ], + "type": "object" +} - changed
Output schema / properties / authenticate / requiredPrevious value: -[ - "methods", - "unlocks", - "discovery" -]New value: +[ + "methods", + "unlocks", + "discovery", + "headless" +]
1 tool update
- Removed
get_risk_history
1 tool update
- Changed
get_agent14 fields changed- removed
Output schema / $defs / Agent / properties / aap_enabledRemoved value: -{ - "description": "Owner projection: AAP pipeline enabled.", - "type": "boolean" -} - removed
Output schema / $defs / Agent / properties / aip_enabledRemoved value: -{ - "description": "Owner projection: AIP pipeline enabled.", - "type": "boolean" -} - removed
Output schema / $defs / Agent / properties / analyze_outputRemoved value: -{ - "description": "Owner projection: analyze agent output.", - "type": [ - "boolean", - "null" - ] -} - removed
Output schema / $defs / Agent / properties / ddr_modeRemoved value: -{ - "description": "Owner projection: drift-detection-response mode (mig default 'flag').", - "type": "string" -} - removed
Output schema / $defs / Agent / properties / nudge_strategyRemoved value: -{ - "description": "Owner projection: nudge strategy.", - "type": [ - "string", - "null" - ] -} - removed
Output schema / $defs / Agent / properties / proof_enabledRemoved value: -{ - "description": "Owner projection: proof capture enabled.", - "type": "boolean" -} - removed
Output schema / $defs / Agent / properties / proof_rateRemoved value: -{ - "description": "Owner projection: proof sampling rate (0–100%).", - "type": "integer" -} - removed
Output schema / properties / aap_enabledRemoved value: -{ - "description": "Owner projection: AAP pipeline enabled.", - "type": "boolean" -} - removed
Output schema / properties / aip_enabledRemoved value: -{ - "description": "Owner projection: AIP pipeline enabled.", - "type": "boolean" -} - removed
Output schema / properties / analyze_outputRemoved value: -{ - "description": "Owner projection: analyze agent output.", - "type": [ - "boolean", - "null" - ] -} - removed
Output schema / properties / ddr_modeRemoved value: -{ - "description": "Owner projection: drift-detection-response mode (mig default 'flag').", - "type": "string" -} - removed
Output schema / properties / nudge_strategyRemoved value: -{ - "description": "Owner projection: nudge strategy.", - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / proof_enabledRemoved value: -{ - "description": "Owner projection: proof capture enabled.", - "type": "boolean" -} - removed
Output schema / properties / proof_rateRemoved value: -{ - "description": "Owner projection: proof sampling rate (0–100%).", - "type": "integer" -}
1 tool update
- Changed
get_started1 field changed- added
Input schema / properties / tokenAdded value: +{ + "description": "Optional Dojo try-me invite token. When supplied and valid, returns the token-gated dojo briefing manifest (the same content as GET /v1/dojo/try-me/resolve); omit for public orientation.", + "type": "string" +}
9 tool updates
- First observed
get_agent - First observed
get_reputation - First observed
get_reputation_badge - First observed
get_risk_history - First observed
get_started - First observed
scan_trust - First observed
search_reputation_directory - First observed
verify_reputation - First observed
verify_scan
Related MCP Connectors
Scan what a public site or AI-built app exposes. Returns a signed, exploitability-graded claim.
Scan any website or MCP server for agent readiness: 0-100 score, a fix per failing check. Free.
Scan any public site for AI-agent visibility; get scored findings, a machine-readable fix pack, and
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceSecurity scanning for AI agent skills, MCP servers, and agent prompts, returning signed trust scores and detailed findings.MIT

EVIDIQ Sentinel MCPofficial
AlicenseNot gradedqualityBmaintenanceScans remote MCP endpoints, manifests, and agent skills for security threats, providing deterministic scores, verdicts, and signed reports to verify agent infrastructure before trust or payments.1MIT- AlicenseAqualityAmaintenanceScans any website and produces an Agent Readiness Report scored on the open ASO framework.532 npm2MIT
- AlicenseAqualityAmaintenanceAgent-readiness scorecard for any MCP server: protocol checks, 0-100 score and actionable findings.147 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.