read.asset_manager.intents
Discover and configure automation intents for managing Uniswap and Aerodrome liquidity positions, including rebalancing and yield optimization. List available intents with their parameters and supported chains to build automated asset management strategies.
Instructions
List all available automation intents with their tool names, required parameters, and supported chains. Use this to discover which automations can be configured and what each one does. Each intent has a corresponding write.asset_manager.{id} tool that returns encoded args. To apply automations, call the intent tools then pass the combined result to write.account.set_asset_managers. All intent tools accept enabled=false to disable. Multiple intents can be combined by merging their returned arrays into a single set_asset_managers call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Filter to automations available on this chain. Omit to see all. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| usage | Yes | ||
| automations | Yes | ||
| shared_params | Yes |
Implementation Reference
- src/tools/read/asset-managers.ts:158-192 (handler)The handler function for 'read.asset_manager.intents' which filters and returns the available automation intents based on the provided chain_id.
async (params) => { try { let filtered = INTENTS; if (params.chain_id !== undefined) { const validChainId = validateChainId(params.chain_id); filtered = INTENTS.filter((i) => i.chains.includes(validChainId)); } const result = { automations: filtered, shared_params: ["enabled (boolean, default true)", "chain_id (number, default 8453)"], usage: "1. Call the intent tool (e.g. write.asset_manager.rebalancer) with enabled + chain_id to get encoded args. 2. Optionally merge arrays from multiple intent calls. 3. Pass to write.account.set_asset_managers to build the unsigned tx.", }; return { content: [ { type: "text" as const, text: JSON.stringify(result, null, 2), }, ], structuredContent: result, }; } catch (err) { return { content: [ { type: "text" as const, text: `Error: ${err instanceof Error ? err.message : String(err)}`, }, ], isError: true, }; } }, - src/tools/read/asset-managers.ts:137-157 (registration)Registration of the 'read.asset_manager.intents' tool within the McpServer, including its schema definition.
export function registerAssetManagerTools(server: McpServer) { server.registerTool( "read.asset_manager.intents", { annotations: { title: "List Available Automations", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, }, description: "List all available automation intents with their tool names, required parameters, and supported chains. Use this to discover which automations can be configured and what each one does. Each intent has a corresponding write.asset_manager.{id} tool that returns encoded args. To apply automations, call the intent tools then pass the combined result to write.account.set_asset_managers. All intent tools accept enabled=false to disable. Multiple intents can be combined by merging their returned arrays into a single set_asset_managers call.", inputSchema: { chain_id: z .number() .optional() .describe("Filter to automations available on this chain. Omit to see all."), }, outputSchema: IntentsListOutput, },