Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Fast, native macOS Apple Reminders via EventKit. 10-200x faster than AppleScript alternatives.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"apple-reminders": {
"command": "npx",
"args": [
"-y",
"@high5ventures/apple-reminders-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add apple-reminders -- npx -y @high5ventures/apple-reminders-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"apple-reminders": {
"command": "npx",
"args": [
"-y",
"@high5ventures/apple-reminders-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"apple-reminders": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@high5ventures/apple-reminders-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub high5-ventures ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.0) เข้า registry 18 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Draugr
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Fast, native Apple Reminders access for Claude — works in Claude Desktop, Claude Cowork, and Claude Code (CLI). One signed Swift/EventKit binary, three distribution packages.
Reminder IDs are stable across sessions. A full CRUD round-trip takes under a second on a database with 300+ reminders. Umlauts, accents, CJK characters and emoji pass through unchanged.
Published by [high5 ventures GmbH](https://h5ventures.de) — signed with Developer ID Application: high5 ventures GmbH and notarized by Apple.
You need a Mac (Apple Silicon or Intel) running macOS 11 or later, and Claude Desktop.
macOS asks for Reminders access on that first question. Allow it, and Claude can read and change your reminders.
No configuration is needed: the bundle contains the server and the signed binary, and Claude Desktop sets the paths on install.
Updating is the same three steps with the newer .mcpb.
Not using Claude Desktop? See Installation for Claude Code and other MCP clients.
Apple Reminders for Claude gives Claude full CRUD access to your macOS Reminders app. It wraps Apple's native EventKit framework in a signed Swift binary that returns stable UUIDs and structured JSON, and ships three ways:
| Target | Artifact | Where to get it |
|---|---|---|
| Claude Desktop / Cowork | .mcpb bundle | Releases |
| Claude Code (CLI) | Plugin with skill | /plugin marketplace add against this repository |
| Any MCP client | npm package | npm install -g @high5ventures/apple-reminders-mcp |
All three ship the same binary and the same 13 tools, so behaviour does not differ between them.
readOnlyHint / destructiveHint so Claude clients can auto-run queries but prompt for mutations.In Claude Desktop and Cowork the tools appear under Apple Reminders; in Claude Code the skill loads when you mention reminders. The examples below show the tool calls behind each answer.
You: Was habe ich heute zu tun?
Claude (invokes
get_today):
`json
{ "status": "ok", "data": { "reminders": [
{ "id": "A1B2…", "name": "Zahnarzt-Termin bestätigen", "list": "Persönlich", "due_date": "2026-04-14T10:00:00" },
{ "id": "C3D4…", "name": "Rechnung #2026-0412 prüfen", "list": "Arbeit", "due_date": "2026-04-14T14:00:00" }
] } }
`
Claude: Du hast heute zwei offene Erinnerungen: den Zahnarzt-Termin um 10:00 (Persönlich) und die Rechnungs-Prüfung um 14:00 (Arbeit).
You: Remind me to buy oat milk tomorrow at 6pm.
Claude (invokes
create_reminder):
`json
{ "list": "Groceries", "title": "Buy oat milk", "dueDate": "2026-04-15T18:00:00" }
`
Response:
`json
{ "status": "ok", "data": { "reminder": { "id": "E5F6…", "name": "Buy oat milk", "due_date": "2026-04-15T18:00:00" } } }
`
Claude: Done — added "Buy oat milk" to Groceries for tomorrow at 18:00.
You: Show me everything that's overdue, then mark the Slack-DM one as done.
Claude (invokes
get_overdue):
`json
{ "status": "ok", "data": { "reminders": [
{ "id": "G7H8…", "name": "Reply to Alex in Slack DM", "list": "Work", "due_date": "2026-04-12T17:00:00" },
{ "id": "I9J0…", "name": "Review PR #482", "list": "Work", "due_date": "2026-04-13T12:00:00" }
] } }
`
Claude (invokes
complete_reminderwithid: "G7H8…"):
`json
{ "status": "ok", "data": { "reminder": { "id": "G7H8…", "completed": true, "completion_date": "2026-04-14T18:22:01" } } }
`
Claude: Two overdue items: Slack reply (now marked done) and PR #482 review (still open).
Download apple-reminders.mcpb from Releases and double-click it. Claude Desktop shows an install dialog; click Install, then grant Reminders access in the macOS privacy prompt on the first tool call.
Updating works exactly the same way — download the newer .mcpb and double-click it.
This is how the extension is installed. The two sections below cover other MCP clients; on a Mac with Claude Desktop you do not need them.
/plugin marketplace add high5-ventures/apple-reminders-for-claude
Reload Claude Code before the next step; the plugin is not visible until the marketplace has been picked up.
/plugin install apple-reminders@high5-apple-reminders-for-claude
This path offers new versions automatically, but does not install them; you still confirm each update.
npm install -g @high5ventures/apple-reminders-mcp
Then add it to your client's MCP configuration:
{
"mcpServers": { "apple-reminders": { "command": "apple-reminders-mcp" } } }
Or skip the global install and let the client fetch it on demand:
{
"mcpServers": { "apple-reminders": { "command": "npx", "args": ["-y", "@high5ventures/apple-reminders-mcp"] } } }
The location of that file differs per client.
git clone https://github.com/high5-ventures/apple-reminders-for-claude.git
cd apple-reminders-for-claude ./build.sh
Produces dist/reminders-eventkit (universal binary for Apple Silicon and Intel), dist/skill/ (Claude Code skill), and dist/apple-reminders.mcpb (Claude Desktop bundle). Builds are unsigned; see CONTRIBUTING.md for the signed release workflow.
Requirements for building: macOS 11+, Xcode Command Line Tools, Node.js 18+. Toolchains older than Xcode 15 also work; they compile without the macOS 14 permission API and fall back to the older request. To build only your own architecture, set ARCHS, e.g. ARCHS=x86_64 ./build.sh.
No configuration is required for normal use. The extension runs with these defaults:
| Setting | Default | Notes |
|---|---|---|
| Reminders permission | prompted on first use | Revocable in System Settings → Privacy & Security → Reminders |
| Binary timeout (Node wrapper) | 30 s | Hardcoded ceiling; well under any MCP client timeout |
| Response payload cap | 16 MB | Covers databases with thousands of reminders |
If you use the npm-distributed server with a non-standard MCP client, set REMINDERS_BINARY to the absolute path of the reminders-eventkit binary:
export REMINDERS_BINARY=/absolute/path/to/reminders-eventkit
The .mcpb and Claude Code plugin installations set this variable automatically.
All 13 tools return a stable JSON envelope — { "status": "ok", "data": ... } on success, { "status": "error", "code": "...", "message": "..." } on failure.
| Tool | Annotation | Purpose |
|---|---|---|
get_lists | read-only | List all reminder lists with open/completed counts |
get_list_info | read-only | Metadata for one list by name or id |
list_reminders | read-only | List reminders in a list (open/completed/all) |
search_reminders | read-only | Full-text search across all lists |
get_today | read-only | Reminders due today |
get_overdue | read-only | Overdue open reminders |
get_scheduled | read-only | All open reminders with a due date |
get_reminder | read-only | Fetch one reminder by ID |
create_reminder | additive | Create a new reminder |
update_reminder | destructive, idempotent | Update an existing reminder |
complete_reminder | destructive, idempotent | Mark as completed |
uncomplete_reminder | destructive, idempotent | Unmark completed |
delete_reminder | destructive, idempotent | Permanently delete |
"Destructive" here follows the MCP specification: it means the operation mutates existing state irreversibly from the user's point of view. Claude clients use these hints to decide when to prompt for confirmation.
This extension is 100% local at runtime — no data leaves your Mac via this extension. high5 ventures GmbH operates no server and collects no telemetry. The only network activity is the one-time download of the signed Swift binary from GitHub Releases during install (verified by Apple Developer ID signature, refuses to install on mismatch).
Read the full policy: PRIVACY.md.
`Binary crashed (exit 1): spawn Unknown system error -86` — the binary was built for a different Mac. Releases up to and including v1.0.4 contain only an Apple Silicon binary that also requires macOS 14; from v1.0.5 the binary is universal and runs on Apple Silicon and Intel from macOS 11. Update to the latest release.
`PERMISSION_DENIED` — you (or a device policy) turned Reminders access off. Re-enable it in System Settings → Privacy & Security → Reminders, then retry.
`PERMISSION_UNAVAILABLE` — macOS refused the request without showing a dialog, so the privacy pane stays empty and there is nothing to switch on. Granting permissions or running tccutil reset does not help, because no entry exists to grant or reset.
macOS attributes a privacy request to the process it holds *responsible*, normally the application that launched the server. If that application declares no Reminders usage description, the request is refused before it reaches EventKit. Since v1.0.4 the binary takes that responsibility itself, so the prompt no longer depends on the host. If the error persists, check the attribution:
log show --last 3m --predicate 'process == "tccd"' --info --debug | grep -i reminder
The AttributionChain line should name reminders-eventkit as responsible. If it names the host application instead, the self-attribution did not take effect — please include that log line when opening an issue.
Binary quarantined on first launch — releases are signed and notarized, so this should not occur. To verif
ตัดมาแค่ช่วงต้น อ่านต่อใน repo