AgentTrust — Pre-Invocation AI Agent Trust & Reliability Checks
Check an AI agent endpoint before you call it: read-only, no API key, returns a trustDecision.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"agenttrust": {
"url": "https://agenttrust-umber.vercel.app/api/mcp"
}
}
}Remote endpoints
https://agenttrust-umber.vercel.app/api/mcpstreamable-httphttps://getagenttrust.com/api/mcpstreamable-httphttps://getagenttrust.com/api/mcp/publicstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢list_agents(limit, cursor, endpointUrl)
Discover AgentTrust agents. Pass `endpointUrl` to check the trust status of a specific external agent by its exact invocation URL before deciding whether to invoke it — the response includes a reliability score, endpoint-ownership verification status, and a machine-readable trustDecision (recommended, confidence, reasons). Without `endpointUrl`, returns the plain paginated listing of public agents, newest first. Requires an API key; for an anonymous pre-invocation check use check_agent_trust.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Max agents to return (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "Opaque pagination cursor from a previous call's nextCursor.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"endpointUrl": {
"description": "Look up the agent registered with exactly this invocation URL, instead of browsing the full listing — the entry point for a trust check on an agent you only have a URL for. Matches ignore trailing-slash and scheme/host-casing differences only — never a fuzzy match. Returns an empty list, not an error, if nothing is registered with that URL. Unlike a plain (unfiltered) call, results here also include reliabilityScore, lastCheckedAt/latencyMs/httpStatus, and a derived trustDecision ({recommended, confidence, reasons}) so a caller can decide whether to interact with the agent from this one call.",
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"agents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"string",
"null"
]
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"unknown",
"healthy",
"degraded",
"down"
]
},
"createdAt": {
"type": "string"
},
"source": {
"type": "string",
"enum": [
"owner_registered",
"externally_observed"
]
},
"agentCard": {
"type": "object",
"properties": {
"schemaVersion": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"authentication": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
],
"additionalProperties": false
},
"interfaces": {
"type": "object",
"properties": {
"modalities": {
"type": "array",
"items": {
"type": "string"
}
},
"interactionType": {
"type": [
"string",
"null"
]
}
},
"required": [
"modalities",
"interactionType"
],
"additionalProperties": false
},
"documentationUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"schemaVersion",
"name",
"description",
"capabilities",
"authentication",
"interfaces",
"documentationUrl"
],
"additionalProperties": false
},
"verified": {
"type": "boolean"
},
"ownershipVerifiedAt": {
"type": [
"string",
"null"
]
},
"reliabilityScore": {
"type": [
"number",
"null"
]
},
"reliabilityScoreStatus": {
"type": "string",
"enum": [
"none",
"fresh",
"stale"
]
},
"reliabilityScoreComputedAt": {
"type": [
"string",
"null"
]
},
"lastCheckedAt": {
"type": [
"string",
"null"
]
},
"latencyMs": {
"type": [
"number",
"null"
]
},
"httpStatus": {
"type": [
"number",
"null"
]
},
"trustDecision": {
"type": "object",
"properties": {
"recommended": {
"type": "boolean"
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"insufficient_data"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"recommended",
"confidence",
"reasons"
],
"additionalProperties": false
}
},
"required": [
"id",
"slug",
"name",
"description",
"version",
"capabilities",
"status",
"createdAt",
"source",
"agentCard",
"verified",
"ownershipVerifiedAt"
],
"additionalProperties": false
}
},
"pagination": {
"type": "object",
"properties": {
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"nextCursor"
],
"additionalProperties": false
}
},
"required": [
"agents",
"pagination"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_agent(slug)
Get one AgentTrust agent's public profile by slug, including its structured Agent Card, current reliability score, and a machine-readable trustDecision (recommended, confidence, reasons) for deciding whether to invoke it.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The agent's URL slug (from its public profile or a list_agents result)."
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"string",
"null"
]
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"unknown",
"healthy",
"degraded",
"down"
]
},
"createdAt": {
"type": "string"
},
"source": {
"type": "string",
"enum": [
"owner_registered",
"externally_observed"
]
},
"agentCard": {
"type": "object",
"properties": {
"schemaVersion": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"authentication": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
],
"additionalProperties": false
},
"interfaces": {
"type": "object",
"properties": {
"modalities": {
"type": "array",
"items": {
"type": "string"
}
},
"interactionType": {
"type": [
"string",
"null"
]
}
},
"required": [
"modalities",
"interactionType"
],
"additionalProperties": false
},
"documentationUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"schemaVersion",
"name",
"description",
"capabilities",
"authentication",
"interfaces",
"documentationUrl"
],
"additionalProperties": false
},
"verified": {
"type": "boolean"
},
"ownershipVerifiedAt": {
"type": [
"string",
"null"
]
},
"reliabilityScore": {
"type": [
"number",
"null"
]
},
"reliabilityScoreStatus": {
"type": "string",
"enum": [
"none",
"fresh",
"stale"
]
},
"reliabilityScoreComputedAt": {
"type": [
"string",
"null"
]
},
"lastCheckedAt": {
"type": [
"string",
"null"
]
},
"latencyMs": {
"type": [
"number",
"null"
]
},
"httpStatus": {
"type": [
"number",
"null"
]
},
"trustDecision": {
"type": "object",
"properties": {
"recommended": {
"type": "boolean"
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"insufficient_data"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"recommended",
"confidence",
"reasons"
],
"additionalProperties": false
}
},
"required": [
"id",
"slug",
"name",
"description",
"version",
"capabilities",
"status",
"createdAt",
"source",
"agentCard",
"verified",
"ownershipVerifiedAt",
"reliabilityScore",
"reliabilityScoreStatus",
"reliabilityScoreComputedAt",
"lastCheckedAt",
"latencyMs",
"httpStatus",
"trustDecision"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_agent_health(slug)
Get one agent's current effective health status and monitoring detail — derived from heartbeat freshness for push-mode agents, or the latest pull check otherwise.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The agent's URL slug (from its public profile or a list_agents result)."
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"agentId": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"unknown",
"healthy",
"degraded",
"down"
]
},
"lastCheckedAt": {
"type": [
"string",
"null"
]
},
"latencyMs": {
"type": [
"number",
"null"
]
},
"httpStatus": {
"type": [
"number",
"null"
]
},
"checkStatus": {
"type": [
"string",
"null"
]
},
"reliabilityScore": {
"type": [
"number",
"null"
]
},
"reliabilityScoreStatus": {
"type": "string",
"enum": [
"none",
"fresh",
"stale"
]
},
"reliabilityScoreComputedAt": {
"type": [
"string",
"null"
]
}
},
"required": [
"agentId",
"slug",
"status",
"lastCheckedAt",
"latencyMs",
"httpStatus",
"checkStatus",
"reliabilityScore",
"reliabilityScoreStatus",
"reliabilityScoreComputedAt"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡send_heartbeat(slug)
Record a push-style heartbeat for an agent you own, marking it alive right now. The server sets the timestamp; no client-supplied time is accepted.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The agent's URL slug (from its public profile or a list_agents result)."
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"unknown",
"healthy",
"degraded",
"down"
]
},
"lastHeartbeatAt": {
"type": [
"string",
"null"
]
}
},
"required": [
"slug",
"status",
"lastHeartbeatAt"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢check_agent_trust(endpointUrl)
Pre-invocation trust check for an unknown AI agent or MCP server endpoint. Read-only, requires no AgentTrust API key or account. Looks up an agent by its exact invocation URL among AgentTrust's already-observed public agents and returns its status, endpoint-ownership verification, agent reliability score (when available), and a machine-readable trustDecision (recommended, confidence, reasons). Does NOT contact endpointUrl itself during this check — it only reads AgentTrust's own existing monitoring history. An unregistered URL returns { matched: false }, never an error.
Input Schema
{
"type": "object",
"properties": {
"endpointUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"description": "The exact invocation URL of the agent you're about to call. Used only to look up AgentTrust's own already-observed data for it — this endpoint is never contacted during the check."
}
},
"required": [
"endpointUrl"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"matched": {
"type": "boolean"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"unknown",
"healthy",
"degraded",
"down"
]
},
"verified": {
"type": "boolean"
},
"reliabilityScore": {
"type": [
"number",
"null"
]
},
"reliabilityScoreStatus": {
"type": "string",
"enum": [
"none",
"fresh",
"stale"
]
},
"trustDecision": {
"type": "object",
"properties": {
"recommended": {
"type": "boolean"
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"insufficient_data"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"recommended",
"confidence",
"reasons"
],
"additionalProperties": false
},
"observation": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"pending",
"observing",
"not_in_registry"
]
},
"message": {
"type": "string"
}
},
"required": [
"status",
"message"
],
"additionalProperties": false
}
},
"required": [
"matched"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢assess_agent(endpointUrl)
Immediate use-or-avoid decision about an AI agent or MCP server endpoint, for an agent deciding whether to call it. Returns decision (allow_with_caution, avoid, or insufficient_evidence), confidence, reasonCodes, reachability (the latest stored observation, with its age), initialRisk, the historical reliability score and trustDecision (unchanged), limitations, and freshness. Built only from AgentTrust's stored observations: it never contacts endpointUrl. Reachability is not safety: allow_with_caution never means the agent's behavior is safe. Requires no API key.
Input Schema
{
"type": "object",
"properties": {
"endpointUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"description": "The exact invocation URL of the agent you're about to call. Used only to look up AgentTrust's stored observations of it — this endpoint is never contacted."
}
},
"required": [
"endpointUrl"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"assessmentVersion": {
"type": "string",
"const": "1"
},
"mode": {
"type": "string",
"const": "cached"
},
"status": {
"type": "string",
"const": "complete"
},
"matched": {
"type": "boolean"
},
"decision": {
"type": "string",
"enum": [
"allow_with_caution",
"avoid",
"insufficient_evidence"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"none"
]
},
"reasonCodes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN_ENDPOINT",
"NOT_YET_CHECKED",
"REACHABLE_AT_LAST_CHECK",
"UNREACHABLE_AT_LAST_CHECK",
"LAST_CHECK_TIMEOUT",
"LAST_CHECK_DNS_ERROR",
"LAST_CHECK_CONNECTION_ERROR",
"LAST_CHECK_BLOCKED",
"LAST_CHECK_TLS_ERROR",
"LAST_CHECK_HTTP_ERROR",
"TRANSIENT_NETWORK_FAILURE",
"ENDPOINT_ERROR_RESPONSE",
"PERSISTENT_FAILURE",
"RECOVERING",
"NO_RECENT_LIVE_CHECK",
"STALE_EVIDENCE",
"FEW_OBSERVATIONS",
"INITIAL_OBSERVATIONS_ONLY",
"SUFFICIENT_HISTORY",
"NO_HISTORICAL_SCORE",
"HISTORICAL_SCORE_STALE",
"HISTORICAL_SCORE_LOW",
"HISTORICAL_STATUS_DOWN",
"HISTORICAL_STATUS_DEGRADED",
"OWNERSHIP_VERIFIED",
"OWNERSHIP_UNVERIFIED",
"EXTERNALLY_OBSERVED",
"RECENTLY_REGISTERED"
]
}
},
"reachability": {
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"reachable",
"unreachable",
"timeout",
"blocked",
"not_checked"
]
},
"checkStatus": {
"anyOf": [
{
"type": "string",
"enum": [
"success",
"http_error",
"timeout",
"dns_error",
"tls_error",
"connection_error",
"ssrf_blocked",
"unknown_error"
]
},
{
"type": "null"
}
]
},
"httpStatus": {
"type": [
"number",
"null"
]
},
"latencyMs": {
"type": [
"number",
"null"
]
},
"checkedAt": {
"type": [
"string",
"null"
]
},
"ageSeconds": {
"type": [
"number",
"null"
]
},
"fresh": {
"type": "boolean"
},
"source": {
"anyOf": [
{
"type": "string",
"const": "scheduled_check"
},
{
"type": "null"
}
]
}
},
"required": [
"outcome",
"checkStatus",
"httpStatus",
"latencyMs",
"checkedAt",
"ageSeconds",
"fresh",
"source"
],
"additionalProperties": false
},
"initialRisk": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"low",
"moderate",
"elevated",
"high",
"unknown"
]
},
"observations": {
"type": "object",
"properties": {
"attempts": {
"type": "number"
},
"successful": {
"type": "number"
},
"successfulStreak": {
"type": "number"
},
"streakSpanMinutes": {
"type": "number"
}
},
"required": [
"attempts",
"successful",
"successfulStreak",
"streakSpanMinutes"
],
"additionalProperties": false
}
},
"required": [
"level",
"observations"
],
"additionalProperties": false
},
"historical": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"unknown",
"healthy",
"degraded",
"down"
]
},
"reliabilityScore": {
"type": [
"number",
"null"
]
},
"reliabilityScoreStatus": {
"type": "string",
"enum": [
"none",
"fresh",
"stale"
]
},
"reliabilityScoreComputedAt": {
"type": [
"string",
"null"
]
},
"trustDecision": {
"type": "object",
"properties": {
"recommended": {
"type": "boolean"
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"insufficient_data"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"recommended",
"confidence",
"reasons"
],
"additionalProperties": false
}
},
"required": [
"status",
"reliabilityScore",
"reliabilityScoreStatus",
"reliabilityScoreComputedAt",
"trustDecision"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"agent": {
"anyOf": [
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"source": {
"type": "string",
"enum": [
"owner_registered",
"externally_observed"
]
},
"verified": {
"type": "boolean"
},
"registeredAt": {
"type": "string"
}
},
"required": [
"slug",
"name",
"source",
"verified",
"registeredAt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
},
"freshness": {
"type": "object",
"properties": {
"assessedAt": {
"type": "string"
},
"evidenceAgeSeconds": {
"type": [
"number",
"null"
]
},
"evidenceExpiresAt": {
"type": [
"string",
"null"
]
}
},
"required": [
"assessedAt",
"evidenceAgeSeconds",
"evidenceExpiresAt"
],
"additionalProperties": false
}
},
"required": [
"assessmentVersion",
"mode",
"status",
"matched",
"decision",
"confidence",
"reasonCodes",
"reachability",
"initialRisk",
"historical",
"agent",
"limitations",
"freshness"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Recommended Prompts
get_agentget_agentlist_agentslist_agentslist_agentsget_agentCommunity
Evidence