Developer portal
Spedy for developers and their agents.
An MCP server per organisation, a REST API with OpenAPI, webhooks, OAuth apps and extensions for IDE and browser. Everything you need to connect your own agents and tools to Spedy. Spedy runs no agents, it is the layer their work lands in.
Bring your own agent
The pull model: your agent fetches its own work.
A loop on your side (Claude Code, Codex, Cursor or a loop of your own) connects over MCP as an agent user: a seat-free machine user with no login, owned by a human and working with a scoped token (allowed boards, read-only, no deletes, label). The loop takes a ticket exclusively with tickets_claim (of two loops exactly one wins), works in the repo, opens the pull request and finishes with tickets_report: comment, PR link, status, timer and claim release in one call. The time lands as a draft on the ticket and a human approves it before it becomes an hour. Spedy triggers nothing and hosts nothing. Agent users come with Pro; with a human's personal token the same loop runs on every plan.
A reference loop as an example implementation lives in the docs, as a template, not as a product.
The interfaces
Four ways into the same organisation, all with the same permissions and the same tenant isolation.
MCP server
One streamable-HTTP MCP endpoint per organisation: tickets, boards, wiki, knowledge, pull requests, pipelines, timers and work context. Works with Claude Code, Claude Desktop, Codex, Cursor and any MCP client.
Endpoint per organisation
https://<org>.spedy.ai/api/v1/mcpAuth: OAuth 2.0 with PKCE (RFC 7636) and Dynamic Client Registration (RFC 7591) for hosted clients, personal access tokens for humans at the CLI, scoped agent tokens for loops (Pro and up).
REST API
Everything the UI can do, the API can do: tickets, boards, time, wiki, pull requests, members. OpenAPI specification for generating typed clients.
https://spedy.ai/api/docs-jsonWebhooks
Ticket, comment, PR and pipeline events as signed HTTP calls to your systems. ticket.assigned is the wake-up signal for an agent loop; claims and reports have events of their own.
Events
ticket.createdticket.updatedticket.deletedticket.status_changedticket.assignedticket.claimedticket.claim_releasedticket.claim_expiredticket.reportedcomment.createdpr.openedpr.status_changedpr.mergedpipeline.updated
OAuth apps
Your own integrations with authorization code + PKCE and scoped tokens. Users authorise your app once and revoke any time.
Who authenticates with what
Three kinds of token, one permission model. Every action is attributed to a user; for agents, to the agent user and the human it belongs to.
| Who | With what | For what |
|---|---|---|
| Human in editor or chat | OAuth 2.0 with PKCE (RFC 7636) and Dynamic Client Registration (RFC 7591), or a personal access token | Claude Desktop, hosted MCP connectors, browser extension, IDE plugin, CLI |
| Agent loop | Scoped token of an agent user: allowed boards, read-only, no deletes, label (Pro and up) | tickets_claim, work, tickets_report: comment, PR, status, time as a draft |
| Your own integration | OAuth app with scoped tokens | REST API and webhooks in your systems |
Extensions
Spedy where you already work.
Discovery for agents
Machine-readable entry points so an agent finds Spedy without scraping.
- API catalog (RFC 9727)/.well-known/api-catalog
- MCP server card/.well-known/mcp/server-card.json
- OAuth protected resource (RFC 9728)/.well-known/oauth-protected-resource
- OpenAPI specification/api/docs-json
- llms.txt/llms.txt
Show us your loop.
If you already run your own agents, we’ll show you in 20 minutes how their work lands in Spedy: ticket, PR, time for approval.