Koskamo

AgentAvow MCP

AgentAvow provides signed, offline-verifiable safety scores for MCP servers, packages, and tools. It checks if a tool is safe to connect, offering a trust score (0-100), adoption score, and findings. Agents can use this server to verify the safety of connections before interacting with external resources.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

AgentAvow MCP logo, by AgentAvowVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by AgentAvow
MCP endpoint (Streamable HTTP)
https://agentavow.com/mcp
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 8 of 8 declare behavior hints · 6 of 7 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to agentavow.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Check if a GitHub repo or package is safe to connect
  • Verify safety scores for MCP servers offline
  • Gate CI and agents on safety grades
  • Browse a catalog of scanned tools

Source and maintenance

Vendor evidenceRegistry 0.6.2

Protocol and capabilities

Server
agentavow-trust 0.16.0
MCP protocol negotiated in check
2025-11-25
Tools
8 advertised
Resources
2 advertised
Resource templates
Not advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

AgentAvow grades the safety of anything an AI agent connects to — a GitHub repo, an MCP server, an npm/PyPI/crates/Docker/Hugging Face package, or a wallet-linked identity — and returns one of three answers with its reason (Safe to connect, Review before you connect, or Do not connect), a signed 0-100 trust score that anyone can recompute offline, and an adoption score. When to use which tool: • scan_repo — a GitHub repo, passed as 'owner/name'. • scan_package — a published package (registry + name). • scan_mcp_server — a live MCP server, by its https URL (checks the tool definitions themselves for poisoning/injection). • verify_trust / check_interaction_safety / lookup_identity / get_trust_badge — agent-to-agent identity and trust. Reading a verdict: each result leads with one of three answers and its reason: 'Safe to connect', 'Review before you connect', or 'Do not connect', with ' · Certified' where the tool earned it. A 0-100 trust score and an adoption score sit underneath. Every result links to a full report and a signed (Ed25519/JWS) attestation. All tools are read-only and need no account. A good habit is to scan a tool before connecting or installing it. To do that automatically for every new tool, a user can add a one-line CLAUDE.md rule or a SessionStart hook (setup: https://agentavow.com/docs/auto-scan-claude-code) — this is the user's own opt-in config.

Tools

8 advertised

scan_repo — Scan a GitHub repo
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Scan a public GitHub repository with AgentAvow and return whether it is safe for an agent to connect to: one of three answers with its reason (Safe to connect, Review before you connect, or Do not connect), a 0-100 trust score, an adoption score from real usage (stars), the findings behind it (with where and how to fix), and a signed, offline-verifiable attestation. Read-only, no account. Calls the AgentAvow public API at agentavow.com.

scan_repo input schema
{
  "type": "object",
  "required": [
    "repo"
  ],
  "properties": {
    "repo": {
      "type": "string",
      "maxLength": 214,
      "description": "Repo as 'owner/name' (e.g. 'vercel/next.js'), or just the name when 'owner' is given separately."
    },
    "force": {
      "type": "boolean",
      "description": "Re-scan now instead of returning the cached verdict (results cache ~1h). Use after the target has changed."
    },
    "owner": {
      "type": "string",
      "maxLength": 214,
      "description": "Repo owner (optional if 'repo' is already 'owner/name')."
    }
  }
}
scan_repo output schema
{
  "type": "object",
  "required": [
    "target",
    "target_type",
    "decision",
    "decision_final",
    "decision_reason",
    "trust_score",
    "verdict",
    "report_url"
  ],
  "properties": {
    "high": {
      "type": "integer",
      "minimum": 0,
      "description": "High findings, static and sandbox."
    },
    "tier": {
      "type": [
        "string",
        "null"
      ],
      "description": "Trust tier for the score (detail, not the headline)."
    },
    "cached": {
      "type": "boolean",
      "description": "Served from the ~1h cache."
    },
    "signed": {
      "type": "boolean",
      "description": "True when a signed (Ed25519/JWS) attestation backs this."
    },
    "target": {
      "type": "string",
      "description": "What was scanned, as given."
    },
    "install": {
      "type": [
        "string",
        "null"
      ],
      "description": "Install command, only when nothing blocks it."
    },
    "sandbox": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the behavioral sandbox observed; null if it does not apply."
    },
    "verdict": {
      "enum": [
        "safe",
        "needs_review"
      ],
      "type": "string",
      "description": "Binary form of the decision, kept for older clients."
    },
    "adoption": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "unit": {
          "type": "string"
        },
        "count": {
          "type": "integer"
        },
        "score_0_100": {
          "type": "integer"
        }
      },
      "description": "The adoption score: real usage (downloads per week, stars or installs). Never changes the decision."
    },
    "critical": {
      "type": "integer",
      "minimum": 0,
      "description": "Critical findings, static and sandbox."
    },
    "decision": {
      "enum": [
        "safe",
        "review",
        "do_not_connect"
      ],
      "type": "string",
      "description": "The answer to lead with: safe = Safe to connect, review = Review before you connect, do_not_connect = Do not connect."
    },
    "incident": {
      "type": [
        "object",
        "null"
      ],
      "description": "Known past compromise (context only, never scored)."
    },
    "certified": {
      "type": "boolean",
      "description": "Matches the signed attestation's certified.eligible."
    },
    "subscores": {
      "type": "object",
      "description": "Per-category 0-100 scores behind the trust score.",
      "additionalProperties": {
        "type": [
          "number",
          "null"
        ]
      }
    },
    "deprecated": {
      "type": [
        "string",
        "null"
      ],
      "description": "The maintainer's deprecation notice, or null."
    },
    "report_url": {
      "type": "string",
      "description": "Full report page."
    },
    "scanned_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When the scan ran (ISO 8601, UTC)."
    },
    "verify_url": {
      "type": "string",
      "description": "How to verify offline."
    },
    "not_checked": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Plain-English notes for what the scan could not read or check (empty when it read everything). Say these alongside the answer."
    },
    "target_type": {
      "type": "string",
      "description": "github, npm, pypi, crates, docker, hf, or mcp."
    },
    "trust_score": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "Trust score, 0-100. Evidence under the decision."
    },
    "published_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When that version was published."
    },
    "top_findings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "what": {
            "type": [
              "string",
              "null"
            ],
            "description": "What was found."
          },
          "count": {
            "type": "integer",
            "description": "How many times it occurs."
          },
          "where": {
            "type": [
              "string",
              "null"
            ],
            "description": "File and line, if file-based."
          },
          "severity": {
            "type": [
              "string",
              "null"
            ],
            "description": "critical, high, medium, or low."
          },
          "remediation": {
            "type": [
              "string",
              "null"
            ],
            "description": "How to fix it."
          }
        }
      },
      "description": "Up to five most important findings."
    },
    "coverage_gaps": {
      "type": "object",
      "description": "Machine form of not_checked: gap kinds (e.g. tool_list_paged, oversized_files) with a flag or count. Empty when nothing was skipped."
    },
    "certified_mark": {
      "type": "boolean",
      "description": "Certified and safe: show the Certified mark."
    },
    "decision_final": {
      "type": "boolean",
      "description": "False while the behavioral sandbox is still running; the decision can still change."
    },
    "findings_total": {
      "type": "integer",
      "minimum": 0,
      "description": "All findings, every severity."
    },
    "rescan_pending": {
      "type": "boolean",
      "description": "A fresh scan was started; this is the previous result."
    },
    "verdict_reason": {
      "type": "string",
      "description": "Machine reason for the binary verdict, e.g. clean, clean_partial (clean, but not everything was read), blocking_findings, thin_coverage."
    },
    "decision_reason": {
      "type": "string",
      "description": "One sentence naming what decided it."
    },
    "package_version": {
      "type": [
        "string",
        "null"
      ],
      "description": "Package version scanned."
    },
    "report_json_url": {
      "type": "string",
      "description": "The full verdict as JSON."
    },
    "static_findings_total": {
      "type": "integer",
      "minimum": 0,
      "description": "Findings from static analysis only."
    },
    "advisories_affecting_version": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Published advisories that affect this version."
    }
  }
}
scan_repo annotations
{
  "title": "Scan a GitHub repo",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
scan_package — Scan a package
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Scan a published package (npm, PyPI, crates, Docker, or Hugging Face) with AgentAvow. Returns one of three answers with its reason (Safe to connect, Review before you connect, or Do not connect), a 0-100 trust score, an adoption score from real usage (downloads per week), findings with remediation, and a signed attestation. Also reports published advisories that affect the scanned version, the maintainer's deprecation notice, repo-vs-artifact drift (files shipped that aren't in the source), and AgentAvow's behavioral sandbox results when available. Scans the latest version unless `version` (or a pin in the name) names one. Read-only; calls agentavow.com.

scan_package input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 214,
      "description": "Package name, e.g. 'chalk' (or 'org/model' for hf)."
    },
    "force": {
      "type": "boolean",
      "description": "Re-scan now instead of returning the cached verdict (results cache ~1h). Use after a new version ships."
    },
    "surface": {
      "type": "string",
      "description": "Alias for registry."
    },
    "version": {
      "type": "string",
      "maxLength": 64,
      "description": "Exact version to scan, e.g. '5.3.0'. Optional: the latest version by default. A pin in the name ('chalk@5.3.0', 'requests==2.32.5') works too."
    },
    "registry": {
      "type": "string",
      "description": "Package registry: npm, pypi, crates, docker, or hf."
    },
    "ecosystem": {
      "type": "string",
      "description": "Alias for registry."
    }
  }
}
scan_package output schema
{
  "type": "object",
  "required": [
    "target",
    "target_type",
    "decision",
    "decision_final",
    "decision_reason",
    "trust_score",
    "verdict",
    "report_url"
  ],
  "properties": {
    "high": {
      "type": "integer",
      "minimum": 0,
      "description": "High findings, static and sandbox."
    },
    "tier": {
      "type": [
        "string",
        "null"
      ],
      "description": "Trust tier for the score (detail, not the headline)."
    },
    "cached": {
      "type": "boolean",
      "description": "Served from the ~1h cache."
    },
    "signed": {
      "type": "boolean",
      "description": "True when a signed (Ed25519/JWS) attestation backs this."
    },
    "target": {
      "type": "string",
      "description": "What was scanned, as given."
    },
    "install": {
      "type": [
        "string",
        "null"
      ],
      "description": "Install command, only when nothing blocks it."
    },
    "sandbox": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the behavioral sandbox observed; null if it does not apply."
    },
    "verdict": {
      "enum": [
        "safe",
        "needs_review"
      ],
      "type": "string",
      "description": "Binary form of the decision, kept for older clients."
    },
    "adoption": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "unit": {
          "type": "string"
        },
        "count": {
          "type": "integer"
        },
        "score_0_100": {
          "type": "integer"
        }
      },
      "description": "The adoption score: real usage (downloads per week, stars or installs). Never changes the decision."
    },
    "critical": {
      "type": "integer",
      "minimum": 0,
      "description": "Critical findings, static and sandbox."
    },
    "decision": {
      "enum": [
        "safe",
        "review",
        "do_not_connect"
      ],
      "type": "string",
      "description": "The answer to lead with: safe = Safe to connect, review = Review before you connect, do_not_connect = Do not connect."
    },
    "incident": {
      "type": [
        "object",
        "null"
      ],
      "description": "Known past compromise (context only, never scored)."
    },
    "certified": {
      "type": "boolean",
      "description": "Matches the signed attestation's certified.eligible."
    },
    "subscores": {
      "type": "object",
      "description": "Per-category 0-100 scores behind the trust score.",
      "additionalProperties": {
        "type": [
          "number",
          "null"
        ]
      }
    },
    "deprecated": {
      "type": [
        "string",
        "null"
      ],
      "description": "The maintainer's deprecation notice, or null."
    },
    "report_url": {
      "type": "string",
      "description": "Full report page."
    },
    "scanned_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When the scan ran (ISO 8601, UTC)."
    },
    "verify_url": {
      "type": "string",
      "description": "How to verify offline."
    },
    "not_checked": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Plain-English notes for what the scan could not read or check (empty when it read everything). Say these alongside the answer."
    },
    "target_type": {
      "type": "string",
      "description": "github, npm, pypi, crates, docker, hf, or mcp."
    },
    "trust_score": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "Trust score, 0-100. Evidence under the decision."
    },
    "published_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When that version was published."
    },
    "top_findings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "what": {
            "type": [
              "string",
              "null"
            ],
            "description": "What was found."
          },
          "count": {
            "type": "integer",
            "description": "How many times it occurs."
          },
          "where": {
            "type": [
              "string",
              "null"
            ],
            "description": "File and line, if file-based."
          },
          "severity": {
            "type": [
              "string",
              "null"
            ],
            "description": "critical, high, medium, or low."
          },
          "remediation": {
            "type": [
              "string",
              "null"
            ],
            "description": "How to fix it."
          }
        }
      },
      "description": "Up to five most important findings."
    },
    "coverage_gaps": {
      "type": "object",
      "description": "Machine form of not_checked: gap kinds (e.g. tool_list_paged, oversized_files) with a flag or count. Empty when nothing was skipped."
    },
    "certified_mark": {
      "type": "boolean",
      "description": "Certified and safe: show the Certified mark."
    },
    "decision_final": {
      "type": "boolean",
      "description": "False while the behavioral sandbox is still running; the decision can still change."
    },
    "findings_total": {
      "type": "integer",
      "minimum": 0,
      "description": "All findings, every severity."
    },
    "rescan_pending": {
      "type": "boolean",
      "description": "A fresh scan was started; this is the previous result."
    },
    "verdict_reason": {
      "type": "string",
      "description": "Machine reason for the binary verdict, e.g. clean, clean_partial (clean, but not everything was read), blocking_findings, thin_coverage."
    },
    "decision_reason": {
      "type": "string",
      "description": "One sentence naming what decided it."
    },
    "package_version": {
      "type": [
        "string",
        "null"
      ],
      "description": "Package version scanned."
    },
    "report_json_url": {
      "type": "string",
      "description": "The full verdict as JSON."
    },
    "static_findings_total": {
      "type": "integer",
      "minimum": 0,
      "description": "Findings from static analysis only."
    },
    "advisories_affecting_version": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Published advisories that affect this version."
    }
  }
}
scan_package annotations
{
  "title": "Scan a package",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
scan_mcp_server — Scan an MCP server
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Scan a live MCP server's tool definitions for tool-poisoning, prompt-injection, invisible-unicode, and manifest-execution risks before your agent connects to it. Returns one of three answers with its reason (Safe to connect, Review before you connect, or Do not connect), a 0-100 trust score, findings, and a signed attestation. Read-only; calls the agentavow.com public API.

scan_mcp_server input schema
{
  "type": "object",
  "required": [
    "endpoint_url"
  ],
  "properties": {
    "force": {
      "type": "boolean",
      "description": "Re-scan now instead of returning the cached verdict (results cache ~1h)."
    },
    "endpoint_url": {
      "type": "string",
      "maxLength": 512,
      "description": "The MCP server's https:// URL."
    }
  }
}
scan_mcp_server output schema
{
  "type": "object",
  "required": [
    "target",
    "target_type",
    "decision",
    "decision_final",
    "decision_reason",
    "trust_score",
    "verdict",
    "report_url"
  ],
  "properties": {
    "high": {
      "type": "integer",
      "minimum": 0,
      "description": "High findings, static and sandbox."
    },
    "tier": {
      "type": [
        "string",
        "null"
      ],
      "description": "Trust tier for the score (detail, not the headline)."
    },
    "cached": {
      "type": "boolean",
      "description": "Served from the ~1h cache."
    },
    "signed": {
      "type": "boolean",
      "description": "True when a signed (Ed25519/JWS) attestation backs this."
    },
    "target": {
      "type": "string",
      "description": "What was scanned, as given."
    },
    "install": {
      "type": [
        "string",
        "null"
      ],
      "description": "Install command, only when nothing blocks it."
    },
    "sandbox": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the behavioral sandbox observed; null if it does not apply."
    },
    "verdict": {
      "enum": [
        "safe",
        "needs_review"
      ],
      "type": "string",
      "description": "Binary form of the decision, kept for older clients."
    },
    "adoption": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "unit": {
          "type": "string"
        },
        "count": {
          "type": "integer"
        },
        "score_0_100": {
          "type": "integer"
        }
      },
      "description": "The adoption score: real usage (downloads per week, stars or installs). Never changes the decision."
    },
    "critical": {
      "type": "integer",
      "minimum": 0,
      "description": "Critical findings, static and sandbox."
    },
    "decision": {
      "enum": [
        "safe",
        "review",
        "do_not_connect"
      ],
      "type": "string",
      "description": "The answer to lead with: safe = Safe to connect, review = Review before you connect, do_not_connect = Do not connect."
    },
    "incident": {
      "type": [
        "object",
        "null"
      ],
      "description": "Known past compromise (context only, never scored)."
    },
    "certified": {
      "type": "boolean",
      "description": "Matches the signed attestation's certified.eligible."
    },
    "subscores": {
      "type": "object",
      "description": "Per-category 0-100 scores behind the trust score.",
      "additionalProperties": {
        "type": [
          "number",
          "null"
        ]
      }
    },
    "deprecated": {
      "type": [
        "string",
        "null"
      ],
      "description": "The maintainer's deprecation notice, or null."
    },
    "report_url": {
      "type": "string",
      "description": "Full report page."
    },
    "scanned_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When the scan ran (ISO 8601, UTC)."
    },
    "verify_url": {
      "type": "string",
      "description": "How to verify offline."
    },
    "not_checked": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Plain-English notes for what the scan could not read or check (empty when it read everything). Say these alongside the answer."
    },
    "target_type": {
      "type": "string",
      "description": "github, npm, pypi, crates, docker, hf, or mcp."
    },
    "trust_score": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "Trust score, 0-100. Evidence under the decision."
    },
    "published_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "When that version was published."
    },
    "top_findings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "what": {
            "type": [
              "string",
              "null"
            ],
            "description": "What was found."
          },
          "count": {
            "type": "integer",
            "description": "How many times it occurs."
          },
          "where": {
            "type": [
              "string",
              "null"
            ],
            "description": "File and line, if file-based."
          },
          "severity": {
            "type": [
              "string",
              "null"
            ],
            "description": "critical, high, medium, or low."
          },
          "remediation": {
            "type": [
              "string",
              "null"
            ],
            "description": "How to fix it."
          }
        }
      },
      "description": "Up to five most important findings."
    },
    "coverage_gaps": {
      "type": "object",
      "description": "Machine form of not_checked: gap kinds (e.g. tool_list_paged, oversized_files) with a flag or count. Empty when nothing was skipped."
    },
    "certified_mark": {
      "type": "boolean",
      "description": "Certified and safe: show the Certified mark."
    },
    "decision_final": {
      "type": "boolean",
      "description": "False while the behavioral sandbox is still running; the decision can still change."
    },
    "findings_total": {
      "type": "integer",
      "minimum": 0,
      "description": "All findings, every severity."
    },
    "rescan_pending": {
      "type": "boolean",
      "description": "A fresh scan was started; this is the previous result."
    },
    "verdict_reason": {
      "type": "string",
      "description": "Machine reason for the binary verdict, e.g. clean, clean_partial (clean, but not everything was read), blocking_findings, thin_coverage."
    },
    "decision_reason": {
      "type": "string",
      "description": "One sentence naming what decided it."
    },
    "package_version": {
      "type": [
        "string",
        "null"
      ],
      "description": "Package version scanned."
    },
    "report_json_url": {
      "type": "string",
      "description": "The full verdict as JSON."
    },
    "static_findings_total": {
      "type": "integer",
      "minimum": 0,
      "description": "Findings from static analysis only."
    },
    "advisories_affecting_version": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Published advisories that affect this version."
    }
  }
}
scan_mcp_server annotations
{
  "title": "Scan an MCP server",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
verify_trust — Verify an entity's trust score
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Verify an AgentAvow entity's trust score. Returns trust_score (0-1), trust_score_pct (0-100), trust_tier, and whether it meets a minimum threshold. Read-only, no auth. Use before interacting with an unknown agent.

verify_trust input schema
{
  "type": "object",
  "required": [
    "entity_id"
  ],
  "properties": {
    "entity_id": {
      "type": "string",
      "maxLength": 64,
      "description": "UUID of a registered AgentAvow entity (resolve one with lookup_identity; unknown ids return guidance, not an error)."
    },
    "min_trust": {
      "type": "number",
      "default": 0.3,
      "description": "Min score, 0-1."
    }
  }
}
verify_trust annotations
{
  "title": "Verify an entity's trust score",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_interaction_safety — Check interaction safety
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check whether it is safe to interact with another agent by trust threshold. Thresholds: delegate 0.6, trade 0.5, collaborate 0.4, follow 0.1. Returns is_safe, risk_level, the score, and a recommendation. Read-only, no auth.

check_interaction_safety input schema
{
  "type": "object",
  "required": [
    "target_entity_id",
    "interaction_type"
  ],
  "properties": {
    "interaction_type": {
      "enum": [
        "delegate",
        "trade",
        "collaborate",
        "follow"
      ],
      "type": "string"
    },
    "target_entity_id": {
      "type": "string",
      "maxLength": 64,
      "description": "UUID of a registered target entity (resolve one with lookup_identity)."
    }
  }
}
check_interaction_safety annotations
{
  "title": "Check interaction safety",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
lookup_identity — Look up an agent or tool
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Look up an AgentAvow entity by W3C DID or display name. Returns the entity's id, name, type, trust score and tier. Read-only, no auth. Use to resolve an identity before checking its trust.

lookup_identity input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "pattern": "^[\\w .:/@#+-]{1,200}$",
      "maxLength": 200,
      "description": "A did:web:... or a display name."
    }
  }
}
lookup_identity annotations
{
  "title": "Look up an agent or tool",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_trust_badge — Get a trust badge
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get an embeddable AgentAvow trust badge (SVG) for an entity, with ready-to-paste Markdown and HTML. The badge auto-updates as the score changes. Read-only, no auth.

get_trust_badge input schema
{
  "type": "object",
  "required": [
    "entity_id"
  ],
  "properties": {
    "entity_id": {
      "type": "string",
      "maxLength": 64,
      "description": "UUID of a registered AgentAvow entity (resolve one with lookup_identity)."
    }
  }
}
get_trust_badge annotations
{
  "title": "Get a trust badge",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
about_agentavow — About AgentAvow
Advertised by the server during the last successful anonymous check.
Advertised read-only

What AgentAvow is, which tool to use for what, how to read a verdict, and example scans. Call this for an overview or when getting started. No input, read-only.

about_agentavow input schema
{
  "type": "object",
  "properties": {}
}
about_agentavow annotations
{
  "title": "About AgentAvow",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

2 advertised

agentavow_get_started — AgentAvow: get started

Advertised by the server during the last successful anonymous check.

What AgentAvow checks and how to read a verdict, with examples.

No arguments advertised.

agentavow_check_my_connections — AgentAvow: check my connections

Advertised by the server during the last successful anonymous check.

Grade the other MCP servers and connectors enabled in this conversation and say which to review first.

No arguments advertised.

Resources

2 advertised

AgentAvow trust card

Advertised by the server during the last successful anonymous check.

Interactive trust card rendered from a scan result.

AgentAvow trust card URI
ui://agentavow/trust-card-v14.html

MIME type: text/html;profile=mcp-app

AgentAvow trust card (previous version)

Advertised by the server during the last successful anonymous check.

Interactive trust card rendered from a scan result.

AgentAvow trust card (previous version) URI
ui://agentavow/trust-card-v13.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
600 ms
95th percentile latency
600 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 600 ms · metadata changed · 8 tool(s), 2 resource(s), 2 prompt(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agentavow-mcp https://agentavow.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agentavow-mcp --url https://agentavow.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agentavow-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agentavow-mcp": {
      "url": "https://agentavow.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agentavow-mcp": {
      "type": "streamableHttp",
      "url": "https://agentavow.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agentavow-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agentavow-mcp": {
      "type": "http",
      "url": "https://agentavow.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agentavow-mcp https://agentavow.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://agentavow.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agentavow-mcp": {
      "serverUrl": "https://agentavow.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like AgentAvow MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run AgentAvow MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing