# How agents call yieldsentinel

MCP Streamable HTTP + discovery/identity only — not an A2A message/send runtime.

**MCP:** `POST https://yieldsentinel-agent-production.up.railway.app/mcp`  
`Accept: application/json, text/event-stream`. A bare GET `/mcp` may return 406 (expected).

1. `initialize`
2. `tools/list` or go straight to `tools/call`
3. `health` first, then `check_position`

Always send `policyPreset` (`treasury-conservative` | `balanced-research` | `rwa-selective`) and/or explicit thresholds. Empty policy is `review`/`unknown`, never `ok`.

Use a yieldhunter `opportunities[].id` (`poolId`) when a protocol has several markets. Slug-only is rejected if it matches more than one pool.

Full context: [/discovery/agent-context.md](./agent-context.md) · tools: [/discovery/tool-catalog.md](./tool-catalog.md)

Research only. Never holds keys. Never executes. A verdict is not an exit or deposit order.
