# Spedy > Agency software for agencies that build software themselves. One board per client with its own budget, your own AI agents connected via MCP, and every hour — human or agent — on the right client. Spedy is a multi-tenant delivery platform built by Coding 9 GmbH, itself a software agency running Spedy in production. It combines client boards with monthly budgets, tickets, wikis, time tracking on the ticket, linked GitHub, GitLab and Bitbucket pull requests, free client logins, and an MCP server plus one-click ticket handoff for the AI agents a team already runs (Claude Code, Codex, Cursor, …). Spedy does not run agents itself: it is the work and coordination layer the agents work in and the humans manage with. The primary buyer is a software agency or consultancy of 10-50 people in the DACH region with its own developers and repos, running 5-15 client projects in parallel, where delivery is bottlenecked on two or three seniors. Secondary: product teams building their own product, and in-house dev teams with compliance requirements. Spedy runs as a SaaS with multi-tenant subdomain-based isolation per organization (e.g. your-org.spedy.ai); individual clients are boards inside that organization, not separate tenants. Deliberately out of scope: Spedy has no hourly rates, does not invoice end clients, and reports no margin or utilisation figures. It produces clean hours per client, per ticket, estimate against actual, billable against non-billable, human separated from agent — the valuation in currency stays in the customer's invoicing software (MOCO, Teamleader, or accounting). ## Core Concepts Spedy is built around the principle of **explainable work** — every ticket, decision, and agent action comes with context about *why*, not just *what*. Machine work is never invisible: what an agent books as time via MCP arrives as a draft that a human approves before it counts anywhere. ### Multi-Tenancy Each organization gets its own subdomain (e.g. acme-corp.spedy.ai) with completely isolated data. Users can be members of multiple organizations with different roles and permissions. ### Role-Based Access - **Admin**: Full access to all features, settings, and user management - **Team Member**: Access to boards, tickets, wikis based on team and board permissions - **Customer**: Limited portal access for external stakeholders (free, unlimited) - **Agent user** (Pro): a seat-free machine user with a human owner, no login, TEAM_MEMBER role, placed in the system "Agents" group; acts only through scoped tokens ### Board Permissions - **Board Admin**: Full control over a specific board - **Board Member**: Can create and manage tickets on the board - **Board Viewer**: Read-only access to board content ## Features ### Agent loops with your own agents URL: https://spedy.ai/features/agents Spedy runs no agents. The team's own agents pull work from Spedy over MCP: - **Agent users** (Pro): seat-free machine users with an owner, no login; every action is attributed to the agent and its owner - **Scoped tokens**: per-token `allowedBoardIds`, `readOnly`, `denyDelete` (default on for agents), `clientLabel`; the plaintext token is shown once - **Ticket claims**: `tickets_claim` takes an exclusive, expiring lease (default 30 min, max 4 h) — of two loops exactly one wins; `tickets_heartbeat` extends, `tickets_release` frees, an unreleased lease expires on its own - **Run reports**: `tickets_report` finishes a run in one call — a structured comment (Result / Changes / Open / PR), links the pull request, optionally moves the status, stops the timer, releases the claim; outcomes done / blocked / needs_review / partial - **Delivery trace**: `tickets_delivery_trace` (and the ticket UI) shows the ordered story of a ticket — claims, runs, first agent and human comment, status moves, branch, PR with reviews and merge, pipeline runs, time booked - **Agent policies**: status transitions an agent may not take directly (default: DONE) become a pending suggestion a human accepts; PRs authored by an agent are flagged as needing human review - **Agents overview**: who is claiming what, expiring leases, last reports, per-agent time factor and weekly hours cap - **Wiki write over MCP**: `wiki_pages_create` / `wiki_pages_update` with the same editor rights as in the UI - **Wake-up**: assign a ticket to an agent user and the `ticket.assigned` webhook fires; `ticket.claimed`, `ticket.claim_released`, `ticket.claim_expired` and `ticket.reported` follow the loop - Docs: https://docs.spedy.ai/docs/features/agent-loops — reference loop: https://docs.spedy.ai/docs/features/agent-loop-example ### Kanban Boards URL: https://spedy.ai/features/boards Visualize your workflow with flexible, customizable Kanban boards. Features include: - Drag & drop ticket management with real-time updates via WebSocket - Customizable columns with status categories (Planning, Active, Final) - Board-level permissions (Admin, Member, Viewer) - Swimlanes, filters, and grouping options - Real-time collaboration — see changes from teammates instantly ### Ticket Management URL: https://spedy.ai/features/tickets Comprehensive ticket system with: - Ticket types: Feature, Bug, Epic - Priority levels: Low, Medium, High, Critical - Status workflow: Backlog → Todo → In Progress → Blocked → Done - Rich text descriptions with markdown support - File attachments and comments - Git integration — link commits and pull requests to tickets - Time tracking directly on tickets - Sub-tickets and dependency tracking - Custom fields and labels ### Personal Todos URL: https://spedy.ai/features/todos - A private list next to the tickets: only you see your entries - Delegate a todo to a team member with a reminder at the right time (from Starter) - Recurring todos (daily, weekly, specific weekdays) ### Wiki & Docs URL: https://spedy.ai/features/wiki Central knowledge base for your team: - Hierarchical page structure with drag & drop reordering - Rich text editor with markdown, code blocks, and embeds - Version history and page revisions - Granular access permissions per wiki space - Full-text and semantic search across all documentation - Readable and writable over MCP (`wiki_search`, `wiki_pages_get`, `wiki_pages_create`, `wiki_pages_update`) ### AI Knowledge Base URL: https://spedy.ai/features/ai-knowledge Persistent memory for the agents you run: - Solutions, preferences, and patterns stored and recalled over MCP - Organization-specific knowledge that improves over time - Shared context across team members' agents - Custom knowledge entries for domain-specific information ### Teams & Roles URL: https://spedy.ai/features/teams Team organization and authorization: - Create teams and assign members - Role-based permissions at organization, team, and board level - Invite team members via email - Manage access to boards, wikis, and features per team - Activity logs for audit trails ### Integrations URL: https://spedy.ai/features/integrations Connect your existing tools: - **GitHub**: Link repositories, sync pull requests and commits to tickets - **GitLab**: Repository integration with merge request tracking (gitlab.com or self-hosted — https://spedy.ai/features/gitlab) - **Bitbucket**: Pull requests and builds on the ticket - **Jira**: Import and sync tickets bidirectionally - **YouTrack**: Migration and synchronization support - **MOCO**: Time tracking and billing integration - **Open API**: RESTful API for custom integrations - **Webhooks**: Event-driven notifications to external systems (Pro) ### Time Tracking URL: https://spedy.ai/features/time-tracking Built-in time tracking: - One-click timer start/stop directly on tickets - Manual time entry for past work - Time reports per user, project, or time period - Export capabilities for billing and invoicing - Integration with MOCO for automated billing - Agent time (timers started over MCP) lands as a draft that a human approves ### Ticket Transparency (Explainability) URL: https://spedy.ai/features/explainability Deterministic explainability — no AI assistant involved: - See why a ticket is blocked and what dependencies exist - See why a status is suggested — the recorded events and rules behind the suggestion - Dependency graphs showing ticket relationships - Causal chain per ticket, also available over MCP (`work-context_ticket-explanation`) ### Releases & Milestones URL: https://spedy.ai/features/releases Structured release planning: - Create releases with target dates and scope - Assign tickets to releases and milestones - Progress tracking with burndown/burnup charts - Backlog grooming and sprint planning tools - Release notes generation ### Project Pulse URL: https://spedy.ai/features/pulse Real-time project health monitoring: - Project health scoring - Team velocity tracking and trends - Risk detection and early warnings - Sprint progress and bottleneck identification - Customizable dashboards and reports ### Real-time Workload URL: https://spedy.ai/features/workload Live team workload visibility: - See who is working on what in real time - Active timer tracking across the team - Capacity planning based on assigned work - Blocked work identification - Workload balancing suggestions ### Dashboard URL: https://spedy.ai/features/dashboard Operational command center: - Triage queue for new and unassigned tickets - Idle ticket detection — tickets without recent activity - Waiting state overview — tickets blocked or awaiting input - Unbooked work tracking — time gaps that need attention - Customizable widgets and layouts ### MCP Server URL: https://spedy.ai/features/mcp Spedy's own MCP server, for the agent you already use (Claude Code, Codex, Cursor, Claude Desktop): - Endpoint `https://.spedy.ai/api/v1/mcp` (streamable HTTP, JSON-RPC 2.0) - Authentication via OAuth 2.0 with PKCE + Dynamic Client Registration, or a personal access token — every call runs under the caller's own permissions; agent users (Pro) call with scoped tokens - Time an agent books via MCP lands as a draft for human approval - On every plan including Free with your personal token - Server card: https://spedy.ai/.well-known/mcp/server-card.json 52 tools in 14 namespaces: #### Tickets - `tickets_list` — List a board’s tickets, filtered by status, assignee or “claimable”. - `tickets_search` — Full-text search across the tickets the caller can access. - `tickets_get` — Read one ticket with description, status, labels, links and comments. - `tickets_create` — Create a ticket on a board — title, type, priority, assignee, labels. - `tickets_update` — Change a ticket’s fields: title, description, priority, estimate, milestone. - `tickets_move_status` — Move a ticket to another status — agent moves into gated statuses become a suggestion. - `tickets_resolve` — Close a ticket as resolved. - `tickets_add_comment` — Post a comment on the ticket (questions, interim status). - `tickets_set_custom_fields` — Set custom-field values on a ticket. - `tickets_claim` — Take an exclusive, expiring lease on a ticket — of two loops exactly one wins. - `tickets_heartbeat` — Extend your own claim while you work. - `tickets_release` — Release your own claim without a report. - `tickets_report` — One call to finish: structured comment, link the PR, status, stop the timer, release the claim. - `tickets_delivery_trace` — The ordered history of a ticket: claims, runs, comments, branch, PR, pipeline, booked time. - `tickets_list_links` — Read a ticket’s links (blocks, is blocked by, duplicates …). - `tickets_create_link` — Link two tickets — BLOCKS, IS_BLOCKED_BY, RELATES_TO, DUPLICATES. - `tickets_delete_link` — Remove a ticket link. - `tickets_list_subtickets` — List the sub-tickets of a ticket or epic. - `tickets_create_subticket` — Create a sub-ticket under a ticket. - `tickets_convert_to_subticket` — Attach an existing ticket to a parent (e.g. an epic). - `tickets_promote_to_standalone` — Detach a sub-ticket into a standalone ticket again. #### Boards - `boards_list` — Every board in the organisation with prefix and description. - `boards_get` — One board with statuses, members, ticket types and statistics. #### Statuses - `statuses_list` — The organisation’s workflow statuses. #### Labels - `labels_list` — Labels with ids, for tickets_create and tickets_update. #### Milestones - `milestones_list` — A board’s milestones with due date and progress. #### Custom fields - `custom_fields_list` — A board’s custom-field definitions. #### Time tracking - `timers_start` — Start a timer on a ticket — time started over MCP is agent time. - `timers_stop` — Stop a timer; the entry lands as a draft for approval. - `timers_stopAll` — Stop every running timer of the caller. - `timers_list` — The caller’s running timers with ticket and elapsed time. #### Knowledge base - `knowledge_recall` — Recall relevant knowledge for a board or ticket — project entries first, then org-wide. - `knowledge_search` — Search the knowledge base by solution, category, tags or linked entities. - `knowledge_store` — Store reusable knowledge: corrections, conventions, patterns. - `knowledge_update` — Refine an entry — confidence, tags, links. - `knowledge_list` — List entries to audit what is stored. - `knowledge_delete` — Delete an outdated or wrong entry. #### Wiki - `wiki_spaces_list` — Wiki spaces the caller can access. - `wiki_spaces_get` — Read a space with its folder and page tree. - `wiki_pages_list` — List the pages of a space or folder. - `wiki_pages_get` — Read a page with its full body. - `wiki_search` — Wiki search — hybrid (semantic + keyword) or exact. - `wiki_pages_create` — Create a page — with the same editor rights as in the UI. - `wiki_pages_update` — Change a page’s title, body or folder. #### Pull requests - `pull_requests_list` — Open PRs across GitHub, GitLab and Bitbucket, by board or status. - `pull_requests_get` — Read one PR with reviews, checks and its linked ticket. #### Pipelines - `pipelines_list` — CI runs (GitHub Actions, GitLab CI, Bitbucket) by status bucket, provider and board. #### Users - `users_me` — Who is calling — for agent users including owner, time factor and weekly cap. #### Work context - `work-context_get` — What matters for me right now: needs attention, waiting on, recent changes. - `work-context_board-health` — Board health: healthy, at-risk and critical tickets with reasons. - `work-context_ticket-explanation` — The causal chain behind a ticket’s state — why it sits where it sits. #### Context search - `context_search` — One query across tickets, wiki and knowledge base — grouped hits with snippets. ### Handoff to AI tools URL: https://spedy.ai/features/ai-handoff Open a ticket in your own coding tool with one click: - 16+ tools out of the box (Claude Code, Codex, Cursor, Windsurf, Zed, Copilot, Warp, …) plus custom URL templates - Full ticket context as the prompt, suggested branch name, linked repository - The default prompt tells the agent to query Spedy via MCP and post a summary comment back to the ticket - Per-user tool selection, per-project on/off, invisible to client logins ### Pull Requests & Pipelines URLs: https://spedy.ai/features/pull-requests, https://spedy.ai/features/pipelines - GitHub, GitLab and Bitbucket pull/merge requests linked to tickets, status moves with the PR - CI runs from GitHub Actions, GitLab CI and Bitbucket in one dashboard across repositories - Whoever opened the PR — human or agent — the review lands in the team's queue; agent-authored PRs are flagged for human review ### Automations URL: https://spedy.ai/features/automations Rule-based workflows on ticket events (Pro). ### Public Forms URL: https://spedy.ai/features/public-forms Branded public intake forms (Pro): a token-secured form per board that creates tickets, embeddable on your own site. ## Developer surfaces URL: https://spedy.ai/developers - MCP server per organisation (above) - REST API with OpenAPI (`/api/docs-json`), OAuth apps with authorization code + PKCE and scoped tokens (Business) - Webhooks (Pro): `ticket.created`, `ticket.updated`, `ticket.deleted`, `ticket.status_changed`, `ticket.assigned`, `ticket.claimed`, `ticket.claim_released`, `ticket.claim_expired`, `ticket.reported`, `comment.created`, `pr.opened`, `pr.status_changed`, `pr.merged`, `pipeline.updated` - Discovery: `/.well-known/api-catalog`, `/.well-known/mcp/server-card.json`, `/.well-known/oauth-protected-resource`, `/llms.txt` - JetBrains plugin and Chrome extension (https://spedy.ai/extensions) ## Technical Details - **Frontend**: Next.js 15, React 19, TailwindCSS, TanStack Query, Zustand - **Backend**: NestJS, Prisma ORM, PostgreSQL - **Real-time**: Socket.io for live updates - **Search**: self-hosted embeddings for hybrid (semantic + keyword) search over tickets, wiki and knowledge; no external LLM calls from Spedy - **Auth**: JWT-based authentication with refresh tokens, OAuth 2.0 (PKCE, DCR), personal access tokens, scoped agent tokens - **Storage**: file attachments on the local filesystem of the hosting server, capped per plan - **API**: RESTful API with OpenAPI/Swagger documentation ## Pricing - **Free**: 0 €/forever — 1 user, 2 GB storage, boards, tickets, wiki, personal todos, Git integration, MCP access for your own agents with your personal token. A single seat: enough to look around, not enough to run an agency on. - **Starter**: 5 €/user/month (net, excl. VAT) — up to 5 users, 10 GB storage, everything in Free plus multiple users, teams and todo delegation. - **Pro**: 9 €/user/month (net, excl. VAT) — unlimited users, 50 GB storage, everything in Starter plus unlimited users, automations, webhooks, API access, public forms, AI knowledge base and seat-free agent users (machine users with scoped tokens, ticket claims, run reports, delivery trace, agent policies). Ten people cost 90 €/month. - **Business**: 19 €/user/month (net, excl. VAT) — unlimited users, 250 GB storage, everything in Pro plus custom permission groups, OAuth apps and priority support. ### Client logins Unlimited and free on every plan. Only ADMIN and TEAM_MEMBER seats are billed; agent users (Pro) take no seat. A client login sees budget, progress and per-ticket state on its own board; it cannot delete tickets or read internal comments. ### AI agents Spedy does not run AI agents. Teams bring their own agent (Claude Code, Codex, Cursor, any MCP client) with their own key and connect it via MCP — on every plan including Free, with a human's own personal access token or OAuth. Seat-free **agent users** (machine users with an owner and scoped tokens, ticket claims, run reports, delivery trace, agent policies, agents overview, wiki write over MCP) are a Pro feature. LLM costs are paid to the agent's provider directly, not to Spedy. Client code never passes through an AI service operated by Spedy. ### Comparison to Alternatives - 10 users: Spedy 90€/month vs Jira 158€/month - 25 users: Spedy 225€/month vs Jira 395€/month - 50 users: Spedy 450€/month vs Jira 790€/month - All prices excl. VAT ## Use Cases ### Software Development Teams Manage sprints, track bugs and features, link commits to tickets, and hand tickets to your own AI agents with full context — the pull request lands back on the ticket. ### Agencies & Consultancies Track client projects with time tracking, billing exports (MOCO integration), and team workload visibility. Customer portal access for external stakeholders at no extra cost. ### Agent-augmented development Connect Claude Code, Codex or Cursor via MCP. Agents claim tickets, read wiki and knowledge, book their time as drafts, report back in one call and open PRs that humans review before merge. Spedy provides context, budgets, guardrails and the delivery trace — the agent runs wherever your team runs it. ## Links - [Homepage](https://spedy.ai) - [Agent loops](https://spedy.ai/features/agents) - [Developer portal](https://spedy.ai/developers) - [For software agencies](https://spedy.ai/fuer/software-agenturen) - [For product teams](https://spedy.ai/fuer/produktteams) - [For in-house dev teams](https://spedy.ai/fuer/in-house-dev-teams) - [Pricing](https://spedy.ai/pricing) - [ROI calculator](https://spedy.ai/en/roi-calculator) - [Comparisons](https://spedy.ai/en/compare) - [Docs: agent loops](https://docs.spedy.ai/docs/features/agent-loops) - [Docs: reference loop](https://docs.spedy.ai/docs/features/agent-loop-example) - [Terms & Conditions](https://spedy.ai/terms) - [Privacy Policy](https://spedy.ai/privacy) - [Imprint](https://spedy.ai/imprint) - [Compact llms.txt](https://spedy.ai/llms.txt)