Skip to content

Connect your agent and work your accessibility backlog

In this tutorial we will connect Claude Code to the hosted Binclusive MCP server, confirm who the agent is acting as, walk down from organization to project to tickets, and move one real ticket to IN_PROGRESS. Every step returns something you can see immediately; nothing here waits on a build or a virtual machine.

You will need a Binclusive account that belongs to at least one organization, and Claude Code installed. We will not edit any configuration by hand beyond a single file.

From the root of any project, run:

Terminal window
claude mcp add --transport http binclusive https://mcp.binclusive.io/mcp

That writes an entry into your MCP config. Look at it — this is the whole thing:

{
"mcpServers": {
"binclusive": {
"type": "http",
"url": "https://mcp.binclusive.io/mcp"
}
}
}

There is no token in it, and there is nothing to fill in. We will see why in the next step.

Start Claude Code and ask it to do anything with Binclusive — for example:

Who am I on Binclusive?

The first request the client sends carries no credential, the server answers 401, and your client opens a browser to sign you in. Sign in there. The browser hands a token back to your client, which stores it locally and retries.

The agent then calls get_viewer and you get back something like:

{
"id": "usr_2f...",
"email": "you@example.com",
"name": "Your Name",
"organization": { "id": "org_9c...", "name": "Acme", "slug": "acme" },
"role": "owner"
}

That is the first visible result: the agent now knows who it is acting as. Everything after this is scoped to that person’s access. (If you want the mechanics of the sign-in, they are in About authentication — come back here when you are done.)

Step 3 — Find the organization you want to work in

Section titled “Step 3 — Find the organization you want to work in”

get_viewer reports one organization, and it may not be the one you want: it returns whichever organization is oldest. Ask for the full list:

List my Binclusive organizations.

[
{ "id": "org_9c...", "name": "Acme", "slug": "acme", "logo": null },
{ "id": "org_4d...", "name": "Acme Labs", "slug": "acme-labs", "logo": null }
]

Pick one and keep its id — nearly every other tool takes an organization_id, and the ids are what identify an organization, not the slugs.

List the projects in Acme.

The agent calls list_projects with that organization id and gets a page of projects back, each with its own id, name, and domain, alongside a totalCount and a pageInfo:

{
"totalCount": 3,
"pageInfo": { "hasNextPage": false, "endCursor": "..." },
"projects": [
{ "id": "prj_71...", "name": "Marketing site", "domain": "https://acme.com" }
]
}

Keep a project id too. We now have the two ids that unlock the rest of the surface.

Show me the open accessibility tickets for the marketing site.

The agent calls list_agentic_tickets with the organization id, the project id, and a status filter. Each ticket carries the page or source location it was found on, the WCAG criterion it maps to, its impact, and its status. They arrive worst-first — the list is ordered by what needs attention, not by date — and cover your production findings.

Pick one that interests you and ask for the whole thing:

Show me the full details of that first ticket.

get_agentic_ticket returns the complete record — the element, the evidence that was observed, and the recommendation.

This is the step that writes. Tell the agent you are taking the ticket:

Mark that ticket as in progress and assign it to me.

Two calls happen: update_agentic_ticket_status with IN_PROGRESS, and assign_agentic_ticket with your user id — the id from get_viewer back in Step 2, not the membership id get_organization returns. Open the ticket in the Binclusive dashboard — it has moved. The agent and the dashboard are two views of one system; there is no sync step between them.

We connected a client with a config that holds no secret, signed in once through the browser, and walked identity → organization → project → tickets, ending with a write that a teammate can see. That walk is the shape of nearly every session with this server: the ids come from the tools above them.

From here: