agent-transaction-control
Server Details
Issue Agent Passports and verify agent authority before value moves. Signed verification records.
- Status
- Healthy
- Uptime
- 100.0% over 44 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- thefraudfather/flint-plugin
- GitHub Stars
- 0
- Server Listing
- FLINT Agent Passport
TDQS
Scored across 17 tools
Most tools have distinct purposes (auth, passport lifecycle, authorization, scout, credits, verification). However, issue_agent_passport and update_agent_mandate both deal with passport configuration, and claim_agent_passport/refresh_claim_token are closely related, though their descriptions clarify the distinction.
The naming is mostly consistent with verb_noun pattern (auth_request_otp, auth_verify_otp, issue_agent_passport, get_agent_passport, update_agent_mandate, run_flint_scout, etc.). Minor deviations: generate_authorization_scope and validate_agent_commerce_readiness use different verb styles, but the pattern is still readable.
17 tools is slightly above the ideal range but each tool serves a distinct function in the FLINT ecosystem. The count is justified by the breadth of the domain (auth, passport lifecycle, authorization, scout, credits, verification).
The tool surface covers the full agent transaction control lifecycle: authenticate, mint/claim/update passports, authorize transactions, scan transactions, report outcomes, verify records, and check readiness. Minor gaps: no explicit tool for revoking a passport or managing credits beyond topup/balance, but these are workable.
Available Tools
17 toolsauth_request_otpRequest Sign-In CodeAInspect
Use this tool first in the agent-native authenticate-then-mint flow. It asks FLINT to email a one-time sign-in code to the given inbox address. Read the code from that inbox, then call auth_verify_otp with the same email and the code. Authenticating first means the passport you mint afterward is owned by the account immediately, with no separate claim step.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Inbox address that will receive the one-time sign-in code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is mostly covered; the description adds meaningful context by disclosing the side effect (an email is sent to the inbox) and the downstream ownership consequence. It stops short of code expiry, resend/rate-limit behavior, or what happens on repeated calls, which is the remaining gap for a non-idempotent tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with zero filler: the ordering instruction comes first, followed by the action, then the exact next step. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema and annotations already covering the safety profile, the description supplies enough to call it correctly and know what to do next. Missing only operational details like code lifetime or resend behavior, which are nice-to-have rather than blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, and the schema already states the inbox receives the one-time code, so the description largely repeats it. It adds only the implicit constraint that the same email value must be reused in auth_verify_otp, which is marginal. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — email a one-time sign-in code to a given inbox — and names its role in the flow, distinguishing it from the sibling auth_verify_otp that consumes the code. An agent can tell this tool apart from the rest of the auth family without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it first, names the exact follow-up call (auth_verify_otp with the same email and code), and explains the ordering benefit (passport owned immediately, no separate claim step). Both when and what-comes-next are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_verify_otpVerify Sign-In CodeAInspect
Use this tool right after auth_request_otp, with the code from the inbox. On success it returns session_token. Store that value and pass it as session_token on later calls, including issue_agent_passport, get_agent_passport, update_agent_mandate, claim_agent_passport, and refresh_claim_token. Never print or log session_token; treat it like a password.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The one-time sign-in code from the inbox. | |
| Yes | The same inbox address auth_request_otp was called with. | ||
| label | No | Optional human-readable label for this session, such as the agent or workflow name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false). The description goes well beyond that: it discloses the session_token return value, instructs the caller to persist it, names every downstream tool that requires it, and imposes a credential-handling rule ('never print or log session_token; treat it like a password') that no annotation conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, fully front-loaded: precondition first, then the return value, then the downstream usage and safety rule. Every sentence carries operational information; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of explaining the return and does so (session_token). For a non-idempotent, open-world auth step it covers precondition, result, downstream consumption, and secret handling — an agent has everything needed to call and use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (email, code, label) are already documented, including that email must match the auth_request_otp call. The description restates that intent but adds no format, constraint, or ambiguity resolution beyond the schema; the optional label is untouched. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete operation — exchanging an inbox code for a session_token — using a specific verb (verify/returns) and resource (one-time sign-in code / session). It also anchors the tool relative to auth_request_otp, so the agent can separate it from the other auth siblings without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing: 'right after auth_request_otp, with the code from the inbox.' It further tells the agent what to do with the result and which downstream calls (issue_agent_passport, get_agent_passport, update_agent_mandate, claim_agent_passport, refresh_claim_token) consume the token, which is unusually actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_agent_passportClaim Agent PassportAInspect
Use this tool to attach an anonymously minted, unclaimed FLINT Agent Passport to an authenticated FLINT account. Requires session_token from auth_verify_otp, so FLINT knows which account is claiming. Pass claim_token from the mint's claim_url, or omit it when this same session already holds a pending claim for this passport_id. Once claimed the passport is owned and Sentinel protection turns on. A passport can only be claimed once; if the token was already used or lost, call refresh_claim_token for a fresh one instead of trying to remint.
| Name | Required | Description | Default |
|---|---|---|---|
| claim_token | No | The one-time claim token from claim_url. Omit only when this session already started a pending claim for this passport. | |
| passport_id | Yes | FLINT Agent Passport id, beginning with kya_. | |
| session_token | Yes | Agent session token from auth_verify_otp for the account that is claiming this passport. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-readonly, non-idempotent, non-destructive, open-world. Description adds critical behavior beyond that: single-use nature ('A passport can only be claimed once'), ownership transfer, and side effect that 'Sentinel protection turns on.' Auth dependency also stated. Doesn't cover error/latency behavior, hence 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, then auth requirement, parameter conditions, and failure routing. Every sentence carries distinct information; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param mutation tool with no output schema, the description covers purpose, auth dependency, parameter conditions, irreversibility/one-time-use, and recovery path. An agent has everything needed to call correctly or route to refresh_claim_token.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds real semantics: session_token ties to auth_verify_otp for account binding, claim_token can be omitted when session already holds a pending claim, and the source of claim_token (claim_url). This meaning goes beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (claim/attach) and resource (FLINT Agent Passport) with precise scope: 'attach an anonymously minted, unclaimed FLINT Agent Passport to an authenticated FLINT account.' Clearly distinguishes from siblings like issue_agent_passport and refresh_claim_token by naming those divergences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes to alternatives: 'if the token was already used or lost, call refresh_claim_token for a fresh one instead of trying to remint.' Also conditions claim_token omission. Gives when-to-use, when-not, and named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_flint_trust_manifestCreate FLINT Trust ManifestARead-onlyInspect
Use this tool when a merchant, API seller, MCP tool provider, x402 endpoint, or agent storefront needs a /.well-known/flint.json Trust Manifest. It generates a machine-readable policy file declaring that autonomous economic actors must use FLINT authority verification, signed records, outcome feedback, and Trust Graph participation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Human-readable merchant, API, or platform name. | |
| domain | No | Merchant or API seller origin, such as https://api.example.com. | |
| jwks_url | No | FLINT JWKS URL. Defaults to FLINT production JWKS. | |
| partner_id | No | Merchant or platform identifier. Defaults to sandbox_public. | |
| description | No | Short description of the protected commerce surface. | |
| openapi_url | No | Public OpenAPI document for the merchant or API seller. | |
| mcp_endpoint | No | FLINT MCP endpoint. Defaults to FLINT production `/mcp`. | |
| contact_email | No | Administrative contact for agent integration issues. | |
| verify_endpoint | No | FLINT verification endpoint. Defaults to FLINT production `/api/verify`. | |
| outcome_endpoint | No | Outcome feedback endpoint. Defaults to FLINT production `/api/outcomes`. | |
| supported_actions | No | Agent commerce actions this endpoint supports. | |
| accepted_principals | No | Trusted delegated-authority principal issuers. | |
| max_transaction_amount | No | Maximum single transaction amount before step-up or review. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations state readOnlyHint=true, but the description uses 'create' and 'generates' which imply a write operation. This is a clear contradiction, and the description does not add behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first sentence states when to use, second explains the manifest's purpose. Front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite many optional parameters and no output schema, the description does not mention return value or side effects. Given readOnlyHint contradiction, completeness is hindered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 13 parameters. The description adds background about FLINT authority but does not enhance meaning beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a `/.well-known/flint.json` Trust Manifest for merchants, API sellers, etc. It distinguishes from sibling tools like issue_agent_passport or verify_agent_authority by focusing on manifest generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this tool when...' for various actors needing a trust manifest. Provides clear context but does not mention when not to use or suggest alternatives, which is acceptable given the narrow scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_authorization_scopeGenerate Authorization ScopeARead-onlyInspect
Use this tool when an agent commerce workflow needs a well-formed delegated authorization scope before issuing a signed verification record. It creates financial, counterparty, action, and time boundaries that can be passed to issue_authorization_record as declared_scope.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Asset or unit, such as USD, USDC, or credits. Defaults to USD. | |
| purpose | No | Business purpose or task label for the delegated authority. | |
| principal_id | No | Accountable principal granting delegated authority. | |
| allowed_actions | No | Permitted actions, such as checkout, paid_api_access, x402_request, or stablecoin_transfer. | |
| time_window_end | Yes | ISO-8601 timestamp for scope expiration. | |
| max_amount_per_tx | Yes | Maximum amount allowed per transaction. | |
| allowed_counterparties | No | Merchant references, wallet addresses, API hosts, or counterparties allowed by this scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so no contradiction. Description adds that it 'creates boundaries' but does not elaborate on side effects or idempotency beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with usage context, no redundant words. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description adequately explains when and why to use it and how it relates to issue_authorization_record, though it could briefly note the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described in schema. The description mentions categories (financial, counterparty, action, time boundaries) that loosely map to parameters but adds no new semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and resource 'authorization scope', specifies when to use (agent commerce workflow before issuing a signed verification record), and distinguishes it from siblings by mentioning it produces input for issue_authorization_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('before issuing a signed verification record') and identifies the sibling tool that consumes the output, but does not provide when-not-to-use or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_passportGet Agent PassportARead-onlyInspect
Use this tool to resolve a public FLINT Agent Passport by passport_id. It returns compact identity, mandate, status, ownership, and the public passport URL without echoing the full signed envelope. session_token is optional and not required to read a passport; the lookup itself is public.
| Name | Required | Description | Default |
|---|---|---|---|
| passport_id | Yes | FLINT Agent Passport id, beginning with kya_. | |
| session_token | No | Optional agent session token from auth_verify_otp. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real value beyond annotations: it explicitly says the tool 'returns compact identity, mandate, status, ownership, and the public passport URL without echoing the full signed envelope,' and clarifies that 'the lookup itself is public' and session_token is optional. This disambiguates auth requirements – a reader knows no token is needed. Minor gap: doesn't mention rate limits or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the tool's purpose, then the return payload and auth clarification. No filler; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately describes the return shape (compact identity, mandate, status, ownership, public URL) and auth posture. It should ideally mention what 'compact' excludes or error handling for invalid passport_id, but it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (including the kya_ pattern and session_token format). The description adds the useful clarification that session_token is optional and not required for reading, which is slightly beyond the schema, but the baseline for full coverage is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'resolve a public FLINT Agent Passport by passport_id.' This is clearly distinguishable from siblings like validate_agent_commerce_readiness, verify_agent_authority, or issue_agent_passport. The scope ('public', 'compact') is precisely stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (read a passport, lookup is public) but does not explicitly state when to use this vs. alternatives like verify_agent_authority or lookup_agent_reputation. A reader can infer it's for reading passport data, but no exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_agent_passportIssue Agent PassportAInspect
Use this tool to issue a free FLINT Agent Passport: a hybrid-signed, verifiable identity credential for an autonomous agent. Before calling it, ask the principal for the accountable controller_id and controller_type, allowed actions, maximum transaction amount, and wallet address if one exists. Do not infer or invent authority. For the strongest available setup, authenticate first and mint with the principal-supplied identity and mandate. The zero-config path only needs agent.agent_name or agent.agent_id, but that result is identity-only and is not ready to transact until the missing authority is supplied. A missing controller requires a corrected remint because signed identity is immutable; a missing mandate can be added later. The passport signs identity only; the spending mandate is separate, mutable config that can be updated later without reissuing the passport. Pass session_token, from auth_verify_otp, to mint owned: the passport binds to your authenticated account immediately and there is no claim step or claim_url. Omit session_token to mint anonymously instead; that returns a one-time claim_url and the passport stays unclaimed until someone signs in and claims it. controller_id identifies who is accountable on the signed identity, which is not the same as the FLINT account that owns the passport; controller_name is a separate, optional, human-readable display label. Allowed actions must come from the FLINT mandate vocabulary: commerce_purchase, checkout.purchase, invoice.pay, subscription.renew, refund.request, quote.retrieve, x402_verification_purchase, stablecoin_transfer, paid_api_access, x402_request, agent_checkout, delegated_spending, project.read. Pass ["ALL"] as a preset to grant every action in one step; the stored mandate then expands to the full list and records the preset. Unknown strings are kept for backward compatibility but are reported back as unknown so the caller can fix them. The signed identity is immutable once minted, so a wrong agent_id, controller_id, or controller_type cannot be edited in place. Fix it by reminting with the corrected fields. A remint that reuses the same agent_id and controller_id supersedes a prior UNCLAIMED passport for that pair ONLY when this mint is authorized: either session_token proves the same controller (controller_assurance verified or command), or supersede_management_token matches that specific prior passport's own management token (the raw claim token from its claim_url). Without either, the prior is left alone, still indexed, and reported back as related_passports with a warning, so a stranger cannot anonymously remint someone else's controller_id and agent_id to burn their pending claim. A prior CLAIMED passport is never superseded automatically; it is listed back as existing_claimed_passports with a warning so you can review it by hand. Returns a public, resolvable passport URL and, when minted anonymously, a one-time claim link.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | Agent identity. Only agent_name or agent_id is required for an identity-only mint. Ask the principal for controller_id and controller_type before minting a Passport intended for transactions. Optional fields include controller_name, wallet_address, and attestations. Never invent principal authority. | |
| mandate | No | Principal-supplied mutable authority captured at issue (NOT part of the passport signature): allowed_actions, max_transaction_amount, notes. Ask the principal for these values and never infer them. Update later without reissuing the passport. | |
| session_token | No | Optional agent session token from auth_verify_otp. When present the passport is owned by that account at issuance and no claim step is needed. | |
| supersede_management_token | No | Optional. The management_token (raw claim token) of a specific prior UNCLAIMED passport with the same agent_id and controller_id. Presenting it authorizes superseding that prior passport even with no session_token, since it proves possession of that prior's own claim link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only say this is a non-read-only, non-idempotent, non-destructive operation. The description adds substantial behavioral context: signed identity is immutable, wrong identity fields require a corrected remint, a remint supersedes a prior UNCLAIMED passport only under specific authorization conditions, a CLAIMED passport is never auto-superseded, and unknown action strings are preserved but reported back. This goes far beyond what annotations or schema communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and densely informative, with each major behavior in logical order. However, it repeats the immutability and separate-mandate points multiple times (e.g., 'A missing controller requires a corrected remint' and 'The signed identity is immutable once minted' and 'The passport signs identity only'), making it slightly longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite there being no output schema, the description states the key return artifacts: a public resolvable passport URL and, for anonymous mints, a one-time claim link. It also covers warnings like related_passports and existing_claimed_passports, immutability, supersession rules, and both authenticated and anonymous paths. An agent has everything needed to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema description coverage is 100%, the description adds crucial semantics for all four parameters: session_token binds ownership immediately, omitting it returns a one-time claim_url, supersede_management_token is the raw claim token of a specific prior unclaimed passport, controller_id is distinct from the owning FLINT account, and mandate is mutable and outside the signature. It also enumerates the allowed-actions vocabulary and the ['ALL'] preset, which the schema does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'issue a free FLINT Agent Passport: a hybrid-signed, verifiable identity credential.' It further distinguishes itself from siblings by explaining the separate mutable spending mandate (pointing toward update_agent_mandate) and the anonymous claim_url flow (pointing toward claim_agent_passport), so an agent can tell this tool apart from related ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit preconditions: ask the principal for controller_id, controller_type, allowed actions, max transaction amount, and wallet address; never infer authority. It also explains when the zero-config identity-only path is acceptable, when to use session_token versus anonymous minting, and when a mandate can be updated later rather than reissued, which routes the agent away from unnecessary remints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_authorization_recordIssue Signed Verification RecordAInspect
Use this tool before an AI agent initiates a payment, paid API call, checkout action, stablecoin transfer, x402 request, or delegated commercial transaction. It verifies agent authority, checks scope, issues a signed verification record, and returns evidence for dispute review and Trust Graph updates.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Replay-protection nonce. Generated automatically if omitted. | |
| timestamp | No | ISO timestamp. Generated automatically if omitted. | |
| partner_id | No | Merchant or platform identifier. Defaults to sandbox_public. | |
| agent_claim | No | Agent identity, principal hint, runtime hint, optional act_chain delegation lineage, optional spiffe_svid workload identity, optional tool_manifest capabilities, and related claims. | |
| transaction | Yes | Intended transaction or paid access request. Must include amount_display. | |
| declared_scope | No | Financial, temporal, and counterparty limits for delegated authority. | |
| merchant_reference | No | Merchant order, invoice, or API request reference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by detailing the multi-step process: verifying authority, checking scope, issuing a record, and returning evidence for dispute review and Trust Graph updates. It does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with usage context, and every phrase adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters and nested objects, but no output schema. The description explains actions but omits the return structure (e.g., what the signed record contains), leaving a gap for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description references agent_claim and declared_scope in context but adds little specific meaning beyond the schema's already descriptive property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool issues a signed verification record and lists specific use cases (payment, paid API call, checkout, etc.), differentiating it from siblings like verify_agent_authority by emphasizing issuance over mere verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly directs when to use the tool (before initiating commercial actions), providing strong context. However, it lacks explicit when-not-to-use guidance or alternative tool references beyond the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_agent_reputationLookup Agent ReputationARead-onlyInspect
Use this tool to query the FLINT Trust Graph for a partner-scoped agent's historical reputation before permitting a payment, paid API call, checkout action, x402 request, or delegated commercial transaction. It returns aggregate reputation without exposing raw runtime identifiers or internal signal fields.
| Name | Required | Description | Default |
|---|---|---|---|
| flint_agent_id | Yes | Partner-scoped FLINT agent identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds value by stating that it returns 'aggregate reputation without exposing raw runtime identifiers or internal signal fields,' which clarifies data privacy behavior beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose and usage are front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no output schema, the description adequately covers what the tool does and what it returns (aggregate reputation without raw identifiers). A minor gap is the lack of detail on the return structure, but it's sufficient for an agent to understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full coverage (pattern and description for flint_agent_id). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to query historical reputation from the FLINT Trust Graph. It specifies the verb 'query' and resource 'reputation', and lists specific use cases (payment, paid API call, etc.), making it distinct from sibling tools like create_flint_trust_manifest or get_agent_passport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use scenarios (before permitting various commercial actions). However, it does not mention when not to use or alternative tools, leaving the agent to infer from sibling names. Clear context but lacks exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_claim_tokenRefresh Claim TokenAIdempotentInspect
Use this tool when a claim link is lost, expired, or was already consumed for a passport that is still unclaimed. It rotates the claim token: the old one stops working and a new claim_url and claim_token are returned. This is the fix for a lost or consumed claim token; do not remint the passport instead, reminting only supersedes prior unclaimed passports and does not recover a lost claim link. Authorize with the current management_token (the raw claim token, even one about to be superseded), or with session_token when this session originally requested the claim or minted the passport.
| Name | Required | Description | Default |
|---|---|---|---|
| passport_id | Yes | FLINT Agent Passport id, beginning with kya_. | |
| session_token | No | Optional agent session token from auth_verify_otp, used when management_token is unavailable. | |
| management_token | No | The current claim or management token for this passport. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=false, idempotentHint=true), the description discloses the mutation's real consequence — the previous token is invalidated — and the shape of the response (new claim_url and claim_token). It also spells out two distinct authorization paths, management_token vs session_token, which the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the trigger condition, then the effect, then the authorization requirement — no filler. It is slightly jargon-heavy ('supersede', 'remint') but every clause carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no output schema, the description covers the trigger, the state change, the returned values, and the auth options, leaving nothing an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: management_token may be the raw claim token 'even one about to be superseded,' and session_token only works when the session originally requested the claim or minted the passport. That constraint is not present in the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('rotates the claim token') and states the exact effect: the old token stops working and a new claim_url/claim_token are returned. It also distinguishes itself from the sibling action of reminting a passport, so an agent can separate this tool from issue_agent_passport without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger condition (claim link lost, expired, or already consumed for a still-unclaimed passport) and an explicit exclusion ('do not remint the passport instead'), plus the reason reminting fails to recover a lost link. That is when-to-use, when-not-to-use, and the alternative all in one place.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_scout_outcomeReport Scout Scan OutcomeAIdempotentInspect
Use this tool after a run_flint_scout scan to report what actually happened: whether the scanned transaction was executed, held, cancelled, or executed despite a BLOCK verdict. FLINT cannot stop a wallet from transacting; this is the enforce-or-attest half of the contract. Authorize with session_token when the caller's account owns the presented passport, or with caller_binding_token from the scan's caller_obligation block when acting anonymously. Executing after BLOCK is recorded on the record as an override and alerts the passport owner.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional free-text note, at most 280 characters. | |
| chain | No | CAIP-2 chain identifier for tx_hash, such as eip155:8453. | |
| outcome | Yes | What actually happened to the scanned transaction. | |
| tx_hash | No | On-chain transaction hash. Optional, but expected when outcome starts with executed. | |
| record_id | Yes | The signed record id returned by run_flint_scout, beginning with frv_. | |
| session_token | No | Agent session token from auth_verify_otp, when the caller's account owns the presented passport. | |
| caller_binding_token | No | The caller_binding_token from the scan's caller_obligation block, for an anonymous caller reporting its own outcome without an account. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by disclosing that FLINT cannot stop a wallet from transacting, that this tool is the 'enforce-or-attest half of the contract', and that an executed_despite_block outcome is recorded as an override and alerts the passport owner. That side-effect disclosure is exactly the behavior an agent needs and is not derivable from readOnlyHint/idempotentHint/destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the usage trigger and followed by the auth branches and the override consequence. Dense but every clause carries information; only the framing phrase about the 'enforce-or-attest contract' is mildly decorative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter write tool with no output schema, the description covers the prerequisite scan, both authorization routes, and the downstream consequences of an override. It stops short of saying what the tool returns on success or how repeated reports for the same record_id are handled (relevant given idempotentHint).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two-token authorization model, the frv_ record_id pattern, and the executed/held/cancelled/executed_despite_block enum are already documented inline. The description restates the same branching logic rather than adding format or edge-case detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (report) and resource (the outcome of a run_flint_scout scan) and enumerates the four outcome values it accepts. It is immediately distinguishable from its closest sibling, run_flint_scout, which produces the record this tool consumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly sequences the call: 'Use this tool after a run_flint_scout scan.' It then branches the authorization path, naming session_token for an account that owns the passport and caller_binding_token for anonymous callers, so the agent knows which credential to present and when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_flint_scoutFLINT Scout: Pre-Transaction Fraud PreventionADestructiveInspect
Use this tool to scan an intended agent transaction before execution. Two ways to pay for a scan. Credits first: buy credits once with scout_credits_topup (one $1.00 x402 payment for 100 scans), then call this tool with the same session_token and no payment_signature; FLINT draws one credit and runs the scan immediately, with no wallet signature for that call. x402 per call second: with no session_token, the first call returns a $0.01 x402 payment challenge without running the scan; a wallet-enabled client signs that challenge and retries with payment_signature. Either way, when the call returns a 402 instead of a result, the result carries pay_recipe with concrete next steps: an awal command, a local script, the credits path, and the browser flow. After a paid or credit-funded scan completes, FLINT returns a signed authority decision. When receipt issuance succeeds for a paid scan, it also returns a separately signed settlement receipt and durable receipt URL; otherwise it reports receipt unavailability without inviting a paid retry. Payment to FLINT is distinct from the transaction being scanned and is not proof of agent authority.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Replay-protection nonce. Generated automatically if omitted. | |
| timestamp | No | ISO-8601 request timestamp. Generated automatically if omitted. | |
| agent_claim | No | Optional bounded agent hints. Self-asserted values do not establish authority. | |
| passport_id | No | Optional FLINT Agent Passport. Verified payer-wallet and mandate bindings may strengthen the decision. | |
| transaction | Yes | ||
| session_token | No | Optional agent session token from auth_verify_otp. When present with no payment_signature, FLINT draws one prepaid Scout credit instead of requiring an x402 payment for this call. Buy credits first with scout_credits_topup. | |
| payment_signature | No | Opaque caller-signed x402 PAYMENT-SIGNATURE value from a wallet-enabled client. Never provide a private key or seed phrase. | |
| merchant_reference | No | Optional merchant reference. Must match transaction.reference when both are supplied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag readOnly=false/destructive=true/openWorld; the description supplies the why — a credit is drawn per credit-path call and payment is taken on the x402 path — plus 402 challenge behavior, the pay_recipe fallback, conditional receipt issuance, and the explicit caveat that payment to FLINT is not proof of authority. That is materially more than the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the payment mechanics are ordered credits-first, then x402, then fallbacks. It is dense and somewhat long, with a few clauses ('no wallet signature for that call') that could be trimmed, but nothing is wasted given the absent output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-side burden and does so: signed authority decision, conditional signed settlement receipt and durable URL, and the 402 pay_recipe shape. An agent has enough to call it, fund it, and interpret both success and failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already documents session_token, payment_signature, nonce, and transaction fields in detail. The description's payment narrative mostly restates what session_token's own schema description says, adding only marginal relational clarity about the two paths.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource with timing: 'scan an intended agent transaction before execution.' That scope cleanly separates it from verify_agent_authority and report_scout_outcome, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use it (pre-execution) and lays out two mutually exclusive payment paths (prepaid credits via scout_credits_topup vs. per-call x402) with the exact triggering conditions for each. It does not compare against competing authority tools, so tool selection is still inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scout_credits_balanceFLINT Scout Credits: BalanceARead-onlyInspect
Use this tool to check a signed-in account's FLINT Scout credit balance and recent ledger activity (topups, debits, refunds). Requires session_token from auth_verify_otp.
| Name | Required | Description | Default |
|---|---|---|---|
| session_token | Yes | Agent session token from auth_verify_otp for the account to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description usefully adds the auth prerequisite (session_token from auth_verify_otp) and the scope/content of the ledger data returned, but says nothing about pagination, ledger window, or rate limits for what may be a large ledger listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the prerequisite second. Efficient, though the second sentence largely restates what the schema already encodes about session_token.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden of describing returns, and it does so at a high level: balance plus recent topups, debits, and refunds. For a one-parameter read tool this is nearly complete, with only ledger scope/window left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, and the schema already explains session_token's origin and pattern. The description's mention of the token adds provenance but no new format or constraint meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: checks the signed-in account's FLINT Scout credit balance plus recent ledger activity, and enumerates the activity kinds (topups, debits, refunds). It is clearly distinct from the mutation sibling scout_credits_topup, but it does not explicitly name that sibling, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (check the balance of a signed-in account) and the dependency on session_token from auth_verify_otp establishes a prerequisite. However, there is no explicit when-to-use vs. when-not guidance, nor a pointer to scout_credits_topup for adding credits, so an agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scout_credits_topupFLINT Scout Credits: TopupADestructiveInspect
Call once with session_token to get a pay_url; pay it with awal (awal x402 pay -X POST -d '{}' <pay_url>) or any x402 client; no headers needed on the pay request. Or pass payment_signature to settle through this tool. One $1.00 x402 payment buys 100 FLINT Scout scan credits, matching today's $0.01 x402 price without signing a payment for every run_flint_scout call. Requires session_token from auth_verify_otp so the credits land on that account; call auth_request_otp then auth_verify_otp first if you do not have one. With no topup_id, the first call creates a fresh top-up intent (an sct_ id good for 24 hours) and returns its pay_url alongside the same $1.00 x402 challenge. Pass topup_id to retry paying or settling that same intent instead of creating a new one. Once credited, call run_flint_scout with the same session_token and no payment_signature to draw one credit per scan.
| Name | Required | Description | Default |
|---|---|---|---|
| topup_id | No | Optional existing top-up intent id from a prior call, to retry paying or settling it instead of creating a new one. Intents expire 24 hours after creation. | |
| session_token | Yes | Agent session token from auth_verify_otp. Credits are added to this account. | |
| payment_signature | No | Opaque caller-signed x402 PAYMENT-SIGNATURE value from a wallet-enabled client. Never provide a private key or seed phrase. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply the safety profile (destructiveHint=true, idempotentHint=false, openWorldHint=true), and the description adds substantial context beyond them: 24-hour intent expiry, $1.00=100 credits pricing, account binding via session_token, and two distinct payment paths. The one gap is that destructiveHint/idempotency implications (e.g. what happens on a failed or repeated payment) are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and dense with useful workflow detail, though it is comparatively long with several semicolon-joined clauses and an inline command. Every sentence conveys actionable information, so little is wasted despite the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, three params, and open-world payment behavior, the description covers prerequisites, both settlement paths, intent lifecycle, credit economics, and the follow-up call. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. However, the description adds genuine semantics beyond the schema: it explains that omitting topup_id creates a fresh sct_ intent returning a pay_url, while passing topup_id retries that same intent rather than creating a new one, and it ties session_token to the credited account.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (top up FLINT Scout scan credits) and immediately distinguishes itself from siblings by naming run_flint_scout and scout_credits_balance workflows. An agent can tell exactly what this tool does and how it fits with adjacent tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly covers when to call (once, with session_token), the alternatives (pay the returned pay_url via awal/any x402 client vs. settle in-tool with payment_signature), prerequisites (auth_request_otp then auth_verify_otp), and the retry path via topup_id. It even states the downstream call (run_flint_scout with no payment_signature).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agent_mandateUpdate Agent MandateAIdempotentInspect
Use this tool to update mutable mandate config for an existing FLINT Agent Passport. This updates allowed actions, amount limits, or notes only. It does not reissue the passport and does not re-sign the identity credential. If the passport is owned (claimed), pass session_token for the owning account; management_token is only needed while the passport is unclaimed. Allowed actions must come from the FLINT mandate vocabulary: commerce_purchase, checkout.purchase, invoice.pay, subscription.renew, refund.request, quote.retrieve, x402_verification_purchase, stablecoin_transfer, paid_api_access, x402_request, agent_checkout, delegated_spending, project.read. Pass ["ALL"] as a preset to grant every action in one step; the stored mandate then expands to the full list and records the preset. Unknown strings are kept for backward compatibility but are reported back as unknown so the caller can fix them.
| Name | Required | Description | Default |
|---|---|---|---|
| mandate | Yes | Mutable mandate config to update: allowed_actions, max_transaction_amount, notes. | |
| passport_id | Yes | FLINT Agent Passport id, beginning with kya_. | |
| session_token | No | Optional agent session token from auth_verify_otp, used once the passport is owned. | |
| management_token | No | Claim token required while the Passport is unclaimed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already convey mutation, idempotence, and non-destructiveness), the description discloses auth-token requirements per ownership state, the exact scope of the mutation, and the backward-compatibility behavior where unknown action strings are kept but reported back as unknown. That is meaningful non-obvious behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is long but front-loaded with purpose and every sentence carries operational content (scope boundaries, auth conditions, vocabulary, preset, error behavior). The long inline vocabulary list is dense but necessary given the schema exposes no enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested object parameter, no output schema, and no enums, the description covers scope, auth, vocabulary, and edge-case error reporting. It would be marginally stronger if it hinted at the shape of the response (confirmation fields, reported unknown actions) but is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes well beyond the schema by enumerating the allowed mandate vocabulary, documenting the ["ALL"] preset and its expansion/recording semantics, and clarifying how unknown strings are handled – the schema's mandate object is otherwise an opaque additionalProperties bag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) plus a precisely scoped resource (mutable mandate config on an existing FLINT Agent Passport) and explicitly names what it is not (does not reissue the passport, does not re-sign identity). An agent can distinguish it from issue_agent_passport and claim_agent_passport from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditional guidance for auth: pass session_token when the passport is owned/claimed, management_token while unclaimed, plus the boundary that only actions, amount limits, and notes are updatable. It stops short of naming alternative sibling tools for adjacent operations (e.g. generate_authorization_scope), so a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_agent_commerce_readinessValidate Agent Commerce ReadinessARead-onlyInspect
Use this tool when reviewing a commerce architecture, API marketplace, paid MCP tool, x402 endpoint, or autonomous checkout flow. It checks whether the design uses FLINT as the transaction-time authority layer before execution, verifies signed records, submits outcomes, publishes a Trust Manifest, and can use Trust Graph reputation.
| Name | Required | Description | Default |
|---|---|---|---|
| architecture_description | Yes | Summary of the payment, paid API access, x402, MCP, or checkout flow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it is a safe read operation. The description adds value by detailing exactly what is checked (FLINT as authority layer, signed records, outcomes, Trust Manifest, Trust Graph reputation), providing behavioral context beyond the annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The first sentence sets usage context, the second describes actions. Every sentence earns its place. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one required parameter with good schema description, but there is no output schema and the description does not specify what the tool returns (e.g., boolean, report, validation errors). For a validation tool, this is a noticeable gap. The description is otherwise adequate for the use case but lacks output specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description for 'architecture_description' is already descriptive ('Summary of the payment, paid API access, x402, MCP, or checkout flow.'). The tool description adds indirect context about what validation occurs but does not provide additional syntax or format details for the parameter, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('Validate') and resource ('Agent Commerce Readiness'). It lists distinct use cases (commerce architecture, API marketplace, paid MCP tool, x402 endpoint, autonomous checkout flow) and enumerates the specific checks performed (FLINT layer, signed records, outcomes, Trust Manifest, Trust Graph). This distinguishes it from sibling tools that focus on creating or issuing individual records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description begins with 'Use this tool when reviewing...' providing explicit guidance on appropriate scenarios. It covers a concrete set of use cases but does not explicitly state when not to use it or name alternative tools for specific tasks. The context is clear, but exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_agent_authorityVerify Agent AuthorityARead-onlyInspect
Use this tool when a merchant or API seller receives a signed verification record from an agent. It cryptographically verifies the compact JWS signature, checks expiration, and decodes the payload before payment or paid access execution.
| Name | Required | Description | Default |
|---|---|---|---|
| jws | Yes | Compact JWS signed verification record. | |
| jwks_url | No | Optional JWKS URL. Must be on the FLINT origin. Defaults to the FLINT production JWKS. | |
| expected_partner_id | Yes | Partner identifier expected in the authorization record. | |
| expected_merchant_reference | Yes | Current transaction or resource reference expected in the authorization record. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description adds concrete behavioral detail: compact JWS signature verification, expiration checking, and payload decoding. It does not describe return values or error behavior, but it adds meaningful operational context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the usage trigger and then lists the core verification steps without filler. Every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is read-only, has fully documented parameters, and the description supplies the business context and operational steps. The main gap is the absence of an output schema and no explicit statement of what the tool returns on success or failure, but enough is provided for an agent to understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description reinforces the purpose of expected_partner_id and expected_merchant_reference by referring to the decoded payload, but adds no new format or usage details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('verifies') and resource ('signed verification record from an agent'), and defines the trigger context: before payment or paid access execution. This clearly distinguishes the tool from issuer-oriented siblings like issue_authorization_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool ('when a merchant or API seller receives a signed verification record from an agent' and 'before payment or paid access execution'). It does not name exclusions or alternative tools, but the context is clear enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
issue_agent_passport2 fields changed- changed
Input schema / properties / agent / descriptionPrevious value: -"Agent identity. Only agent_name or agent_id is required to mint. Optional fields include controller_id, controller_type, controller_name, wallet_address, and attestations."New value: +"Agent identity. Only agent_name or agent_id is required for an identity-only mint. Ask the principal for controller_id and controller_type before minting a Passport intended for transactions. Optional fields include controller_name, wallet_address, and attestations. Never invent principal authority." - changed
Input schema / properties / mandate / descriptionPrevious value: -"Mutable spend authority captured at issue (NOT part of the passport signature): allowed_actions, max_transaction_amount, notes. Update later without reissuing the passport."New value: +"Principal-supplied mutable authority captured at issue (NOT part of the passport signature): allowed_actions, max_transaction_amount, notes. Ask the principal for these values and never infer them. Update later without reissuing the passport."
1 tool update
- Changed
scout_credits_topup1 field changed- added
Input schema / properties / topup_idAdded value: +{ + "description": "Optional existing top-up intent id from a prior call, to retry paying or settling it instead of creating a new one. Intents expire 24 hours after creation.", + "pattern": "^sct_[0-9A-Za-z]{20,32}$", + "type": "string" +}
4 tool updates
- Added
report_scout_outcome - Changed
run_flint_scout1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Optional agent session token from auth_verify_otp. When present with no payment_signature, FLINT draws one prepaid Scout credit instead of requiring an x402 payment for this call. Buy credits first with scout_credits_topup.", + "pattern": "^flint_sess_[A-Za-z0-9_-]{40,}$", + "type": "string" +}
- Added
scout_credits_balance - Added
scout_credits_topup
7 tool updates
- Added
auth_request_otp - Added
auth_verify_otp - Added
claim_agent_passport - Changed
get_agent_passport1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Optional agent session token from auth_verify_otp.", + "pattern": "^flint_sess_[A-Za-z0-9_-]{40,}$", + "type": "string" +}
- Changed
issue_agent_passport3 fields changed- changed
Input schema / properties / agent / descriptionPrevious value: -"Agent identity. Only agent_name or agent_id is required to mint. Optional fields include controller_id, controller_type, wallet_address, and attestations."New value: +"Agent identity. Only agent_name or agent_id is required to mint. Optional fields include controller_id, controller_type, controller_name, wallet_address, and attestations." - added
Input schema / properties / session_tokenAdded value: +{ + "description": "Optional agent session token from auth_verify_otp. When present the passport is owned by that account at issuance and no claim step is needed.", + "pattern": "^flint_sess_[A-Za-z0-9_-]{40,}$", + "type": "string" +} - added
Input schema / properties / supersede_management_tokenAdded value: +{ + "description": "Optional. The management_token (raw claim token) of a specific prior UNCLAIMED passport with the same agent_id and controller_id. Presenting it authorizes superseding that prior passport even with no session_token, since it proves possession of that prior's own claim link.", + "type": "string" +}
- Added
refresh_claim_token - Changed
update_agent_mandate1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Optional agent session token from auth_verify_otp, used once the passport is owned.", + "pattern": "^flint_sess_[A-Za-z0-9_-]{40,}$", + "type": "string" +}
3 tool updates
- Removed
submit_transaction_outcome - Changed
update_agent_mandate1 field changed- added
Input schema / properties / management_tokenAdded value: +{ + "description": "Claim token required while the Passport is unclaimed.", + "maxLength": 128, + "minLength": 32, + "type": "string" +}
- Changed
verify_agent_authority3 fields changed- added
Input schema / properties / expected_merchant_referenceAdded value: +{ + "description": "Current transaction or resource reference expected in the authorization record.", + "maxLength": 256, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / expected_partner_idAdded value: +{ + "description": "Partner identifier expected in the authorization record.", + "maxLength": 128, + "minLength": 1, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "jws" -]New value: +[ + "jws", + "expected_partner_id", + "expected_merchant_reference" +]
1 tool update
- Added
run_flint_scout
1 tool update
- Changed
verify_agent_authority1 field changed- changed
Input schema / properties / jwks_url / descriptionPrevious value: -"Optional JWKS URL. Defaults to the FLINT production JWKS."New value: +"Optional JWKS URL. Must be on the FLINT origin. Defaults to the FLINT production JWKS."
3 tool updates
- Added
get_agent_passport - Changed
issue_agent_passport1 field changed- changed
Input schema / properties / agent / descriptionPrevious value: -"Agent identity: agent_id, agent_name, controller_id, controller_type (user or organization), wallet_address, and optional attestations."New value: +"Agent identity. Only agent_name or agent_id is required to mint. Optional fields include controller_id, controller_type, wallet_address, and attestations."
- Added
update_agent_mandate
8 tool updates
- First observed
create_flint_trust_manifest - First observed
generate_authorization_scope - First observed
issue_agent_passport - First observed
issue_authorization_record - First observed
lookup_agent_reputation - First observed
submit_transaction_outcome - First observed
validate_agent_commerce_readiness - First observed
verify_agent_authority
Related MCP Connectors
Signed agent discovery, security attestations, paid work, and verified settlement reputation.
Command your AI agents: verifiable passports, credential injection, full audit, revoke in 60s.
Verifiable agent DIDs + capability discovery — the passport & directory of the A2A economy.
Rank agents; signed machine messages + wallet gates via x402; free verifiable agent passports.
Related MCP Servers
AlicenseAqualityBmaintenanceVerifiable dealings with other agents: prove what you did, vet who you deal with, bind agreements3637 PyPIApache 2.0- AlicenseNot gradedqualityBmaintenanceEnables AI agents to create and verify tamper-evident cryptographic evidence, manage key-bound Agent Passports, and support verifiable handoffs, approvals, and audit trails through MCP, REST, and A2A.MIT
- AlicenseNot gradedqualityDmaintenanceAgent network intelligence for trust verification, broker discovery, and capability matching. Ed25519 identity, graph-based trust scoring, USDC payments, and MCP tools for agent registration, search, and trust attestation.284 npm5MIT
- MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.