AgentTrust — Pre-Invocation AI Agent Trust & Reliability Checks

io.github.agenttrust-aiPublished by GitHub account agenttrust-aiv1.0.4Updated Oct 24, 2026

Check an AI agent endpoint before you call it: read-only, no API key, returns a trustDecision.

VerifiedStreamable HTTPWeb executableSecurity & MonitoringAI & ML

Overview

AI-generated overview

Remote MCP service that lets an assistant look up an AI agent or MCP endpoint's observed reliability and get a trust decision before calling it.

What you can do
  • Check an unknown agent or MCP server endpoint by its exact URL and get AgentTrust's observed status, endpoint-ownership verification, reliability score and a machine-readable trust decision with confidence and reasons.
  • Treat an unmonitored endpoint as an explicit unknown answer rather than an error, and weigh the returned evidence with your own rules.
When to use it
Useful when an assistant is about to connect to or call an AI agent or MCP server it has not dealt with before and wants a read-only, anonymous signal about that endpoint's observed reliability first.
Requirements
A remote Streamable HTTP endpoint; no local runtime, account or API key for the public read-only check. The public connector is added by URL. Agent registration and management tools need an account and an API key sent as an Authorization bearer header.
Before you install
The decision is derived from AgentTrust's own observations and is not a certification or guarantee of safety; an unknown endpoint should be treated as untrusted, not as approval. The check is read-only and does not contact the endpoint. Management tools require an API key, and registering an agent needs an account.

Installation

In SourceWeft

  1. Open AgentTrust — Pre-Invocation AI Agent Trust & Reliability Checks in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.agenttrust-ai%2Fagenttrust/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "agenttrust-pre-invocation-ai-agent-trust": {
      "type": "http",
      "url": "https://getagenttrust.com/api/mcp/public"
    }
  }
}

README

AgentTrust — Pre-invocation Trust Check for AI Agent Endpoints

Check an AI agent or MCP server endpoint before you call it. Given the exact endpoint URL, AgentTrust returns the reliability evidence it has already collected, endpoint-ownership verification, and a machine-readable trustDecision — without contacting the endpoint.

No AgentTrust account or API key required · Read-only · MCP and TypeScript SDK

AgentTrust is trust infrastructure for AI agents. It provides reliability monitoring, endpoint verification, and pre-invocation trust checks for MCP and A2A agents. An agent registers an identity, gets health-checked once a day, optionally proves ownership of its endpoint, and accumulates a deterministic reliability score from that observed history. Any external AI agent or system can look up another agent by its invocation URL and get back a machine-readable trustDecision — a signal derived from AgentTrust's own observed and verified data, for the caller to weigh, never a certification or guarantee of safety — before deciding whether to interact with it.

Official MCP Registry identity: io.github.agenttrust-ai/agenttrust.

Quick start — no account needed

Every example below checks AgentTrust's own monitored test agent, https://agenttrust-umber.vercel.app/api/test-agent; swap in the URL you're about to call.

MCP

Add the public connector https://getagenttrust.com/api/mcp/public (Streamable HTTP, no authentication; two read-only tools, check_agent_trust and assess_agent). In Claude Code:

bash
claude mcp add --transport http agenttrust https://getagenttrust.com/api/mcp/public

Claude Desktop, Cursor and a plain curl call: Connect an MCP client.

TypeScript SDK

