Skip to main content

MCP reference

Server: https://verelyn.com/api/mcp. Browser OAuth binds every call to the approving reader. All tools are deployed contracts but live use is access dependent.

Exact write inputs

All fields are required unless marked optional. UUID fields are command_id, draft_id, target_answer_id, item_id, alert_id, and monitor_id. question_id is a non-empty string of at most 160 characters; use the value returned by the service unchanged. submit_mandate_correction:
expected_revision is a non-negative integer; statement is 1–2,000 characters; provenance is reader_words or assistant_suggestion. The read tools do not expose the current revision, so use the web editor unless a supported product flow supplied it. start_monitor takes exactly one field, never both:
set_monitor_state:
state is active, paused, or stopped. get_updates.items[].id can supply an eligible alert ID. get_briefing does not expose edition item IDs; use the web edition for that starting path. start_onboarding:
get_onboarding:
submit_onboarding_answer always requires draft_id, UUID command_id, non-negative expected_revision, action, and provenance (reader_answer or assistant_suggestion). action is answer, correct, skip, or retry:
  • answer: also requires question_id, question_text, and non-empty answer.
  • correct: also requires UUID target_answer_id, question_id, question_text, and non-empty answer.
  • skip: also requires question_id and question_text.
  • retry: adds no action-specific field.
  • Optional timezone must be an IANA time-zone name such as America/Argentina/Cordoba.
An accepted answer can return this structuredContent shape; later states may instead include next_question, continue_url, or a public error:

Result envelopes

Success returns MCP structuredContent matching the tool’s output schema plus a short text summary. For example, set_monitor_state returns:
A tool failure sets isError: true and returns public text, for example invalid_cursor: That cursor is not one this newsroom issued. It does not return the REST JSON error envelope. Common public errors are unauthorized, permission_denied, invalid_request, invalid_input, briefing_unavailable, revision_conflict, invalid_cursor, not_found, monitor_stopped, limit_reached, unsupported_coverage, evaluation_unavailable, onboarding_unavailable, and internal_error. See Troubleshooting. Identifiers and cursors are opaque. Examples use synthetic values only.