Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Open-source AI kanban for side projects. Plan with AI, manage a board in the browser, and (optionally) drive the same board from Cursor or Claude via MCP.
Try the hosted app: kanbanai.dev · Docs: kanbanai.dev/docs · Release updates: kanbanai.dev/docs/release-updates
Most people cloning this repo want the local app. That path is first below.
No Supabase account, no sign-in. One SQLite database under .local/ (gitignored). Vite serves the UI; a small local API on port 3000 handles data and OpenAI.
Requirements: Node.js 18+, npm, and an OpenAI API key for AI features.
Edit .env.local:
Do not prefix the OpenAI key with VITE_ — that would expose it in the browser.
Open http://localhost:5173.
| Feature | Local |
|---|---|
| Kanban board, sprints, tasks, comments | Yes |
| AI project builder (chat + live workspace) + board assistant | Yes (needs OPENAI_API_KEY) |
| Project members (invite by email) | Yes — invite collaborator@dev.invalid to try (seeded) |
| Cloud auth / account / hosted analytics / feedback | No (needs Supabase) |
Remote MCP (/api/mcp) | No — use a hosted deploy or vercel dev with Supabase |
First run applies frontend/scripts/local-schema.sql. Vite proxies /api to the local process (frontend/vite.config.ts).
| Command | What it does |
|---|---|
npm run dev:local | Local SQLite API + Vite (default for contributors) |
npm start | Vite only (pair with Supabase / vercel dev) |
npm run build | Production build + static SEO prerender (unique HTML per public route; skip with SKIP_PRERENDER=1) |
npm run build:no-prerender | Faster local production build |
Use this when you want real accounts, multi-device sync, or the hosted MCP server.
frontend/.env.local, set VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY, and remove VITE_LOCAL_MODE (or set it to anything other than true).OPENAI_API_KEY for /api/openai.frontend/, run two terminals: npx vercel dev --listen 3000 then npm start. UI: http://localhost:5173.Set OPENAI_API_KEY (and Supabase / MCP vars below) in the Vercel project. The OpenAI key is read only on the server — never put it in VITE_* client env.
frontend/vercel.json pins "buildCommand": "npm run build". Leave it there: Vercel's Vite preset otherwise runs bare vite build and silently skips the SEO prerender, which makes every public URL serve the homepage shell and canonical. See frontend/SEO_SETUP.md. AdSense recovery work (crawlable copy, ads off docs) is logged in docs/adsense-approval-log.md.
Ads are served by TinyAdz/Apitiny via the script tag at the bottom of frontend/index.html (site id + data-test-mode). Two things are easy to break:
<AdSlot /> (frontend/src/components/AdSlot.tsx) where an ad belongs — it renders a ta-ad-container div that TinyAdz fills. Currently used on blog posts and both landing variants (not on docs — see docs/adsense-approval-log.md).scroll, mousemove, or touchmove. Because every route scrolls inside a nested overflow-y-auto element, window never emits scroll on its own, so frontend/src/lib/nestedScrollBridge.ts re-broadcasts nested scrolls onto the window from main.tsx. Without it, visitors who only wheel-scroll see zero ads and register zero views.To preview demo ads locally, set data-test-mode="true" in frontend/index.html.
On a hosted deployment, Kanban AI exposes a remote MCP server at /api/mcp with the same board operations as the web app.
/connect) → copy the generated config into Cursor or Claude Desktop. Config uses a long-lived personal MCP key (kai_…) so you do not need to reconnect hourly.kai_… keys in production, apply supabase/migrations/20260714120000_mcp_api_keys.sql on the Kanban Supabase project (mruhzlixrwsgwqaodviy). Run ./scripts/apply-mcp-api-keys-migration.sh for the SQL editor link, or supabase db push after linking that project.docs/MCP_REGISTRY.md and the env table below./.well-known/mcp-server · OpenAPI: /openapi/mcp.json · AI index: /llms.txt| Variable | Purpose |
|---|---|
SUPABASE_URL | Same as VITE_SUPABASE_URL |
SUPABASE_ANON_KEY | Same as VITE_SUPABASE_ANON_KEY |
SUPABASE_SERVICE_ROLE_KEY | MCP analytics, member invites, personal MCP keys |
MCP_API_SECRET | Shared secret for X-MCP-API-Key (also used to encrypt personal keys at rest) |
MCP_KEY_ENCRYPTION_SECRET | Optional dedicated secret for encrypting personal MCP keys (falls back to MCP_API_SECRET / service role) |
OPENAI_API_KEY | In-app AI (optional for MCP CRUD tools) |
Tools: list_projects, get_board, create_project, update_project, delete_project, create_task, update_task, delete_task, list_task_comments, add_task_comment, delete_task_comment.
@kanban replies on task threads)React 18, TypeScript, Vite, Tailwind CSS · Local: SQLite API · Hosted: Supabase + Vercel · AI: OpenAI · MCP: mcp-handler
Issues and ideas: GitHub Issues
MIT — see LICENSE.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kanban-ai)<a href="https://allmcps.com/mcp/kanban-ai"><img src="https://allmcps.com/api/badge/kanban-ai?style=directory" alt="Kanban AI on AllMCPs" /></a>