Kanban AI

Registre officiel IA et agents

Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.

Que pouvez-vous faire avec Kanban AI ?

  • AI project breakdown and sprint-aware task generation
  • Drag-and-drop kanban with priorities, types, due dates, and comments
  • Mobile-first board: status tabs + single scroll list, in-flow quick-add, drawer nav, overlay AI assistant
  • In-board AI assistant (and @kanban replies on task threads)
  • Project members (cloud) or local seeded collaborator for sharing tests
  • Dark / light mode
  • Optional remote MCP so coding agents manage the same board

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http kanban-ai 'https://kanbanai.dev/api/mcp' --header 'Authorization: <Supabase access token for the signed-in Kanban AI user. Format: Bearer <access_token>. Obtain from the in-app Connect page (/connect) or GET /api/mcp-setup.>' --header 'X-Supabase-Access-Token: <Alternative to Authorization when your MCP client cannot send a Bearer header. Same Supabase access token value.>' --header 'X-MCP-API-Key: <Shared deployment secret when MCP_API_SECRET is configured on the host (production uses this). Obtain from the in-app Connect page or GET /api/mcp-setup.>'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "kanban-ai": {
            "type": "http",
            "url": "https://kanbanai.dev/api/mcp",
            "headers": {
                "Authorization": "<Supabase access token for the signed-in Kanban AI user. Format: Bearer <access_token>. Obtain from the in-app Connect page (/connect) or GET /api/mcp-setup.>",
                "X-Supabase-Access-Token": "<Alternative to Authorization when your MCP client cannot send a Bearer header. Same Supabase access token value.>",
                "X-MCP-API-Key": "<Shared deployment secret when MCP_API_SECRET is configured on the host (production uses this). Obtain from the in-app Connect page or GET /api/mcp-setup.>"
            }
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Kanban AI
  2. Run locally (recommended)
  3. Optional: Supabase (cloud auth + sync)
  4. Ads
  5. MCP (Cursor, Claude, other agents)
  6. Features
  7. Tech stack
  8. Project layout
  9. Contributing
  10. License

Kanban AI

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.

git clone https://github.com/orholam/kanban_ai.git
cd kanban_ai/frontend
npm install
cp env.local.example .env.local

Edit .env.local:

VITE_LOCAL_MODE=true
OPENAI_API_KEY=sk-...

Do not prefix the OpenAI key with VITE_ — that would expose it in the browser.

npm run dev:local

Open **http://localhost:5173**.

What works in local mode
FeatureLocal
Kanban board, sprints, tasks, commentsYes
AI project builder (chat + live workspace) + board assistantYes (needs OPENAI_API_KEY)
Project members (invite by email)Yes — invite collaborator@dev.invalid to try (seeded)
Cloud auth / account / hosted analytics / feedbackNo (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).

Useful scripts
CommandWhat it does
npm run dev:localLocal SQLite API + Vite (default for contributors)
npm startVite only (pair with Supabase / vercel dev)
npm run buildProduction build + static SEO prerender (unique HTML per public route; skip with SKIP_PRERENDER=1)
npm run build:no-prerenderFaster local production build

Optional: Supabase (cloud auth + sync)

Use this when you want real accounts, multi-device sync, or the hosted MCP server.

  1. In 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).
  2. Keep OPENAI_API_KEY for /api/openai.
  3. From frontend/, run two terminals: npx vercel dev --listen 3000 then npm start. UI: **http://localhost:5173**.
Deploy on Vercel

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

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:

  • Ad placements. TinyAdz auto-places inline ads by matching CSS class chains it scraped from the landing page, so any other page gets no inventory. Add <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).
  • The visitor-engagement gate. TinyAdz renders nothing until it sees a window 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.


MCP (Cursor, Claude, other agents)

On a hosted deployment, Kanban AI exposes a remote MCP server at /api/mcp for listing, creating, and updating projects, tasks, and comments. Permanent deletion stays in the signed-in web app.

  • End users: sign in → Connect AI (/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.
  • Operators: before Connect AI can issue 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.
  • Operators: see docs/MCP_REGISTRY.md and the env table below.
  • Discovery: /.well-known/mcp-server · OpenAPI: /openapi/mcp.json · AI index: /llms.txt
VariablePurpose
SUPABASE_URLSame as VITE_SUPABASE_URL
SUPABASE_ANON_KEYSame as VITE_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEYMCP analytics, member invites, personal MCP keys
MCP_API_SECRETShared secret for X-MCP-API-Key (also used to encrypt personal keys at rest)
MCP_KEY_ENCRYPTION_SECRETOptional dedicated secret for encrypting personal MCP keys (falls back to MCP_API_SECRET / service role)
OPENAI_API_KEYIn-app AI (optional for MCP CRUD tools)

Tools (8): list_projects, get_board, create_project, update_project, create_task, update_task, list_task_comments, add_task_comment. Permanent deletion of projects, tasks, and comments stays in the signed-in web app so agents cannot wipe boards. Unauthenticated MCP calls return 401 with WWW-Authenticate: Bearer. Authenticated traffic is rate-limited (RateLimit headers; 120 req/min).


Features

  • AI project breakdown and sprint-aware task generation
  • Drag-and-drop kanban with priorities, types, due dates, and comments
  • Mobile-first board: status tabs + single scroll list, in-flow quick-add, drawer nav, overlay AI assistant
  • In-board AI assistant (and @kanban replies on task threads)
  • Project members (cloud) or local seeded collaborator for sharing tests
  • Dark / light mode
  • Optional remote MCP so coding agents manage the same board

Tech stack

React 18, TypeScript, Vite, Tailwind CSS · Local: SQLite API · Hosted: Supabase + Vercel · AI: OpenAI · MCP: mcp-handler

Project layout

frontend/
├── api/                 # Vercel serverless (OpenAI, MCP, feedback, invites)
├── scripts/             # Local schema, prerender, etc.
├── src/
│   ├── components/
│   ├── pages/
│   ├── lib/
│   └── ...
├── public/              # Static assets, llms.txt, OpenAPI, .well-known
└── package.json

Contributing

  1. Fork and clone
  2. Use Run locally above
  3. Branch, commit, open a PR

Issues and ideas: GitHub Issues

License

MIT — see LICENSE.

Questions fréquentes

Qu'est-ce que Kanban AI ?

Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.

Comment installer Kanban AI ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http kanban-ai 'https://kanbanai.dev/api/mcp' --header 'Authorization: <Supabase access token for the signed-in Kanban AI user. Format: Bearer <access_token>. Obtain from the in-app Connect page (/connect) or GET /api/mcp-setup.>' --header 'X-Supabase-Access-Token: <Alternative to Authorization when your MCP client cannot send a Bearer header. Same Supabase access token value.>' --header 'X-MCP-API-Key: <Shared deployment secret when MCP_API_SECRET is configured on the host (production uses this). Obtain from the in-app Connect page or GET /api/mcp-setup.>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Kanban AI ?

Oui. Il attend Authorization, X-Supabase-Access-Token, X-MCP-API-Key, à renseigner dans sa configuration.

Kanban AI est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient Kanban AI ?

Il est publié par orholam. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.