Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Drive a Janosik Kanban board from any MCP client: ready work, leases and task specs.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
JANOSIK_URL, JANOSIK_TOKEN, JANOSIK_APP_BASEค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"janosik": {
"command": "npx",
"args": [
"-y",
"@janosik/mcp"
],
"env": {
"JANOSIK_URL": "ใส่ค่าของคุณ",
"JANOSIK_TOKEN": "ใส่ค่าของคุณ",
"JANOSIK_APP_BASE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add janosik --env JANOSIK_URL='ใส่ค่าของคุณ' --env JANOSIK_TOKEN='ใส่ค่าของคุณ' --env JANOSIK_APP_BASE='ใส่ค่าของคุณ' -- npx -y @janosik/mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"janosik": {
"command": "npx",
"args": [
"-y",
"@janosik/mcp"
],
"env": {
"JANOSIK_URL": "ใส่ค่าของคุณ",
"JANOSIK_TOKEN": "ใส่ค่าของคุณ",
"JANOSIK_APP_BASE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"janosik": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@janosik/mcp"
],
"env": {
"JANOSIK_URL": "ใส่ค่าของคุณ",
"JANOSIK_TOKEN": "ใส่ค่าของคุณ",
"JANOSIK_APP_BASE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
JANOSIK_APP_BASE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 10 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub VitalyTolstik ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: JANOSIK_URL, JANOSIK_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.1) เข้า registry 6 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Agent-Native Google Calendar - manage events, sync, and public booking
ให้ AI สร้างและแก้ไฟล์ Excel ได้เอง ทั้งสูตร กราฟ และ PivotTable โดยไม่ต้องมีโปรแกรม Excel ในเครื่อง
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A self-hosted Kanban board for teams and AI agents. Server mode provides accounts, shared boards and realtime sync. The UI and API share one pure reducer and a command log; the installable PWA can reopen cached pages offline.
Janosik runs in server mode in development and production. The UI applies edits optimistically, then sends them to the API as commands (
POST /boards/:id/commands); the UI and API use the sameboardReducer. Unit tests can exercise the reducer without an API. The PWA caches its app shell and assets, so previously loaded pages can reopen offline, but saving changes requires a server connection. Realtime updates use SSE and resume from?since=after a dropped connection. See ROADMAP.md §7 for the architecture history.
This is an npm workspaces monorepo with one root lockfile. ui, shared and backend make up the application; brand, site, video and mcp support its design system, website, media and agent integrations; e2e holds browser-test infrastructure. Install dependencies once with npm install from the repository root.
| Workspace | npm name | What it is | How it runs |
|---|---|---|---|
| `ui/` | @janosik/ui | The frontend: the whole single-page app — board/calendar/table/watch views, drag & drop, card dialog, search, settings, i18n, PWA service worker, the login screen and the /admin master panel. It talks to the backend over fetch. | Vite dev server (npm run dev) or is served as static files from ui/dist |
| `shared/` | @janosik/shared | A TypeScript library with no build step and no runtime of its own: the domain model (Board/Column/Card/Label), the pure boardReducer (the single implementation of every board operation), its inverse for undo, command validation, export/import serialization, storage keys — plus the typed API contracts (user and admin DTOs). | Nothing to run. ui and backend import its .ts sources directly through aliases, so client and server literally share the same types and the same reducer logic |
| `backend/` | @janosik/backend | The server: a NestJS API on PostgreSQL — auth (JWT + refresh rotation + argon2id), boards/members, the command log that persists UI actions, comments/activity, and the isolated master-admin contour (/api/v1/admin/*). | Node process (npm run build:backend + npm run start -w backend); dev DB via Docker Compose |
| `brand/` | @janosik/brand | Shared brand assets and design tokens. | Imported by the UI and site; has its own tests and lint script. |
| `site/` | @janosik/site | Astro marketing site and Starlight documentation, with English and Russian content. | npm run dev:site or npm run build:site. |
| `video/` | @janosik/video | Remotion scenes and scripts for recording and rendering product clips. | npm run studio -w video or npm run render -w video. |
| `mcp/` | @janosik/mcp | MCP server that lets compatible AI clients work with Janosik through scoped API keys. | npm run dev -w mcp, or use the published @janosik/mcp package. |
Why shared matters: a board mutation is written once (in the reducer), executed in the browser for instant feedback and on the server when the command arrives — so a card can never move differently in the UI and in the database. The same applies to validation and to DTO types: change a field in shared/src/admin.ts and both sides fail to compile until they agree.
janosik/ # npm workspaces root (one package-lock.json)
├─ ui/ # @janosik/ui — the React PWA (see tree below) ├─ shared/ # @janosik/shared — the domain library │ └─ src/ │ ├─ types/kanban.ts # Board / Column / Card / Label + LIMITS │ ├─ store/ │ │ ├─ board-reducer.ts # the pure reducer — every board action │ │ ├─ invert.ts # inverse actions for undo/redo │ │ ├─ validate.ts # strict command validator (both sides) │ │ ├─ migrate.ts # persisted-state migrations │ │ └─ seed-data.ts # demo "Product Launch" board │ ├─ utils/ # export/import envelope, limits, text, storage keys │ ├─ api.ts # user API DTOs (auth, boards, commands…) │ └─ admin.ts # admin API DTOs (users, boards, cards, masters…) ├─ backend/ # @janosik/backend — the NestJS API │ ├─ prisma/ # schema.prisma + versioned migrations │ ├─ src/ # auth/ boards/ commands/ comments/ activity/ │ │ # admin/ users/ health/ config/ (+ shared → ../../shared/src) │ ├─ test/ # Jest + Supertest e2e specs (real test DB) │ ├─ scripts/ # admin-cli.cjs, migrate-test-db.cjs │ ├─ docker-compose.yml # dev PostgreSQL 16 (janosik + janosik_test) │ └─ .env.example ├─ brand/ # @janosik/brand — shared brand assets and tokens ├─ site/ # @janosik/site — marketing site and documentation ├─ video/ # @janosik/video — product demo clips ├─ mcp/ # @janosik/mcp — the MCP server: the board as agent tools │ ├─ src/ # client + 13 tool groups (71 tools), toolset gating │ ├─ server.json # MCP Registry metadata (published as io.github.vitalytolstik/janosik) │ └─ scripts/smoke.mjs # live smoke test against a running instance ├─ skills/janosik/ # workflow guidance for AI agents using the MCP tools │ ├─ SKILL.md # the instructions a harness loads │ └─ references/ # card/comment templates + lifecycle recipes ├─ deploy/nginx.conf # optional SPA fallback + /api proxy (single-image serving is built in) ├─ Dockerfile # multi-stage: builds UI + API into one self-host image ├─ docker-compose.yml # self-host stack: app + postgres + redis ├─ docker-entrypoint.sh # runs prisma migrate deploy, then the API ├─ .env.example # annotated environment for docker compose ├─ SECURITY.md / CHANGELOG.md # disclosure policy, release history ├─ LICENSE / TRADEMARK.md # AGPL-3.0 terms + brand/trademark policy ├─ docs/SELF-HOSTING.md # full self-hosting guide (TLS, backups, ops) ├─ docs/INSTALL-BY-OS.md # running it on macOS / Windows 11 / Linux ├─ ROADMAP.md # project priorities, architecture decisions and task status ├─ ROADMAP-DONE.md # archive of closed tasks └─ AGENT.md # working agreement for AI agents/contributors
Simplify design toggle switches every card to a compact one-line tile (title, label dots, blocked marker, checklist progress, priority and assignee) with far fewer elements; the full face stays one click away in the card dialog.@dnd-kit), inline Trello-style "+" zones, keyboard sensor and drag overlay./board/:id, global search across boards with snippets./ and Ctrl/Cmd+K, match counter.?), j/k cursor navigation, n/c composers, e/Enter edit.Ctrl/Cmd+Z, Ctrl/Cmd+Shift+Z, Ctrl+Y, header buttons.POST /boards/:id/commands); rejected edits roll back with a message. Per-entity version checks protect typed text from a stale undo. A request already in flight can finish during a reload. The no-API local-only mode is used by unit tests; development and production builds require the API.GET /boards/:id/events SSE stream carries every committed command ({type, seq, action, actorId}) and the client replays foreign actions through the very same reducer. Edits appear in other browsers with no reload; a dropped stream resumes exactly where it stopped (?since=) and window focus remains the fallback. Your own commands are never applied twice, and a stale undo still refuses to clobber someone else's text.ADMIN/MEMBER/VIEWER), bound a viewer's access with an expiry date ("access expired" badge) and remove members — the last admin can never be demoted or removed. Invitations are opt-in: the invitee gets a badge on the header bell and accepts or declines there; nothing is shared until they accept. Everyone else sees the same member list read-only, and a VIEWER gets a genuinely read-only board: no drag, no composers, no menus, no inline editors, a read-only card dialog — while the server independently answers 403 to every mutation./admin area for the platform operator: metrics, all users and boards, command log, audit trail and moderation (block a user and their sessions die instantly, revoke API tokens, archive/soft-delete a board, create accounts with a one-time password). Master accounts live outside the user table,ตัดมาแค่ช่วงต้น อ่านต่อใน repo