Skip to main content
Glama

sign_receive_with_permit2

Read-only

Generates EIP-712 typed data for a Uniswap Permit2 PermitTransferFrom. Authorizes the spender (default: protocol diamond) to pull value from signerAddress until deadline. permit2Address defaults to contracts.permit2 from SDK config; permit2Nonce defaults to a random uint256. Sign locally with your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'Permit2', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.

Input Schema

NameRequiredDescriptionDefault
valueYesAmount in wei the spender is authorized to pull from the signer.
spenderNoOptional spender address. Defaults to the Boson Protocol diamond from SDK config.
configIdYesBoson/Fermion Protocol deployment identifier. Format: '<env>-<chainId>-<index>' e.g. 'production-137-0' (Polygon mainnet), 'testing-80002-0' (Amoy testnet). Call get_config_ids to list all valid values for this server.
deadlineYesUnix timestamp in seconds after which the Permit2 authorization is no longer valid.
permit2NonceNoOptional Permit2 nonce as a uint256 string. If omitted, a random uint256 is generated.
signerAddressYesEthereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.
permit2AddressNoOptional Uniswap Permit2 contract address. Defaults to contracts.permit2 from SDK config.
exchangeTokenAddressYesERC-20 token contract address that supports the permit/authorization standard.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: default spender (protocol diamond), default permit2Address from SDK config, random permit2Nonce when omitted, and the exact shape of what is returned (typedData + transferAuthorization template). No contradiction with the read-only hint.

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?

Front-loads the purpose, then layers defaults, the signing workflow, and the return value in three dense sentences; every sentence carries useful information. Slightly redundant with the schema's default descriptions, so not perfectly economical, but no filler.

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

Completeness5/5

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

There is no output schema, and the description compensates by explicitly describing the return (typedData to sign plus a transferAuthorization template) and the downstream step. For an 8-parameter signing helper, this covers what an agent needs to call it and use its result correctly.

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?

Schema description coverage is 100%, so the schema already documents all 8 parameters including the default behaviors. The description largely restates those defaults (spender, permit2Address, permit2Nonce) rather than adding syntax or format meaning beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb (Generates) and resource (EIP-712 typed data for a Uniswap Permit2 PermitTransferFrom). The mechanism is named precisely, which cleanly distinguishes it from the sibling sign_receive_with_dai_permit / erc2612 / erc3009 variants. An agent can tell which signing path this is 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.

Usage Guidelines4/5

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

Gives a clear procedural context: sign locally with EIP-712, add the signature to the returned transferAuthorization, and pass it in send_meta_transaction.transferAuthorizations. However, it never names the alternative sign_receive_* tools or states the condition (token standard) that selects this one over them, so sibling routing is left implicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources