Synaplan
기업을 위한 오픈소스 AI 플랫폼
브랜드 제안서 전송·서명·결제 후 CRM·프로젝트·청구·예약·메일·AI·자동화까지 관리
Send branded proposals clients sign and pay online, then run the work: CRM, projects, invoices, payments, booking, inbox, AI and automations.
비즈니스TypeScript · JavaScriptGitHub @Workspace369-LLC온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A small Next.js CRM that uses Workspace369 as its backend over MCP. Sample data mode, drafts only, token stays on the server.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A small CRM built with Next.js. It uses Workspace369 as the backend, over MCP. Your clients, proposals and invoices live in Workspace369. This app is a front end for them.
Or choose Use this template on GitHub to start your own copy.
| Dark | Phone |
|---|---|
It reads data and creates drafts. It never sends anything or records a payment: do those in the Workspace369 app. If a write is held for approval, the app shows "Awaiting approval in Workspace369." with a link.
Your token stays on the server. Only server code imports lib/workspace369.ts (it uses server-only), so the token never reaches the browser.
You do not need an account. A mock MCP server ships with the repo. It has a sample company, "Apex Auto Spa", with 12 clients, custom fields, proposals and invoices. State is in memory and resets on restart.
npm install
npm run mock # http://localhost:4010/mcp
In a second terminal, create .env.local:
W369_TOKEN=mock-token
W369_MCP_URL=http://localhost:4010/mcp
Then run the app and open http://localhost:3000:
npm run dev
The mock accepts any non-empty token. To see the approval message, start it with MOCK_HOLD_WRITES=1 npm run mock. Every write then comes back as held.
No Workspace369 account yet? Start a free trial; the trial starts when you save your card (nothing is charged for 14 days). You'll be the workspace owner, so you can turn on AI connections yourself.
cp .env.example .env.local.W369_TOKEN in .env.local. Optionally set W369_MCP_URL. It defaults to https://mcp.workspace369.com/mcp/crm, the core CRM tools. https://mcp.workspace369.com/mcp is the full set of tools.npm install && npm run dev.Never prefix the token with NEXT_PUBLIC_. Never commit .env.local. It is already in .gitignore.
Writes change real records and can start workflows. Try them in a test workspace first.
Use the Deploy with Vercel button at the top. It copies this repo to your GitHub account and asks for two values:
W369_TOKEN: your personal access token. It stays a server-side environment variable. Create it in Workspace369 under Settings → AI → AI connections. No account yet? Start a free trial; the trial starts when you save your card (nothing is charged for 14 days).APP_PASSWORD: the password for opening the app. Your browser asks for it once; any user name works.The token can read and change your clients, so a deployed copy always needs the password. This applies to Vercel Preview deployments too. Without APP_PASSWORD, a deployed app serves nothing (it shows a "Set APP_PASSWORD" message). Locally, npm run dev stays open when APP_PASSWORD is unset. The check is in middleware.ts and lib/gate.ts.
clients_search, clients_get, clients_create, clients_update, clients_move_stage, workspace_schema, proposals_search, proposals_create_draft, invoices_search.
Your workspace may offer newer schemas. List them with:
curl -s https://mcp.workspace369.com/mcp/crm \
-H "Authorization: Bearer $W369_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Each page reads tools/list and only shows a feature when the server offers it. The stage board needs clients_move_stage. The custom field forms need a custom_fields argument on clients_create and clients_update. Older servers still work with fewer features.
npm run dev # start the app
npm run mock # start the mock MCP server
npm test # unit tests (mocked fetch)
npm run typecheck # TypeScript check
npm run build # production build
app/ Next.js pages, forms and server actions
lib/workspace369.ts MCP client (JSON-RPC over HTTPS, server-only)
lib/crm.ts CRM helpers built on the client: clients, stages, proposals, invoices
scripts/mock-mcp-server.mjs Mock MCP server with sample data
test/ Unit tests
AGENTS.md Rules for AI coding agents working in this repo
AGENTS.md tells coding agents how to extend this app safely: all data goes through Workspace369, drafts only, token stays on the server. Point your agent at this repo and ask for a feature. See the guide: Build a custom CRM with an AI coding agent.
MIT. See LICENSE.