MCP server for Privy wallet infrastructure - create wallets, sign transactions, and manage policies with Claude and other AI agents
The Privy MCP server defines 24 tools with generally present input schemas and descriptions, but exhibits inconsistent quality across several dimensions. Naming follows verb_noun convention reasonably well (get_*, create_*, update_*, delete_*, sign_*), but several tools lack clarity on their scope and side effects. Descriptions exist for all tools but many are terse (under 100 chars) and lack guidance on when to use them versus similar tools. Parameter descriptions are present but often generic. Output schemas are completely undocumented, no tool explicitly declares what it returns, forcing LLMs to infer structure from context. High-risk tools like eth_sendTransaction and solana_signAndSendTransaction lack confirmation/dry-run patterns despite being IRREVERSIBLE. Error handling is not visible in the tool definitions themselves. The server provides reasonable foundations but falls short of production-grade quality due to missing output documentation and lack of recovery/confirmation guidance for destructive operations.
Adds a rule to an existing policy.
Creates a new policy for wallet security and access control.
Creates a new app-owned wallet. App-owned wallets are fully managed by your Privy app.
Deletes a policy.
Deletes a rule from a policy.
Sign and broadcast a transaction to the blockchain network.
CRITICAL: No output schemas documented for any tool. Definitions completely lack return type information. LLMs cannot plan downstream tool calls or extract necessary fields from responses without explicit output documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 39 | - | v1 |
Sign a transaction using the eth_signTransaction method with a specified wallet.
Sign EIP-712 typed data using eth_signTypedData_v4 method.
Retrieves a policy by its ID.
Retrieves a specific rule from a policy.
Retrieves details about a specific transaction.
Retrieves the balance of a wallet for a specific asset and chain.
Retrieves details for a specific wallet by its ID.
Retrieves transaction history for a specific wallet.
Retrieves a list of wallets associated with the Privy application.
Sign a message using the personal_sign method with a specified wallet.
Sign a raw hash using the wallet's private key along the blockchain's cryptographic curve.
Sign a hash using the secp256k1 method.
Sign and send a transaction on the Solana blockchain.
Sign a message using the Solana wallet.
Sign a transaction using the Solana wallet.
Updates an existing policy.
Updates an existing policy rule.
Updates a wallet's policies.
HIGH: Irreversible operations lack confirmation/dry-run patterns. eth_sendTransaction (IRREVERSIBLE), solana_signAndSendTransaction (IRREVERSIBLE), delete_policy, and delete_policy_rule support no pre-execution confirmation step. Agents can trigger real blockchain transactions or permanent deletions without user intervention.
HIGH: Transaction signing tools (eth_signTransaction, eth_signTypedData_v4, secp256k1_sign, raw_sign, solana_signTransaction) lack detailed descriptions of the format and content of parameters. eth_signTypedData_v4 requires nested EIP-712 structure but does not explain domain/types/message semantics. LLMs may pass malformed data.
HIGH: No error handling guidance in tool definitions. No indication of how LLMs should respond to failures (retryable? fatal? user-fixable?). No recovery paths documented. Missing actionable error patterns.
MEDIUM: Tool descriptions for signing methods are too terse and lack situational guidance. personal_sign, eth_signTransaction, secp256k1_sign, raw_sign all describe the mechanism but not the differences between them or when to choose one vs another. LLMs waste reasoning time deciding which signing tool to call.
MEDIUM: Policy and rule management tools (add_rule_to_policy, update_policy_rule) accept 'conditions' and 'action' parameters without explaining valid condition syntax or action enums. The 'conditions' array is typed as generic array with no item schema. LLMs cannot know what structure to pass.
MEDIUM: Transaction construction parameters (eth_sendTransaction transaction object, solana_signAndSendTransaction transaction encoding) lack explicit format documentation. eth_sendTransaction accepts 'transaction' as a nested object, what fields are required vs optional? solana_signAndSendTransaction requires base64-encoded transaction, what tool should construct this?
MEDIUM: No pagination documentation for list tools. get_wallets and get_wallet_transactions accept 'limit' and 'cursor' parameters but provide no guidance on cursor format, total count, or how to iterate large result sets. API behavior not specified.
MEDIUM: Chain/network identifiers inconsistent across tools. Some accept 'chain_type' (ethereum, solana), others 'chain' (ethereum, arbitrum, base, linea, optimism, zksync_era), others 'caip2' (eip155:1, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp). LLMs must track three different parameter names and enum value formats for the same concept.
LOW: Some parameter descriptions use technical jargon without explanation. 'nonce', 'gas_limit', 'max_fee_per_gas' in eth_signTransaction are blockchain concepts. Novice LLMs may not know what these are or what values are valid. Descriptions could include guidance: 'nonce: integer counter (typically fetched from blockchain)'.