Whether the workspace keeps the why field (opt in)

View as Markdown

GET /api/v1/mcp/why · operationId getMcpWhyField

For developers: your server sends this request with a server key; it is not a button in the dashboard.

The Telltale MCP SDK reads this at start and every five minutes, and adds the optional reason parameter to the tools named in its why option only while enabled is true. Off by default; a workspace owner or admin turns on "Understand what agents are trying to do".

Authentication

Send Authorization: Bearer YOUR_SERVER_KEY (siteServerKey: Site server key in Authorization: Bearer <key> (the scheme is case-insensitive and required; a bare key is 401). Shown once on creation or rotation. Publishable keys cannot authenticate). Keep the server key in server-only configuration; never send it to a browser.

Responses

Success body fields

Failures are not verdicts. Error bodies follow the Error schema: code is one of bad_request, unauthorized, session_reinit_required, forbidden, not_found, conflict, identity_required, payload_too_large, rate_limited, internal_error, service_unavailable, request_failed, approval_invalid, approval_used, approval_expired, approval_mismatch, step_up_not_held, step_up_mismatch, step_up_settled, step_up_expired, step_up_superseded, agent_tokens_disabled, tool_not_approved, tool_not_read_only. Errors and retries explains each code and what to do.

Example

curl
curl -sS -X GET 'https://app.trytelltale.dev/api/v1/mcp/why' \
  -H "Authorization: Bearer $TELLTALE_SERVER_KEY"
fetch
const response = await fetch("https://app.trytelltale.dev/api/v1/mcp/why", {
  method: "GET",
  headers: {
    Authorization: 'Bearer ' + process.env.TELLTALE_SERVER_KEY
  },
  signal: AbortSignal.timeout(5000)
});
const result = await response.json();

Machine-readable contract: openapi.json. Request builder: the API explorer shows every operation as curl; it sends requests only on a local dashboard.