MCP is Epode’s strongest integration: every completed product-tool call is a confirmed interaction, and
the customer agent sees an explicit report_product_feedback tool.
Install
Create one process-level Epode instrumentation object so telemetry can batch across requests. Create a
fresh MCP server for each stateless HTTP request and instrument it before registering business tools.
Do not create or depend on Mcp-Session-Id for modern requests. MCP 2026-07-28 is stateless. Use an
explicit application-level handle if your product has a meaningful multi-tool journey.
Epode should observe the whole journey without asking for micro-feedback after every low-level action:
includeTools selects the product calls shown in Sessions.
excludeTools removes health, admin, or internal tools.
feedbackTools selects outcome boundaries that receive feedback instructions. An empty array records
interactions without asking for feedback.
shouldRequestFeedback can inspect a completed result when the boundary is dynamic.
sessionRef may inspect both arguments and the completed result, so a session-creation call can use the
identifier it returns.
Epode adds a monotonic client sequence to preserve rapid tool order. The backend also reconciles a report
that arrives before its background interaction metadata.
Verify
From an MCP 2026-07-28 client:
- Call
server/discover.
- Call
tools/list and confirm your product tool plus report_product_feedback are present.
- Call one normal product tool and confirm its result contains
_agentFeedback.
- Call
report_product_feedback using the returned feedbackHandle.
- Confirm the interaction and report appear in Epode.
Call the feedback tool once under normal conditions. If it returns retryable: true, retry exactly once with
the same feedbackHandle and identical report. Capabilities are idempotent, so a lost success response cannot
create a second report.
The report tool allows 10 seconds by default; set reportTimeoutMs only for unusually slow private
deployments. Background telemetry uses bounded exponential retry and a longer timeout, but never blocks the
product tool result.
The legacy: "stateless" option retains a 2025-11-25 compatibility handshake without introducing
transport-session state.
View the runnable Node MCP example
Browser journey example ·
Documentation MCP example ·
Authenticated operations example