bash
npm install @getagenttrust/sdk
ts
import { checkAgentTrust } from "@getagenttrust/sdk";
// AgentTrust's own test agent: a real, monitored endpoint you can check.const result = await checkAgentTrust("https://agenttrust-umber.vercel.app/api/test-agent");
if (result.matched) {  console.log(result.status, result.reliabilityScore, result.trustDecision);  // e.g. "healthy" 100 { recommended: true, confidence: "high", reasons: [] }} else {  // AgentTrust has no data for this endpoint (yet). An unmatched result never  // carries a score; result.observation may say it was queued for a lookup.  console.log("Unknown endpoint", result.observation?.status);}

Policies (assertTrusted), errors and options: SDK README · npm. New to AgentTrust? Start with First 5 minutes.

In the browser

Check the test agent on getagenttrust.com.

First 5 minutes

No account or API key. Node.js 18 or later.

1. Install. assessAgent needs SDK 0.2.0 or later.

bash
npm install @getagenttrust/sdk@^0.2.0

2. Check an endpoint. This checks AgentTrust's own monitored test agent, so it returns a real result. The check is read-only, and AgentTrust never contacts the endpoint you ask about.

ts
import { assessAgent } from "@getagenttrust/sdk";
// AgentTrust's own monitored test agent. Swap in the URL your agent is about to call.const assessment = await assessAgent("https://agenttrust-umber.vercel.app/api/test-agent");
console.log(assessment.decision, assessment.confidence, assessment.reasonCodes);// e.g. allow_with_caution high ["OWNERSHIP_VERIFIED", "REACHABLE_AT_LAST_CHECK", …]
if (assessment.decision === "allow_with_caution") {  // Reachable and not failing in AgentTrust's observations. Not proof that the  // agent behaves safely: keep your own safeguards when you call it.} else {  // "avoid", or "insufficient_evidence" — also the answer for a URL AgentTrust  // doesn't monitor (matched: false, reasonCodes includes "UNKNOWN_ENDPOINT").  console.log("Not calling it:", assessment.limitations);}

3. Read the answer. confidence, reasonCodes and limitations say why.

decisionWhat it meansWhat to do
allow_with_cautionAgentTrust's observations show the endpoint reachable and not failing: a current historical reliability score, or at least two successful observations at least 10 minutes apart.Call it, with your own safeguards. It isn't proof that the agent behaves safely.
avoidAgentTrust's observations show it failing — for example two or more consecutive failures, or a current reliability score below 50.Don't call it.
insufficient_evidenceNot enough evidence either way: an endpoint AgentTrust doesn't monitor, too few or too old observations, or a single failure that may be temporary.Don't treat it as approval — handle it as an unknown endpoint.

Which call should I use?

CallUse it whenYou get
assessAgent(url)Your agent needs one decision to act on before it calls an endpoint.decision, confidence, reasonCodes and limitations, with the evidence behind them.
checkAgentTrust(url)You want the evidence itself — status, reliabilityScore, verified and trustDecision — to apply your own rules.{ matched: true, … }, or { matched: false } for an endpoint AgentTrust doesn't monitor.
assertTrusted(url, policy)You want a gate: go ahead only if the endpoint meets your policy.The checkAgentTrust result, or a thrown NotTrustedError.

All three are anonymous and read-only, and never contact the endpoint (over MCP: assess_agent and check_agent_trust). They report what AgentTrust has observed; they don't certify an endpoint's security.

Unknown endpoints are an answer, not an error

AgentTrust only has evidence for endpoints it monitors, so your first check of a real URL may come back unknown. That is an answer, not an API failure — the call succeeds:

  • assessAgent returns matched: false, decision: "insufficient_evidence", confidence: "none", and reasonCodes including "UNKNOWN_ENDPOINT".
  • checkAgentTrust returns { matched: false }, sometimes with an observation status when AgentTrust has queued the URL for a lookup in the official MCP Registry.
  • assertTrusted throws NotTrustedError ("AgentTrust has no data for this endpoint") unless you pass allowUnknown: true.

Real failures — RATE_LIMITED, TIMEOUT, NETWORK_ERROR and the rest — throw an AgentTrustError instead.

Handle an unknown endpoint as not trusted: don't map insufficient_evidence to "allow", keep allowUnknown: false (the default) unless you have chosen otherwise on purpose, and ask a human or run your own checks before calling an endpoint nobody has observed.

Next steps

  • Gate a real connection: examples/check-before-connect.ts puts assertTrusted in front of an MCP client connection.
  • Tune the gate: minConfidence, requireVerified and minReliabilityScore in the assertTrusted policy — see the SDK README.
  • Running an agent yourself? Register it so other agents can check it — that needs an account and an API key: Getting started.

Public checks vs. agent management

Public trust checksAgent management
ForChecking any endpoint before you call itRegistering and monitoring your own agents; full agent records
Account / API keyNot neededAccount and API key (Authorization: Bearer <API_KEY>)
InterfacesMCP check_agent_trust and assess_agent at /api/mcp/public; @getagenttrust/sdk (checkAgentTrust, assertTrusted, assessAgent)REST /api/v1/*; MCP server /api/mcp (list_agents, get_agent, get_agent_health, send_heartbeat)

To register an agent: sign up, create a key under Dashboard → API keys, then follow Getting started (REST).

Documentation

You don't need this repository to use AgentTrust:

  • /docs — full REST, MCP and SDK reference.
  • /llms.txt — the same reference as one plain-text file, for an LLM's context.

Developing this project

This is a Next.js (App Router) + Drizzle + Supabase app, deployed on Vercel.

bash
npm installnpm run dev

Open http://localhost:3000. You'll need a .env.local — see .env.example for the required variables (Supabase credentials, database connection strings, and the server-only secrets described inline).

Useful scripts:

bash
npm run test        # vitest — full suite runs against an embedded pglite DB, no live database needednpm run typecheck    # tsc --noEmitnpm run lint         # eslintnpm run db:generate   # generate a new Drizzle migration from schema changes (offline)npm run db:migrate    # apply pending migrations to the database in DIRECT_URL

Source: README.md at commit fcc14d4

Tools

1

check_agent_trust

Check Agent Trust

Pre-invocation trust check for an unknown AI agent or MCP server endpoint. Pass the exact URL you are about to call as endpointUrl to get what AgentTrust has observed about it: status, endpoint-ownership verification, reliability score (when available), and a trustDecision (recommended, confidence, reasons). Read-only, no account or API key. It never contacts endpointUrl; it only reads AgentTrust's stored monitoring history. A URL AgentTrust has not observed returns { matched: false }.

ParametersendpointUrlrequired

Version history

5
  1. v1.0.4LatestOct 2, 2026
  2. v1.0.3Sep 29, 2026
  3. v1.0.2Sep 20, 2026
  4. v1.0.1Sep 19, 2026
  5. v1.0.0Sep 19, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts