{"name":"hedgr","display_name":"Hedgr FX Risk & Treasury","version":"1.0.0","description":"Read-only FX risk, treasury, and accounting-derived dashboard data for SME finance teams. Scout is the in-app agent; these tools are the data layer behind it.","protocolVersion":"2025-06-18","protocolVersions":["2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"transport":"streamable-http","endpoint":"https://hedgr.app/mcp","logo_url":"https://hedgr.app/hedgr-logo-live-padded.png","icon_url":"https://hedgr.app/hedgr-icon-512.svg","homepage":"https://hedgr.app","docs_url":"https://hedgr.app/docs/mcp","capabilities":{"tools":{},"resources":{},"extensions":{"io.modelcontextprotocol/ui":{"mimeTypes":["text/html;profile=mcp-app"]}}},"ui":{"extension":"io.modelcontextprotocol/ui","spec":"SEP-1865","mimeType":"text/html;profile=mcp-app","resources":[{"uri":"ui://hedgr/fx-exposure-radar","name":"fx_exposure_radar","description":"Interactive net FX exposure radar rendered from get_fx_exposure results.","mimeType":"text/html;profile=mcp-app","_meta":{"ui":{"csp":{},"permissions":{},"prefersBorder":true}}}],"tools_with_ui":[{"tool":"get_fx_exposure","resourceUri":"ui://hedgr/fx-exposure-radar"}]},"tools":[{"name":"get_platform_capabilities","description":"Returns a safe, client-facing capability map for Hedgr: dashboard tabs, data sources, what the MCP already exposes, a structured mcp_gap_register showing covered client-facing surfaces, the Scout/MCP boundary, and what is intentionally not exposed. Use this when the user asks what Hedgr, Scout, or the connector can do. Does not reveal private prompts, formulas, credentials, admin pages, or implementation IP.","inputSchema":{"type":"object","description":"No inputs. Returns Hedgr's read-only tool catalogue and what each surface can answer for the whole workspace.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Platform Capabilities","readOnlyHint":true,"openWorldHint":false}},{"name":"get_dashboard_context","description":"Returns a compact read-only snapshot of the authenticated Hedgr dashboard: organisation, provider, base currency, selected entity/workspace context, data timestamp, FX currencies, invoice counts, headline exposure and P&L totals, and available rates. Use when the user asks for a dashboard-level summary or when another tool needs the current account context first.","inputSchema":{"type":"object","description":"No inputs. Returns a whole-workspace snapshot of the current dashboard (headline KPIs, exposure, P&L).","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Dashboard Context","readOnlyHint":true,"openWorldHint":false}},{"name":"get_account_status","description":"Returns the current state of the user's Hedgr account: which accounting systems, Google Sheets workspaces, CSV/manual cloud workspaces, and setup sections are available. Call this first in any agentic session to understand what data is available before making further calls. If connection_status.state='setup_required', surface setup_url and setup_steps exactly. For Xero, QuickBooks, Sage, or Holded, do not ask the user to fill Company & reporting first because Hedgr reads those settings from the accounting system. For Google Sheets or CSV/manual paths, tell the user to complete Company & reporting, then map or upload invoices and bank balances; for CSV/manual, tell them to click Save workspace to cloud before expecting MCP to read the browser-local snapshot. Do not imply Xero is the only setup path.","inputSchema":{"type":"object","description":"No inputs. Returns workspace connection and onboarding status.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Account Status","readOnlyHint":true,"openWorldHint":false}},{"name":"list_entities","description":"Lists all connected legal entities with their base currencies and source accounting systems. Use before get_fx_exposure when you need entity-level granularity rather than consolidated group exposure. Multi-entity clients (e.g. UK Ltd + US Inc + DE GmbH) need this to disambiguate which entity's exposure to query.","inputSchema":{"type":"object","properties":{"include_disconnected":{"type":"boolean","description":"Include entities that exist in policy config but have no connected accounting system. Useful for showing the user what's missing.","default":false}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"List Entities","readOnlyHint":true,"openWorldHint":false}},{"name":"get_fx_exposure","description":"Returns net FX exposure by currency pair, entity, and time bucket (0-30d, 31-60d, 61-90d, 90d+). Each exposure line distinguishes confirmed (invoices and POs from the accounting system) from forecasted, and includes a source field citing provenance ('€2.3M from 47 Xero invoices'). This is the workhorse tool: get it right and the majority of agent use cases work end-to-end. On multi-entity books the exposure honours the workspace inter-company mode and the response carries an intercompany block naming that mode; realised P&L does not move with that mode, and it is reported as the accounting system recorded it, so settled inter-company invoices stay inside it.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Specific entity ID from list_entities. Omit for consolidated group exposure."},"currency":{"type":"string","description":"ISO 4217 code to filter to one currency (e.g. 'EUR', 'USD'). Omit for all currencies.","pattern":"^[A-Z]{3}$"},"horizon_days":{"type":"integer","description":"Forward-looking window in days.","default":90,"minimum":1,"maximum":730},"include_forecasted":{"type":"boolean","description":"Include forecasted exposure alongside confirmed accounting-system data.","default":true},"include_chart":{"type":"boolean","description":"When true, the tool response includes an image/png content block containing a horizontal bar chart of net exposure by currency (green = receivable, red = payable). Requires no additional API calls - uses the same data as the text response.","default":false}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'.","properties":{"base_currency":{"type":"string"},"horizon_days":{"type":"number"},"entity_id":{"type":"string"},"exposures":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"net_receivable":{"type":"number"},"net_payable":{"type":"number"},"cash_balance":{"type":"number"},"net_exposure":{"type":"number"},"net_exposure_base":{"type":"number","description":"Present only when a valid spot rate was available (strict mode omits otherwise)."},"base_currency":{"type":"string"},"confirmed_count":{"type":"number"},"buckets":{"type":"object","additionalProperties":{"type":"number"}},"source":{"type":"string"}}}},"total_currencies":{"type":"number"},"includes_forecasted":{"type":"boolean"},"intercompany":{"type":"object","description":"Present only when the book has detected inter-company pairs.","properties":{"mode":{"type":"string","enum":["net","gross"]},"mode_label":{"type":"string"},"mode_source":{"type":"string","enum":["workspace","default","unknown"]},"applied":{"type":"boolean"},"held_off_reason":{"type":"string"},"pairs_detected":{"type":"number"},"exposed_legs":{"type":"number"},"unclassified_legs":{"type":"number"},"invoices_netted":{"type":"number"},"note":{"type":"string"}}}}}}},"annotations":{"title":"Get FX Exposure","readOnlyHint":true,"openWorldHint":false},"_meta":{"ui":{"resourceUri":"ui://hedgr/fx-exposure-radar"}}},{"name":"get_cash_position","description":"Returns current cash balances by currency and entity. Use alongside get_fx_exposure to understand whether FX cash offsets invoice exposure.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Specific entity ID. Omit for group-level consolidated cash position."},"currency":{"type":"string","description":"Filter to a single currency.","pattern":"^[A-Z]{3}$"},"include_chart":{"type":"boolean","description":"When true, includes an image/png content block: horizontal bar chart of cash balance by currency (native units). Blue bars = positive, red = overdraft.","default":false}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Cash Position","readOnlyHint":true,"openWorldHint":false}},{"name":"get_hedge_portfolio","description":"Returns all open forward contracts and hedges with maturity date, notional amount, contracted rate, and current mark-to-market value. Use this to answer 'what is my current hedge ratio on EUR?' without needing execute permissions.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Filter to a single entity's hedges."},"currency":{"type":"string","description":"Filter to hedges on a specific currency.","pattern":"^[A-Z]{3}$"},"include_expired":{"type":"boolean","description":"Include hedges that have already matured.","default":false}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Hedge Portfolio","readOnlyHint":true,"openWorldHint":false}},{"name":"simulate_scenario","description":"Models the P&L impact of exchange rate moves on the user's current net exposure (invoices + cash) and existing hedges. Two modes: (1) supply explicit `scenarios` for a linear what-if, e.g. 'What happens if GBP/EUR moves 3% before Q3 close?'; (2) set `worst_case: true` (scenarios optional) to revalue each currency at its OWN worst adverse 1-month historical move, the same worst-case the Monitor dashboard shows. Worst-case is a historical realised downside, not a forecast or a recommendation. Cross-currency pairs (neither leg is the reporting currency) are shocked base-neutrally.","inputSchema":{"type":"object","properties":{"worst_case":{"type":"boolean","description":"When true, ignore linear shocks and apply each currency's own worst adverse 1-month historical move (adverse-aligned, always a loss). Matches the Monitor worst-case KPI. scenarios becomes optional.","default":false},"scenarios":{"type":"array","description":"Rate shocks to apply (required unless worst_case is true). Multiple entries are applied simultaneously (correlated move).","minItems":1,"maxItems":10,"items":{"type":"object","required":["currency_pair","shock_bps"],"properties":{"currency_pair":{"type":"string","description":"Currency pair, e.g. 'GBPEUR' or 'EUR/GBP'. Base currency strengthens when shock_bps is positive."},"shock_bps":{"type":"integer","description":"Rate shock in basis points. Positive = base currency strengthens. 300 = +3%."}}}},"horizon_days":{"type":"integer","description":"Forward-looking exposure window included in the simulation.","default":90,"minimum":1,"maximum":365},"include_hedges":{"type":"boolean","description":"Apply offsetting effect of existing hedges. Set false to see gross (unhedged) impact.","default":true}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Simulate Rate Scenario","readOnlyHint":true,"openWorldHint":false}},{"name":"get_protection_candidates","description":"Policy-derived candidate rows showing suggested notional amounts for open currency exposures. Read-only - does not execute trades, open dealing pages, or transfer assets.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Limit to a single entity. Omit for group-level candidates."},"currency":{"type":"string","description":"Limit to a specific currency (e.g. 'EUR').","pattern":"^[A-Z]{3}$"},"policy_override":{"type":"object","description":"Temporary policy adjustments for this calculation only. Does not modify the stored policy.","properties":{"target_hedge_ratio":{"type":"number","description":"Override target hedge ratio (0-1). 0.7 = 70% hedged.","minimum":0,"maximum":1},"max_tenor_days":{"type":"integer","description":"Override maximum forward contract tenor in days.","minimum":1,"maximum":730}}}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Protection Candidates","readOnlyHint":true,"openWorldHint":false}},{"name":"get_policy","description":"Returns the user's active FX policy in structured form: target hedge ratios per currency, allowed instruments, maximum single-trade size, approval thresholds, and blackout windows. See get_fx_guidance('guardrails-no-advice') for methodology.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Fetch the policy for a specific entity. Omit for the group-level policy."}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get FX Policy","readOnlyHint":true,"openWorldHint":false}},{"name":"get_market_regime","description":"Returns a current Hedgr regime snapshot for one or more currency pairs, including a compact headline, sorted snapshot rows, latest rate, realised-volatility regime, 30-day change, methodology, and dashboard surface. Volatility regimes are Settled / Directional / Choppy / Stressed. Also returns a market_environment block matching the Monitor Market Environment KPI cards when the book has exposure: the exposure-weighted Composite score (0-100), Volatility score, and 30-day Trend (change and direction). Use this to answer market-backdrop questions with label first, plain explanation, basis, and next place to look. Regimes are not trade recommendations. The scores are analytical only. See get_fx_guidance('regimes-methodology') for methodology.","inputSchema":{"type":"object","properties":{"pairs":{"type":"array","description":"Currency pairs to query, e.g. ['GBPEUR', 'GBPUSD', 'USDZAR']. Omit to return regimes for all pairs relevant to the user's current exposure.","items":{"type":"string","pattern":"^[A-Z]{6}$"},"maxItems":20},"include_history":{"type":"boolean","description":"Include the historical regime series (date + regime + volatility per point). Useful for charting or for the agent to describe how stable the current regime is.","default":false},"history_years":{"type":"number","description":"How many years of history to include when include_history is true. Defaults to 2.","default":2,"minimum":0.25,"maximum":10},"include_chart":{"type":"boolean","description":"When true, includes one or two image/png content blocks: (1) a horizontal bar chart of realised-volatility % by pair, colour-coded by regime (green=Settled, blue=Directional, amber=Choppy, red=Stressed); (2) when include_history is also true, a rate + Bollinger-band line chart for the most-stressed pair.","default":false}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'.","properties":{"headline":{"type":"string"},"snapshot":{"type":"array","items":{"type":"object","properties":{"pair":{"type":"string"},"regime":{"type":["string","null"]},"tone":{"type":["string","null"]},"severity":{"type":["number","null"]},"latest_rate":{"type":["number","null"]},"latest_date":{"type":["string","null"]},"rate_age_days":{"type":["number","null"]},"rate_is_stale":{"type":"boolean"},"volatility_pct":{"type":["number","null"]},"change_30d_pct":{"type":["number","null"]},"recent_range":{"type":["object","null"],"properties":{"low":{"type":"number"},"high":{"type":"number"},"mid":{"type":["number","null"]}}},"explanation":{"type":["string","null"]}}}},"pairs":{"type":"array","items":{"type":"object"}},"as_of":{"type":"string"},"data_freshness":{"type":["string","null"],"description":"Human-readable note naming any stale pairs; null when all pairs are fresh."},"stale_pairs":{"type":"array","items":{"type":"string"}}}}}},"annotations":{"title":"Get Market Regime","readOnlyHint":true,"openWorldHint":false}},{"name":"get_pnl_attribution","description":"Returns FX P&L broken down by currency with top contributor, unrealised mark-to-market (open invoices, booking rate vs current spot), and realised gain/loss from settled invoices where the accounting system provides it. Use to answer 'which currencies are hurting us?', 'what is our total FX impact this period?', or 'show me P&L by currency'. All amounts are in base currency. Sorts by absolute total P&L so the biggest contributors appear first. See get_fx_guidance('margin-basis-ias21') and get_fx_guidance('realised-vs-unrealised') for methodology.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Filter to a specific entity. Omit for consolidated group."},"include_unrealised":{"type":"boolean","description":"Include unrealised P&L from open invoices (booking rate vs current spot). Default true.","default":true},"include_realised":{"type":"boolean","description":"Include realised P&L from settled invoices where the accounting system provides the FX gain/loss. Default true.","default":true},"include_chart":{"type":"boolean","description":"When true, the tool response includes an image/png content block containing a horizontal bar chart of P&L by currency (green = gain, red = loss). Uses the same data as the text response.","default":false}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'.","properties":{"base_currency":{"type":"string"},"entity_id":{"type":"string"},"attribution":{"type":"array","description":"Per-currency FX P&L contributors, sorted by absolute total impact.","items":{"type":"object","properties":{"currency":{"type":"string"},"current_spot_rate":{"type":["number","null"],"description":"Quoted as [account base]/[this currency], e.g. GBP/USD 1.27 means £1 buys $1.27."},"unrealised_pnl_base":{"type":"number"},"unrealised_invoice_count":{"type":"number"},"unrealised_missing_rate_count":{"type":"number"},"realised_pnl_base":{"type":"number"},"realised_invoice_count":{"type":"number"},"realised_missing_data_count":{"type":"number"},"total_pnl_base":{"type":"number"}}}},"totals":{"type":"object","properties":{"unrealised_pnl_base":{"type":"number"},"realised_pnl_base":{"type":"number"},"total_fx_pnl_base":{"type":"number"}}},"top_contributor":{"type":["object","null"],"properties":{"currency":{"type":"string"},"total_pnl_base":{"type":"number"},"direction":{"type":"string","enum":["gain","loss"]}}},"rate_convention":{"type":"string"},"data_note":{"type":"string"}}}}},"annotations":{"title":"Get P&L Attribution","readOnlyHint":true,"openWorldHint":false}},{"name":"get_limit_status","description":"Compares current net FX exposure against per-currency comfort limits configured in Hedgr's Control tab. Returns breach status per currency: breaching (exposure exceeds limit), approaching (≥80% of limit), within_limit, or no_limit_set. Use to answer 'are we within limits?', 'which currencies need attention?', or 'what is our USD exposure vs our comfort limit?'. Limits are set in Control > Comfort Limits. See get_fx_guidance('guardrails-no-advice') for methodology.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Filter to a specific entity's exposures. Omit for group-level consolidated."}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Limit Status","readOnlyHint":true,"openWorldHint":false}},{"name":"get_transaction_log_summary","description":"Returns a safe read-only transaction-log summary for Explain > Detailed Transaction Logs: top open-invoice unrealised FX rows, settled-invoice realised FX rows, bank/cash rows, counts, and row provenance. Does not expose raw provider payloads, hidden reconciliation notes, credentials, or private calculation internals.","inputSchema":{"type":"object","description":"Optional scope filters. Omit both for the whole-workspace report.","properties":{"entity_id":{"type":"string","description":"Specific entity ID from list_entities. Omit for the whole workspace (all entities)."},"currency":{"type":"string","description":"ISO 4217 code to filter to one currency (e.g. 'EUR', 'USD'). Omit for all currencies.","pattern":"^[A-Z]{3}$"}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Transaction Log Summary","readOnlyHint":true,"openWorldHint":false}},{"name":"get_overdue_drivers","description":"Returns overdue invoice drivers by currency and top contact, prioritised by largest exposure per currency. Separates total unrealised FX P&L from since-due P&L and explicitly reports when due-date rates are unavailable. Use for questions like 'what is driving overdue invoices?' or 'what did overdue invoices cost us?'.","inputSchema":{"type":"object","description":"Optional scope filters. Omit both for the whole-workspace report.","properties":{"entity_id":{"type":"string","description":"Specific entity ID from list_entities. Omit for the whole workspace (all entities)."},"currency":{"type":"string","description":"ISO 4217 code to filter to one currency (e.g. 'EUR', 'USD'). Omit for all currencies.","pattern":"^[A-Z]{3}$"}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Overdue Drivers","readOnlyHint":true,"openWorldHint":false}},{"name":"get_data_quality","description":"Returns safe import and data-quality diagnostics: duplicate invoice IDs, first visible issue rows, missing currency/date/amount fields, missing booking rates, missing spot rates, and per-currency P&L readiness. Use before answering why CSV imports failed or why P&L is incomplete. See get_fx_guidance('provider-data-quality') for methodology.","inputSchema":{"type":"object","description":"Optional scope filters. Omit both for the whole-workspace report.","properties":{"entity_id":{"type":"string","description":"Specific entity ID from list_entities. Omit for the whole workspace (all entities)."},"currency":{"type":"string","description":"ISO 4217 code to filter to one currency (e.g. 'EUR', 'USD'). Omit for all currencies.","pattern":"^[A-Z]{3}$"}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Data Quality","readOnlyHint":true,"openWorldHint":false}},{"name":"get_payment_patterns","description":"Returns detected payment timing patterns by counterparty and currency where available, or derives a conservative summary from settled invoice dates. Use for factual questions about who pays late or early. Do not treat volatility exposure as realised loss; call P&L or overdue tools for actual gains/losses.","inputSchema":{"type":"object","description":"Optional scope filters. Omit both for the whole-workspace report.","properties":{"entity_id":{"type":"string","description":"Specific entity ID from list_entities. Omit for the whole workspace (all entities)."},"currency":{"type":"string","description":"ISO 4217 code to filter to one currency (e.g. 'EUR', 'USD'). Omit for all currencies.","pattern":"^[A-Z]{3}$"}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Payment Patterns","readOnlyHint":true,"openWorldHint":false}},{"name":"get_cashflow_timing","description":"Returns FX cashflow timing by currency and bucket, separating receivables, payables, bank cash, and hedge maturities where available. Use for Monitor > Exposure & Cash Flow questions about overdue, next 30, 31-60, 61-90, beyond 90, undated, liquidity timing, or same-currency cash coverage.","inputSchema":{"type":"object","description":"Optional scope filters. Omit both for the whole-workspace report.","properties":{"entity_id":{"type":"string","description":"Specific entity ID from list_entities. Omit for the whole workspace (all entities)."},"currency":{"type":"string","description":"ISO 4217 code to filter to one currency (e.g. 'EUR', 'USD'). Omit for all currencies.","pattern":"^[A-Z]{3}$"}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Cashflow Timing","readOnlyHint":true,"openWorldHint":false}},{"name":"get_cashflow_forecast","description":"Projects the user's OWN expected net cashflow per currency over the next N weeks (default 8), from their OWN settlement history: expected settlement of existing open invoices (due date shifted by how late each customer usually pays), plus projected recurring and seasonal flows. Returns a per-currency net with a P10-P90 band, named drivers, and the walk-forward accuracy of the settlement model (inside-band % and median error in days). This is deterministic statistics on settlement behaviour, NOT an FX-rate prediction. Always quote the band and accuracy; say 'projected' not 'predicted'; never imply rate direction or guarantee an outcome. If sufficient_history is false, present it as indicative.","inputSchema":{"type":"object","properties":{"horizon_weeks":{"type":"integer","description":"Projection horizon in weeks (1-26, default 8)."},"currency":{"type":"string","description":"Optional 3-letter currency code to filter to one currency."}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Cashflow Forecast","readOnlyHint":true,"openWorldHint":false}},{"name":"get_funding_forecast","description":"TMS liquidity/funding view: per-currency running cash balance seeded from the user's REAL bank balances - INCLUDING base currency (which the FX-exposure tools deliberately exclude). Answers whether the user will hold the units to settle upcoming payables/receivables, the first date each currency runs short and by how much, the trade the gap implies (BUY on a projected shortfall by its date, SELL on a surplus), and whether base-currency cash can fund the foreign purchases (can_self_fund + base_funding_shortfall). Uses real bank balances + real invoices plus the projected settlement component with its band and accuracy. Prefer the adverse (conservative) shortfall when warning about funding. Trade DIRECTION is a mechanical consequence of the gap sign and is fine to state; do NOT advise whether/when to hedge and NEVER imply FX-rate direction. Say 'projected' not 'predicted'; if sufficient_history is false, present the projected component as indicative.","inputSchema":{"type":"object","properties":{"horizon_weeks":{"type":"integer","description":"Projection horizon in weeks (1-26, default 8)."},"currency":{"type":"string","description":"Optional 3-letter currency code to filter to one currency."}}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Funding Forecast","readOnlyHint":true,"openWorldHint":false}},{"name":"get_protection_builder_snapshot","description":"Returns the read-only Protection Builder / Scenario Builder snapshot: simulated row inputs, residual exposure after active hedges, cashflow-aware grouping basis, and policy sizing context. It does not execute trades, produce broker instructions, return quote IDs, or recommend a hedge.","inputSchema":{"type":"object","description":"No inputs. Returns the current Protection Builder simulation snapshot.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Protection Builder Snapshot","readOnlyHint":true,"openWorldHint":false}},{"name":"get_policy_backtest_summary","description":"Returns a saved Control > Backtest policy replay summary when available, plus the policy snapshot used for context. Use for historical policy replay questions only. Does not predict future performance or recommend policy settings.","inputSchema":{"type":"object","description":"No inputs. Returns the latest FX policy backtest summary.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Policy Backtest Summary","readOnlyHint":true,"openWorldHint":false}},{"name":"get_rate_assumptions","description":"Returns rate assumptions used by the dashboard: spot rates, source labels, timestamps, custom override presence, missing spot rates, and invoice rows with missing or placeholder booking rates. Use when users ask where a number came from or why a rate/P&L is unavailable. See get_fx_guidance('currency-pair-convention') and get_fx_guidance('forward-tenor-buckets') for methodology.","inputSchema":{"type":"object","description":"No inputs. Returns the market-rate assumptions (source and as-of date) the tools use.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Rate Assumptions","readOnlyHint":true,"openWorldHint":false}},{"name":"get_export_manifest","description":"Returns a read-only manifest of Hedgr exports available in the dashboard and where to generate them. Does not download files, expose temporary URLs, or generate private report drafts through MCP.","inputSchema":{"type":"object","description":"No inputs. Returns the reports and exports available for the workspace.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Export Manifest","readOnlyHint":true,"openWorldHint":false}},{"name":"get_navigation_targets","description":"Returns safe client-facing Hedgr navigation targets: current tab/subtab labels and what each surface is used for. Use to give Scout-like 'next place to look' guidance without exposing admin routes, operator pages, or feature-flag internals.","inputSchema":{"type":"object","description":"No inputs. Returns deep-link navigation targets into the Hedgr app.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Navigation Targets","readOnlyHint":true,"openWorldHint":false}},{"name":"get_workspace_setup_state","description":"Returns setup state for accounting, Google Sheets, and CSV/manual workspaces. Explains whether Company & reporting is required for MCP. Accounting providers supply company settings automatically; Google Sheets and CSV/manual workspaces may need Company & reporting completed.","inputSchema":{"type":"object","description":"No inputs. Returns onboarding and setup completeness for the workspace.","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get Workspace Setup State","readOnlyHint":true,"openWorldHint":false}},{"name":"get_fx_guidance","description":"Returns Hedgr's shared FX-guidance canon - the same read-only methodology Scout uses in-app (e.g. margin-basis / IAS 21 and Xero unrealised FX overlap). Use this to answer with consistent, data-grounded FX guidance. Public-safe subset only; internal partner/marketing guidance is filtered out. Not financial, legal, tax, or investment advice.","inputSchema":{"type":"object","description":"No inputs. Returns Hedgr's shared read-only FX-guidance canon (methodology, e.g. IAS 21 margin basis).","properties":{}},"outputSchema":{"type":"object","description":"Hedgr MCP envelope. Inspect connection_status.state before relying on data. Mirrors mcp/schema/connection_status.json (inlined because MCP hosts do not resolve external $refs reliably).","required":["connection_status","data"],"properties":{"connection_status":{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["ready","setup_required","partial","stale"],"description":"ready: at least one server-readable source is connected, such as an accounting provider, Google Sheets, or saved CSV/manual cloud workspace, with data fresh (<24h). setup_required: no server-readable source is connected, data is null - surface setup_url and setup_steps. partial: some entities/sections connected, data covers only connected entities/sections. stale: connected but last_sync >24h - warn before executing."},"connected_systems":{"type":"array","items":{"type":"string"},"description":"Identifiers of connected accounting systems, e.g. ['xero:acme-uk', 'qbo:acme-us']."},"missing_systems":{"type":"array","items":{"type":"string"},"description":"Entity IDs configured in policy but not yet connected. Present in 'partial' state."},"last_sync":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of most recent successful data sync."},"setup_url":{"type":"string","format":"uri","description":"Deep link to Hedgr settings/setup. Present when state is 'setup_required' or 'partial'."},"setup_label":{"type":"string","description":"Human-facing label for setup_url."},"setup_reason":{"type":"string","description":"Plain-English reason Hedgr cannot answer with exposure data yet."},"setup_steps":{"type":"array","items":{"type":"string"},"description":"Ordered next steps the assistant should show when state is setup_required, including Save workspace to cloud for CSV/manual workspaces."},"setup_options":{"type":"array","items":{"type":"string"},"description":"Available Hedgr setup surfaces to mention without implying a single provider path."}}},"data":{"type":["object","null"],"description":"Tool-specific payload. Null when connection_status.state is 'setup_required'."}}},"annotations":{"title":"Get FX Guidance","readOnlyHint":true,"openWorldHint":false}}],"tool_count":27,"product_features":{"scout":{"name":"Scout","description":"Hedgr in-app FX assistant for explaining dashboard numbers, invoice exposure, cash positions, hedge book context, regimes, and setup guidance.","answer_style":"Number or label first, then plain explanation, basis, and next place to look.","availability":"Available inside the Hedgr dashboard. MCP exposes the underlying read-only data tools, not Scout chat history or private prompts."}},"oauth":{"authorization_endpoint":"/mcp/oauth/authorize","token_endpoint":"/mcp/oauth/token","registration_endpoint":"/mcp/oauth/register","scopes_supported":["fx:read"],"code_challenge_methods_supported":["S256"],"protected_resource_metadata":"https://hedgr.app/.well-known/oauth-protected-resource/mcp","authorization_server_metadata":"https://hedgr.app/.well-known/oauth-authorization-server"},"read_only":true}