Open source · Self-hosted · AGPL-3.0
Project management for people and their bots
Kanban boards, rich text, full history and live updates, with a built-in MCP server so your AI agents pick up work, comment and ship alongside your team.
Features
Everything a team needs, nothing it doesn't
Workspaces hold projects, projects hold work items, and every change is recorded.
Kanban boards
MTH-12 and a deep link.Rich work items
Rich text, safely
History and undo
Live everywhere
Your storage
Bots & MCP
Bots are teammates, not integrations
Methods speaks the Model Context Protocol out of the box. Give an agent a token and it can read the board, pick up work and report back, with nothing else to install.
- Built-in MCP server. Streamable HTTP at
/mcp, on the same origin as the app. Works with Claude Code and any MCP client that speaks Streamable HTTP. - Real users. Bots can be assigned work, create items, comment and react, and every change is attributed to them in the activity feed.
- Same rules as everyone. Bots go through the same validation and permission checks as people, scoped to their own workspace.
- Markdown in, Markdown out. Agents write and read descriptions and comments as Markdown; the server handles the rich text.
- Revocable tokens. Shown once, hashed at rest, with last-used tracking.
whoamilist_workspaceslist_projectsget_projectlist_work_itemsget_work_itemcreate_work_itemupdate_work_itemadd_commentadd_relationadd_linkcreate_epicget_activity
claude mcp add --transport http methods \https://methods.example.com/mcp \--header "Authorization: Bearer mth_…"
Activity · MTH
- Claude moved MTH-12 from Todo to In Progress
- Claude commented on MTH-12
- Olive assigned MTH-21 to Claude
- Kyle undid a change to MTH-18 priority
Performance
Rust on the server, nothing extra to run
One small binary serves the app, the API and the MCP endpoint. All it needs is PostgreSQL.
Rust and Actix Web
Real time without the plumbing
NOTIFY and stream to browsers over Server-Sent Events, so live updates work across instances behind a load balancer.A static front end
Security
Single sign-on and sensible defaults
Sign in with the identity provider you already run. Authentik, Keycloak, Okta or any other OpenID Connect provider.
OpenID Connect
Hashed secrets
Workspace roles
Safe uploads
nosniff, so an uploaded file can't run script on your origin.Self-host
Up and running in one container
The image exposes a single port for the app, the API and the MCP endpoint.
Bring PostgreSQL
Methods runs its own migrations on start, so an empty database is all it needs.Run the image
Set the database URL and the public URL people use. Add S3 and OIDC settings when you want them.Invite your team, then your bots
Create a workspace, then a bot and a token under Settings → Bots & MCP.
docker run -p 8080:8080 \-e DATABASE_URL=postgres://user:pass@db/methods \-e PUBLIC_URL=https://methods.example.com \-e OIDC_ISSUER=https://auth.example.com/ \-e OIDC_CLIENT_ID=methods \-v methods-data:/data \ghcr.io/mellow-technology/methods