MCP server for AI Note - Tasks, Dev Docs, and multi-device file sync (CLAUDE.md, memory files, Cursor rules, Windsurf rules)
This server has 19 tools with mostly complete schemas and descriptions, but exhibits inconsistent quality across the toolset. Strengths: explicit JSON Schema definitions for all tools; parameter types clearly declared; descriptions present for most tools (mean ~150 chars). Weaknesses: (1) descriptions vary widely in quality and actionability, some are generic ('Update a dev document') while others are excellent ('List tasks from AI Note with natural language support and advanced filtering' with detailed examples); (2) output schemas are NOT documented, the rubric requires 'Document the output schema' for LLM planning, but this server provides none in the tool definitions; (3) error handling guidance is absent, no recovery hints or error classification; (4) some tools like delete_dev_doc, delete_task, and pull_dev_docs lack sufficient context about destructive consequences; (5) composition issues: pull_dev_docs and push_claude_mcp_servers are high-risk operations with sensitive side effects but no dry-run or confirmation patterns; (6) default values in several tools (e.g., pull_dev_docs category param, notification_minutes_before) could benefit from clearer guidance on side effects.
Save a file to AI Note cloud for multi-device sync. PRIMARY USE CASES: - Memory files: ~/.claude/projects/.../memory/MEMORY.md - AI configs: CLAUDE.md, .cursorrules, .windsurfrules (not in git) - Project docs: architecture notes, planning docs Set local_path to enable pull_dev_docs auto-sync on other devices. Categories: memory | claude | cursor | env | docs
Create a new task in AI Note with optional notification, location, recurrence, and details.
Delete a dev document (soft delete).
Delete a task (soft delete)
Preview what would be synced from ~/.claude/ to ainote cloud. Read-only. Shows file counts, sizes, and sample names for: - skills/ (directory bundles like ui-ux-pro-max/) - agents/ (single .md files) - commands/ (slash command definitions) - hooks/ (event handler scripts) - mcp_servers (mcpServers section of ~/.claude.json) Run this BEFORE push_claude_* tools to see scope.
Output schemas not documented in tool definitions. LLMs need to know what fields to expect from each tool response to plan downstream calls. Currently, schemas only describe inputs; outputs are implicit and could contain unexpected fields or missing chaining IDs.
Destructive operations (delete_dev_doc, delete_task, pull_dev_docs, push_claude_mcp_servers) lack dry-run or confirmation patterns. Agents can irreversibly delete content or expose sensitive keys without a safety checkpoint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Fetch detailed information about a specific task
Get a single dev document by title or id. Returns full content.
Get instructions for setting up AI Note MCP in Claude Desktop, Cursor, or other MCP clients. Includes CLI signup method (npx @ainote/mcp signup). No authentication required.
List all categories
List your synced dev documents stored in AI Note cloud. Shows all documents under dev/ category including memory files, AI configs, and project docs. Use this to see what's synced and which files have local_path set for multi-device sync. Categories: memory, claude, cursor, windsurf, env, docs, or custom subcategories.
List tasks from AI Note with natural language support and advanced filtering. NATURAL LANGUAGE EXAMPLES: • Location: "여의도에서", "서울에 있는", "강남 관련" • Time: "오늘", "이번 주", "다음 주", "지난달", "1월에" • Importance: "중요한", "우선순위 높은", "급한" • Status: "완료한", "미완료", "안 끝난" • Special: "마감일 지난", "늦어진", "오늘 마감", "알림 설정된" • Sort: "마감일 순으로", "최신순으로", "오래된 순으로" QUERY EXAMPLES: 1. "여의도에서 이번 주 마감인 중요한 미완료 할일" → {location: "여의도", due_date_start: "2025-01-27", due_date_end: "2025-02-02", is_important: true, status: "pending"} 2. "지난달 완료한 업무 카테고리 할일들을 완료일 순으로" → {category_id: "...", status: "completed", completed_date_start: "2024-12-01", completed_date_end: "2024-12-31", sort_by: "completed_at", sort_order: "asc"} 3. "마감일 지났는데 아직 안 끝난 할일들 마감일 빠른 순으로" → {overdue: true, sort_by: "due_date", sort_order: "asc"} TIME CALCULATIONS (today = 2025-01-27): • "오늘" → due_today: true • "이번 주" → due_date_start: "2025-01-27", due_date_end: "2025-02-02" • "다음 주" → due_date_start: "2025-02-03", due_date_end: "2025-02-09" • "이번 달" → due_date_start: "2025-01-01", due_date_end: "2025-01-31" • "지난 주" → completed_date_start: "2025-01-20", completed_date_end: "2025-01-26" • "지난 달" → completed_date_start: "2024-12-01", completed_date_end: "2024-12-31" Returns structured data with all task fields including location, dates, and categories.
Log in to an existing AI Note account and get an MCP API key. No authentication required. Use this if you already have an account but need your MCP key.
Restore mcpServers snapshot from ainote cloud to a SIDECAR file. Writes to ~/.claude/mcp-servers.d/from-ainote.json (NOT ~/.claude.json directly). This avoids corrupting the live-written ~/.claude.json while Claude is running. After pull, to actually activate the servers you must either: (a) merge manually: jq -s '.[0] * .[1]' ~/.claude.json ~/.claude/mcp-servers.d/from-ainote.json > new.json (b) close Claude, then run a future merge tool (Phase B) Sidecar approach = safe always, manual merge step required.
Restore all synced files to THIS device. Writes files to their local paths on disk. USE THIS WHEN: - Setting up a new machine (desktop, laptop, WSL) - Switching between macOS / Windows / Linux - Want to sync latest versions of memory/config files from cloud WHAT HAPPENS: 1. Fetches all dev docs with local_path set 2. Auto-detects platform (macOS/WSL/Linux/Windows) and maps paths accordingly 3. Creates missing parent directories 4. Writes content to each mapped local_path on this machine CROSS-PLATFORM PATH MAPPING (automatic): - macOS ~/... ↔ WSL ~/... ↔ Linux ~/... - Claude project keys mapped per platform (e.g., -Users-seunghan ↔ -mnt-c-Users-Owner) Run once after installing ainote MCP on a new device to restore everything.
Snapshot ~/.claude.json mcpServers section to ainote cloud (mcp category). Stores as a single JSON dev_doc titled "mcp-servers-snapshot.json". Includes API keys/env vars currently — Phase B will add encryption. ⚠️ Until encryption lands, only run when comfortable storing keys server-side (server is private to your account, but keys are not zero-knowledge yet).
Search tasks and categories in AI Note
Create a new AI Note account and get an MCP API key. No authentication required. Use this if you don't have an account yet. After getting the key, add it to your MCP config and restart.
Update a dev document. Supports replace, append, or prepend modes.
Update an existing task — any subset of fields. Pass notification_minutes_before to reschedule the reminder (or null to clear it).
Error handling lacks recovery guidance. Tools do not return actionable error messages that tell the LLM what to do next (e.g., 'Document not found. Try search_dev_docs() with a partial title.').
Descriptions for delete_dev_doc, delete_task, and list_categories are vague or incomplete (under 60 chars). 'Delete a dev document (soft delete)' does not explain when to use this tool, what soft delete means for recovery, or consequences.
Credentials (email, password) are tool parameters in signup_and_get_key and login_and_get_key. These should use server-side secret injection or OAuth instead, parameters are logged and visible in agent traces.
push_claude_mcp_servers exposes API keys and environment variables to the server. The tool description warns 'keys are not zero-knowledge yet' but still allows the operation. A permission gate or encryption requirement is missing.
Tool names 'pull_dev_docs' and 'pull_claude_mcp_servers' are ambiguous, 'pull' could mean download, restore, or fetch. More specific verbs like 'restore_dev_docs', 'sync_dev_docs_from_cloud', or 'download_dev_docs' would clarify intent.
Parameter relationships not documented. E.g., in update_dev_doc, title/id/category are alternatives for identifying the document, but the schema does not state this constraint. LLMs may pass multiple conflicting identifiers.
Search tools (search, list_tasks) cap results at 20-25 by default, but the descriptions do not explain the rationale or how to paginate for more results. A next_cursor or total_count would enable proper pagination guidance.
No permission-gate pattern visible. Tools like delete_task, delete_dev_doc, and push_claude_mcp_servers should verify user authorization before execution, but no scopes or permission checks are declared.