← All MCP servers
MCP server

io.github.vinaybhosle/agentstamp

mcp:vinaybhosle/agentstamp

Identity certificates, public registry, and wishing well for AI agents — x402 micropayments on Base

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 26, 2026, 11:17 UTC at 3010e90
3
findings
high
highest severity
2
threat classes
207
files scanned
3,449/3,449
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding mcp-server:.:README.md:141:SUPPLY
  • suspicious: finding mcp-server:.:README.md:142:SUPPLY
  • suspicious: finding mcp-server:.:src/erc8004.js:171:RECON

Security findings 3

Supply chain

highContextual risklow confidence

README tells users to reference a GitHub Action pinned to the mutable `@main` branch, so CI would run whatever code is currently on that branch.

uses: vinaybhosle/agentstamp/.github/actions/verify-agent@main
conceal:remotevector:instruction
Counter-argument considered

This is the same unpinned @main action reference as the previous finding. Nothing in the evidence pins it or mitigates it.

Supply chain

mediumContextual risklow confidence

README tells users to consume a GitHub Action from the mutable `@main` ref rather than a pinned SHA or tag, so later upstream changes would run in the user's CI with access to the passed secret.

uses: vinaybhosle/agentstamp/.github/actions/verify-agent@main
vector:instruction
Counter-argument considered

The README tells users to run a GitHub Action from the mutable @main ref and pass a secret to it. The action lives in the project's own repo, but the ref is unpinned and no carve-out or mitigation applies. Severity is low.

Reconnaissance

lowContextual risklow confidence

The server fetches a registration URI controlled by arbitrary on-chain ERC-8004 token owners over HTTPS without blocking private or internal hostnames, so it could probe internal HTTPS endpoints (limited SSRF; redirects rejected, 512KB cap, https only).

const response = await fetch(url, {
vector:code
Counter-argument considered

isSafeUri only checks the https scheme and does not block private or internal hosts. Token owners control the URI, so internal HTTPS endpoints can be probed, and JSON 'services' arrays are returned. Redirects, the size cap and the https-only rule limit the impact but do not neutralize it.

Refuted findings 2

Candidates the review stage examined and rejected, kept for transparency.

Manipulation

mediumRefutedlow confidence

The trust_network tool result embeds a promotional call-to-action ('Join them.' plus a register URL) in data returned to the agent, which could nudge the agent toward registering.

message: `${agents.count} agents trust AgentStamp. Join them.`,
Why it was refuted

The message is a benign social-proof stat that the tool description declares. It contains no instruction to the agent and no concealed behavior, so there is no manipulation chain.

Privilege escalation

mediumRefutedmedium confidence

The MCP create_team tool creates a team owned by any supplied registered wallet address without verifying wallet ownership or signature, bypassing the signature requirement of the REST API; the weaker auth is disclosed only in the tool description.

Note: for production use, prefer the REST API (POST /api/v1/teams) which requires wallet signature verification.
Why it was refuted

The missing wallet-ownership check is openly disclosed in both the tool description and the code comments, so it is not concealed. It only creates a team record for a public registered wallet and does not escalate privilege.

Coverage gaps 7

Parts of the artifact the static analysis could not fully examine.

unanalyzable_binary binary content is only byte-scanned
web/app/favicon.ico
unanalyzable_binary binary content is only byte-scanned
web/public/favicon.ico
glob_budget_exceeded reference source exceeds 262144 characters
action/dist/index.js
parse_error tree-sitter tsx parse has errors; extraction may be partial
web/app/admin/analytics/page.tsx
parse_error tree-sitter tsx parse has errors; extraction may be partial
web/components/Footer.tsx
manifest_unparseable server configuration is not an object
discovery/mcp.json
invalid_refuter refuter results do not match requested findings