Skip to content

File a finding from a coding agent

create_ticket files an accessibility finding and its ticket into Binclusive. Use it when the agent has judged something itself — reviewing a diff, reading a component, watching a page — rather than reporting a scanner’s output.

create_ticket(
project_id,
organization_id, // see below
location: { kind: "page", url: "https://acme.com/checkout" },
criterion: "1.4.3", // omit for a non-WCAG-mapped issue
element: "button.pay",
evidence: "Text #767676 on #ffffff — 4.1:1 against a 4.5:1 requirement.",
impact: "serious",
description: "The pay button's label is too low-contrast to read.",
recommendation: "Darken the label to at least #595959, or lighten nothing and raise the weight."
)

For a finding in source rather than on a page, pass a source location instead:

location: { kind: "source", path: "src/Pay.tsx", lineHash: "9f2c…", index: 0, line: 42 }

lineHash is a one-way fingerprint of the offending line, never the line itself — your source stays on your machine. line is only there so the ticket has somewhere to link. Full shapes: Vocabularies and shared types.

Worth getting right, because getting it wrong is quiet.

Signed in as a person: pass organization_id. You may belong to several organizations, so the call cannot pick for you. Take the id from list_organizations — not from get_viewer, which returns the oldest organization rather than one you chose. Omit it and the call is refused with a message telling you what to do.

Machine credential (b8e_): you can leave it out — the credential already names one organization. Passing it anyway is the safer habit: it gets checked against the credential, so a mismatch tells you your credential does not reach that organization instead of writing somewhere you did not mean.

The finding id and the new ticket — id, url, element, description, impact, WCAG criterion, status, priority, provenance, and created-at. It is tagged origin: mcp, so you can tell agent-filed findings from scanner output and hand-filed ones later.

You get the underlying error back in full: a rejected impact value, a project or organization your credential cannot reach, or a credential not allowed to file findings. Read the message — it says which.

Full arguments: finding tools. Why a person must name an organization and a machine need not: About authentication.