Skip to main content
Glama

Hook Passport

hook_passport
Read-only

Profiles a Uniswap v4 hook from public on-chain data, returning permission flags, owner and proxy status, Sourcify verification, admin functions, listed pools, and a rule-based risk score.

Instructions

What a Uniswap v4 hook can do, read from public on-chain data: permission flags from its address, proxy and owner, Sourcify verification, admin-style functions in its bytecode, pools in the list, and a rule-based risk score with every rule that fired.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "hook": "<hook>"
    },
    "name": "hook_passport"
  }
}

Input Schema

NameRequiredDescriptionDefault
hookYesHook contract address.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, and the description adds real value on top by disclosing the data provenance ('read from public on-chain data' — no auth or private index needed) and the shape of the result, including that the risk score is rule-based and ships with every rule that fired. It does not discuss failure modes such as an unverified contract or an address that is not a hook, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence that leads with the capability and then lists the returned evidence, with no filler or repetition of the title. The single long clause-chain is dense but every element maps to a distinct output component.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by naming each section of the response. For a one-parameter read-only tool that is close to sufficient; only edge-case behavior (unverified source, non-hook address, chain scope) is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter with 100% schema description coverage, so the schema already carries the semantics (a 0x-prefixed 40-hex hook contract address). The description only implies that the input identifies one hook and adds no format, validation, or chain-selection detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a concrete framing ('What a Uniswap v4 hook can do, read from public on-chain data') and enumerates the exact artifacts returned: permission flags, proxy/owner, Sourcify verification, admin-style functions, pools, and a rule-based risk score. That is far more specific than the title 'Hook Passport'. It stops short of 5 because it never distinguishes itself from the sibling list_hook_pools, which overlaps with the 'pools in the list' component.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the enumeration of security-relevant outputs signals this is a due-diligence/profile tool for a single hook. There is no explicit statement of when to call it, when not to, or which sibling (list_hook_pools, blurhook_deployment) to prefer for adjacent questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.