read.guides
Retrieve workflow guides for Arcadia addresses, automation setup, strategy templates, and pool evaluation. Use before multi-step LP management tasks.
Instructions
Get Arcadia workflow guides and reference documentation. Call this before multi-step workflows (opening LP positions, enabling automation, closing positions) or when you need contract addresses, asset manager addresses, or strategy parameters. Topics: overview (addresses + tool catalog), automation (rebalancer/compounder setup), strategies (step-by-step templates), selection (how to evaluate and parameterize strategies).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | overview = addresses + tool catalog, automation = rebalancer/compounder/claimer setup, strategies = step-by-step LP templates, selection = pool evaluation + leverage sizing |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| content | Yes |
Implementation Reference
- src/tools/read/guides.ts:69-91 (handler)The async handler function that executes the tool logic for 'read.guides'. It receives a topic, retrieves the guide content from a pre-loaded Map, and returns it as structured content.
async ({ topic }) => { if (!topic) { const topicList = Object.entries(TOPICS) .map(([key, { summary }]) => ` ${key}: ${summary}`) .join("\n"); const result = { topic: "", content: `topic is required. Valid topics:\n${topicList}`, }; return { content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }], structuredContent: result, isError: true, }; } const result = { topic, content: guides.get(topic)! }; return { content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }], structuredContent: result, }; }, ); } - src/tools/read/guides.ts:47-68 (schema)The tool registration call including the input schema (zod enum of topic keys) and output schema (GuideOutput). The tool name 'read.guides' is registered here.
server.registerTool( "read.guides", { annotations: { title: "Get Guide", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, description: "Get Arcadia workflow guides and reference documentation. Call this before multi-step workflows (opening LP positions, enabling automation, closing positions) or when you need contract addresses, asset manager addresses, or strategy parameters. Topics: overview (addresses + tool catalog), automation (rebalancer/compounder setup), strategies (step-by-step templates), selection (how to evaluate and parameterize strategies).", inputSchema: { topic: z .enum(TOPIC_KEYS) .optional() .describe( "overview = addresses + tool catalog, automation = rebalancer/compounder/claimer setup, strategies = step-by-step LP templates, selection = pool evaluation + leverage sizing", ), }, outputSchema: GuideOutput, }, - src/tools/index.ts:45-45 (registration)Where registerGuideTools(server) is called to register the tool on the MCP server.
registerGuideTools(server); - src/tools/read/guides.ts:8-29 (helper)The TOPICS constant defining available guide topics (overview, automation, strategies, selection) and their corresponding file paths and summaries.
const TOPICS = { overview: { file: "SKILL.md", summary: "Tool catalog, token/contract/lending pool addresses, asset manager addresses, account versions", }, automation: { file: "automation.md", summary: "Rebalancer, compounder, yield claimer, merkl operator, CoW swapper setup and addresses", }, strategies: { file: "strategies.md", summary: "Step-by-step strategy templates: delta neutral leveraged LP, protocol owned liquidity, closing sequences", }, selection: { file: "selection.md", summary: "Strategy evaluation framework: pool selection, range width, leverage sizing, automation combos, exit signals", }, } as const; - src/tools/output-schemas.ts:149-152 (schema)The GuideOutput zod schema defining the output shape: topic (string) and content (string).
export const GuideOutput = z.object({ topic: z.string(), content: z.string(), });