get_edge_opportunities
Identify mispriced Polymarket prediction markets by comparing AI probability analysis with current market prices to find profitable trading opportunities.
Instructions
Find mispriced Polymarket prediction markets where AI analysis disagrees with current market probability. Returns top edge opportunities with recommended positions.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| min_edge | No | Minimum edge percentage to include (default: 5) | |
| limit | No | Maximum number of opportunities to return (default: 10) |
Implementation Reference
- src/index.ts:153-184 (handler)Handler implementation for get_edge_opportunities tool. It calls the external LPXPoly API to fetch edge opportunities and formats the output for the user.
case "get_edge_opportunities": { const { min_edge, limit } = args as any; const result = await callLPXPoly("/api/analyze", { type: "edge", min_edge: min_edge || 5, limit: limit || 10, }); const opportunities = result.opportunities || result; if (!opportunities?.length) { return { content: [{ type: "text", text: "No edge opportunities found at this time." }], }; } const formatted = opportunities .map( (o: any, i: number) => `${i + 1}. ${o.question || o.market}\n Market: ${(o.market_prob * 100).toFixed(1)}% | AI: ${(o.ai_prob * 100).toFixed(1)}% | Edge: ${(o.edge * 100).toFixed(1)}%\n Recommendation: ${o.recommendation || (o.ai_prob > o.market_prob ? "YES" : "NO")}` ) .join("\n\n"); return { content: [ { type: "text", text: `📊 LPXPoly Edge Opportunities\n\n${formatted}\n\n⚡ Powered by LPXPoly | lpxpoly.com`, }, ], }; } - src/index.ts:32-52 (schema)Definition and input schema for the get_edge_opportunities tool.
{ name: "get_edge_opportunities", description: "Find mispriced Polymarket prediction markets where AI analysis disagrees with current market probability. Returns top edge opportunities with recommended positions.", inputSchema: { type: "object", properties: { min_edge: { type: "number", description: "Minimum edge percentage to include (default: 5)", default: 5, }, limit: { type: "number", description: "Maximum number of opportunities to return (default: 10)", default: 10, }, }, required: [], }, },