Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Free, open-source project management for software teams: boards, tasks, issues, releases, clients, docs and team chat. Next.js + Supabase.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Free, open-source project management for software studios and teams. Kanban boards, tasks, issues, releases, clients, docs and team chat, across any number of organizations with one login, with private-by-default data.
Live app · Architecture · Contributing · Security · License: AGPL-3.0
mso-pm is an MCP server at
https://pm.mshinan.com/api/mcp (or /api/mcp on your own copy). Add that URL
in your AI app, sign in with your mso-pm account, and click Allow:
| App | Where |
|---|---|
| Claude (web and desktop) | Settings → Connectors → Add custom connector |
| ChatGPT | Settings → Connectors, with developer mode on |
| Claude Code | claude mcp add --transport http mso-pm https://pm.mshinan.com/api/mcp, then /mcp to sign in |
| Cursor | .cursor/mcp.json: { "mcpServers": { "mso-pm": { "url": "https://pm.mshinan.com/api/mcp" } } } |
| VS Code | .vscode/mcp.json: { "servers": { "mso-pm": { "type": "http", "url": "https://pm.mshinan.com/api/mcp" } } } |
Tools: list_organizations, list_projects, list_tasks, get_task,
create_task, update_task, add_comment. Then just ask, for example
"What's assigned to me in WEB?" or "Move WEB-41 to Review and comment that it's ready."
Every call runs as you, so the AI sees and changes only what you could in the app, and your teammates get the usual notifications.
Next.js 16 (App Router, Server Components) · Supabase (Postgres, Auth,
Realtime, Vault, pg_cron, pg_net, OAuth 2.1 server) · Tailwind CSS v4 ·
MCP (@modelcontextprotocol/server, @supabase/server) · Cloudflare R2 for
files · Resend for email · Vercel for hosting.
Every table has row-level security, so the database itself decides who can
read or change what: the UI only hides what you can't do. The model, schema
and trade-offs are in docs/ARCHITECTURE.md, and
tests/rls.test.ts checks them against a real database with real users.
Everything below fits in free tiers: Supabase (database and auth), Vercel Hobby (hosting, personal and non-commercial use), Cloudflare R2 (10 GB of files, free downloads) and Resend (3,000 emails a month).
Create a project at supabase.com.
cp .env.example .env.local and fill in the Supabase values (Project
Settings → API keys and Database → connection string, session pooler).
Apply the schema and make yourself the platform admin:
npm install
npm run db:push
node --env-file=.env.local scripts/platform-admin.mjs [email protected]
npm run dev # http://localhost:3000
Sign up with the email you made admin, confirm it with the code, and create an
organization. In Supabase → Authentication → URL Configuration, add your app's
URLs to the redirect list (http://localhost:3000/** and your production URL).
Supabase's built-in email only reaches members of your Supabase team, so add your own sender before inviting anyone:
In Resend, verify your domain and create an API key.
Supabase → Authentication → Emails → SMTP: host smtp.resend.com, port
465, user resend, the API key as password, and your sender address.
Store the same settings for notification emails (read from the environment, so the key never lands in your shell history):
RESEND_API_KEY=re_... node --env-file=.env.local scripts/email-setup.mjs "mso-pm <[email protected]>" https://your-app.example
After deploying (step 5), switch the sign-up and reset emails to codes:
node --env-file=.env.local scripts/auth-emails.mjs (needs
SUPABASE_ACCESS_TOKEN).
mso-pm-attachments) and add a CORS rule that
allows GET and PUT with header content-type from your app's origins.R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY and
R2_BUCKET in .env.local.Without R2, everything works except attachments, which say storage isn't set up.
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