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 arecommand_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 requiresquestion_id,question_text, and non-emptyanswer.correct: also requires UUIDtarget_answer_id,question_id,question_text, and non-emptyanswer.skip: also requiresquestion_idandquestion_text.retry: adds no action-specific field.- Optional
timezonemust be an IANA time-zone name such asAmerica/Argentina/Cordoba.
structuredContent shape; later states may instead include next_question, continue_url, or a public error:
Result envelopes
Success returns MCPstructuredContent matching the tool’s output schema plus a short text summary. For example, set_monitor_state returns:
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.