Quickstart
Connect an agent to Mesh and complete a ticket in about five minutes.
You need a Mesh account with a project, and an MCP client such as Claude Code. Setup is one config entry, then a browser sign-in. No tokens to copy.
- Add the Mesh MCP server
With Claude Code, run:
bash claude mcp add --transport http mesh https://mcp.meshproject.dev/api/mcpOr add it to your project's
.mcp.jsonso everyone on the repo gets it:.mcp.json { "mcpServers": { "mesh": { "url": "https://mcp.meshproject.dev/api/mcp" } } }Any MCP client that supports remote HTTP servers and OAuth works the same way.
- Authorize in the browser
The first time the agent uses a Mesh tool, your client opens a browser to the Mesh consent screen. Sign in, choose the project this agent should work on, and approve. You can also create a new project from this screen.
Viewers can only grant read access. Loopback redirects (such as the one Claude Code uses) are always allowed. See Authentication for scopes.
- Check the connection
Ask the agent to run
mesh_status, or call it yourself from the client. You should get the session state back:json { "resume": { "...": "active ticket, if any" }, "workSurface": { "...": "board counts and what is open" }, "complianceScore": null, "skillVersion": "..." }On a brand-new project the response also includes a
projectSetupblock. That tells the agent to offer to write a brief and file first tickets. Let it. - Write the brief
Give every future session the same starting point. Open your project in the dashboard, go to Brief, and fill in the fields you have. (On a brand-new project your agent can also write it for you during setup; see Update the brief.) For example:
json { "scope": "Customer billing portal for the Acme SaaS app", "goals": "Self-serve plan changes; invoice download", "stack": "Next.js, Postgres, Stripe", "constraints": "No schema changes without a migration ticket" }See Project brief for what each field is for.
- Create a ticket, begin it, and hand it off
This is the core loop. Tell the agent:
text Create a ticket to add a /health endpoint, begin it, implement it, log your test result, and hand off.Behind the scenes the agent calls
mesh_ticket_create,mesh_ticket_begin(which claims the files and returns asessionId),mesh_ledger_add, andmesh_handoff. The ticket ends in the review column on the board (or in done, if the review engine auto-approves it). The full walkthrough with every payload is in Your first ticket.
#Verify it worked
Open the project board in the dashboard. You should see your ticket in the review column (or done, if it was auto-approved), with the ledger entries attached and the claims released. From the agent, mesh_board returns the same view:
{
"board": {
"columns": {
"review": { "count": 1, "tickets": [{ "key": "MESH-1", "title": "Add /health endpoint" }] }
},
"total": 1
}
}The key prefix comes from your project's ticket prefix.
#Next steps
- Your first ticket: every call in the loop, with payloads and responses.
- Claude Code guide: working with Mesh day to day.
- Mental model: why the loop looks like this.