io.github.seunghan91/ainote
NPM · @AINOTE/MCP · 2 COMPONENTS · SCANNED AUG 3
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (168 of 169), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (168 of 169), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 80 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability58
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3499 tokens (~139/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @ainote/mcp
claude mcp add seunghan91-ainote -- npx -y @ainote/mcp
codex mcp add seunghan91-ainote -- npx -y @ainote/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"seunghan91-ainote": {
"type": "local",
"command": [
"npx",
"-y",
"@ainote/mcp"
],
"enabled": true
}
}
} openclaw mcp add seunghan91-ainote --command npx --arg -y --arg @ainote/mcp
mcp_servers:
seunghan91-ainote:
command: "npx"
args: ["-y", "@ainote/mcp"] {
"mcpServers": {
"seunghan91-ainote": {
"command": "npx",
"args": [
"-y",
"@ainote/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +3
- Stability: unverified → 0.23 ▲ functional
- 2 Aug 26 +42
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- License: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: MIT functional
- 1 Aug 26 −12
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- 31 Jul 26 +27
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −21
- Malware scan: pass → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- 29 Jul 26 −48
- Install scripts: pass → unverified ▼ security
- Provenance: fail → unverified ▼ security
- Known CVEs: partial → unverified ▼ security
- License: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Licence: MIT functional
- 28 Jul 26 +51
- Provenance: unverified → fail ▼ security
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Maintenance: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: good functional
- Licence: MIT functional
- 27 Jul 26 18
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@ainote/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 168 packages
168 packages in the resolved dependency tree · 167 deprecated · 39 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
create_dev_doc ~212
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
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Subcategory (claude, cursor, windsurf, copilot, docs). Default: docs |
| content | string | yes | Document content (markdown, json, yaml) |
| content_type | string | — | Content type. Auto-detected from title extension if omitted. |
| local_path | string | — | Absolute local file path for multi-device sync (e.g., ~/.claude/projects/.../MEMORY.md) |
| title | string | yes | Document title (e.g., project-a-claude.md) |
No output schema declared.
No examples provided.
create_task ~345
Create a new task in AI Note with optional notification, location, recurrence, and details.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | — | Category ID. Must be owned by or shared to this user. |
| content | string | yes | Task content |
| due_date | string | — | Due date in ISO format (e.g., 2026-04-21T15:00:00+09:00) |
| due_time | string | — | Time of day in HH:MM (24h). Optional when due_date already carries a time. |
| is_all_day | boolean | — | Mark as all-day event — suppresses time-of-day rendering. |
| is_important | boolean | — | Mark task as important |
| location | string | — | Human-readable location (e.g., "Starbucks Gangnam"). For GPS use location_lat/lng. |
| location_lat | number | — | GPS latitude. Pair with location_lng. |
| location_lng | number | — | GPS longitude. Pair with location_lat. |
| notes | string | — | Free-form notes / details attached to the task. |
| notification_minutes_before | number | — | Schedule a reminder N minutes before due_date. Pass null/omit to clear existing MCP reminder on update. Requires due_date. |
| repeat_rule | string | — | Recurrence rule. Accepted values depend on server (e.g., "daily", "weekly", "monthly", or RRULE). Creates a recurring series. |
| start_date | string | — | Start date for multi-day events (ISO format). For single-day tasks, use due_date. |
| travel_time | number | — | Minutes of travel time before due_date to allow for. Used by reminder scheduling. |
No output schema declared.
No examples provided.
delete_dev_doc ~48
Delete a dev document (soft delete).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Subcategory to disambiguate |
| id | string | — | Document UUID |
| title | string | — | Document title |
No output schema declared.
No examples provided.
delete_task ~26
Delete a task (soft delete)
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Task ID to delete |
No output schema declared.
No examples provided.
discover_claude_sync_targets ~112
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_dev_doc ~85
Get a single dev document by title or id. Returns full content.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Subcategory (claude, cursor, etc.) to disambiguate |
| id | string | — | Document UUID |
| include_versions | boolean | — | Include version history (default: false) |
| title | string | — | Document title (e.g., project-a-memory.md) |
No output schema declared.
No examples provided.
get_setup_guide ~47
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_categories ~12
List all categories
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_dev_categories ~22
List all subcategories under dev/. Shows document count per category.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_dev_docs ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Subcategory filter (claude, cursor, windsurf, copilot, docs, etc.) |
| content_type | string | — | Filter by content type |
| search | string | — | Search keyword in document title |
No output schema declared.
No examples provided.
list_tasks ~829
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | — | Filter by category UUID |
| completed_date_end | string | — | Filter tasks completed <= this date (ISO 8601 format) |
| completed_date_start | string | — | Filter tasks completed >= this date (ISO 8601 format) |
| created_date_end | string | — | Filter tasks created <= this date (ISO 8601 format) |
| created_date_start | string | — | Filter tasks created >= this date (ISO 8601 format) |
| due_date_end | string | — | Filter tasks with due_date <= this date (ISO 8601 format) |
| due_date_start | string | — | Filter tasks with due_date >= this date (ISO 8601 format) |
| due_today | boolean | — | Filter tasks due today |
| has_notification | boolean | — | Filter by notification enabled status |
| is_important | boolean | — | Filter by important tasks only |
| limit | number | — | Maximum number of tasks to return (default: 25, max: 500) |
| location | string | — | Filter by location (partial match, e.g., "여의도", "서울") |
| overdue | boolean | — | Filter overdue incomplete tasks (due_date < today) |
| search | string | — | Search keyword in task content |
| sort_by | string | — | Sort field (default: created_at) |
| sort_order | string | — | Sort order (default: desc) |
| status | string | — | Filter by task status |
No output schema declared.
No examples provided.
login_and_get_key ~64
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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Your account email address | |
| password | string | yes | Your account password |
No output schema declared.
No examples provided.
pull_claude_mcp_servers ~169
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.
| Name | Type | Req | Description |
|---|---|---|---|
| sidecar_name | string | — | Sidecar filename stem. Default: from-ainote |
No output schema declared.
No examples provided.
pull_dev_docs ~214
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Subcategory filter. Omit to pull all docs with local_path. |
No output schema declared.
No examples provided.
push_claude_agents ~64
Push ~/.claude/agents/ files (category=agents). Subagent definitions.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | Preview without uploading. Default: false |
| max_files | number | — | Max files to push (safety cap). Default: 500 |
No output schema declared.
No examples provided.
push_claude_commands ~64
Push ~/.claude/commands/ tree (category=commands). Slash command definitions.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | Preview without uploading. Default: false |
| max_files | number | — | Max files to push (safety cap). Default: 500 |
No output schema declared.
No examples provided.
push_claude_hooks ~63
Push ~/.claude/hooks/ tree (category=hooks). Event handler scripts.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | Preview without uploading. Default: false |
| max_files | number | — | Max files to push (safety cap). Default: 500 |
No output schema declared.
No examples provided.
push_claude_mcp_servers ~107
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).
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | Preview only. Default: false |
No output schema declared.
No examples provided.
push_claude_skills ~99
Push ~/.claude/skills/ tree (each file as a dev_doc, category=skills). Walks subdirectories. Each SKILL.md, reference, asset is uploaded separately with local_path set so pull_dev_docs can restore on another machine.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | Preview without uploading. Default: false |
| max_files | number | — | Max files to push (safety cap). Default: 500 |
No output schema declared.
No examples provided.
signup_and_get_key ~88
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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Email address for the new account | |
| name | string | — | Display name (optional) |
| password | string | yes | Password (minimum 6 characters) |
No output schema declared.
No examples provided.
sync_add_recipient ~87
Add an age recipient (public key) to the encryption set for this machine. Future encryptions on this machine will include this recipient. Already-encrypted ciphertexts on the server are NOT re-encrypted retroactively — call push_claude_mcp_servers again to re-encrypt with the updated recipient list.
| Name | Type | Req | Description |
|---|---|---|---|
| recipient | string | yes | age public key (starts with age1...) |
No output schema declared.
No examples provided.
sync_encryption_status ~25
Show encryption setup status (backend, identity present, recipients, age binary).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
sync_init_encryption ~116
Initialize age encryption on THIS machine (first-time setup). Generates an age keypair, stores the secret key in OS keychain (or ~/.config/ainote/ fallback), and sets this machine as the sole recipient. Run once per machine. After running on the FIRST machine, share its public key (recipient) with subsequent machines via sync_add_recipient so they can decrypt shared secrets.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | — | Regenerate even if identity already exists. WARNING: invalidates existing ciphertexts unless old recipients retained. |
No output schema declared.
No examples provided.
update_dev_doc ~93
Update a dev document. Supports replace, append, or prepend modes.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Subcategory to disambiguate |
| content | string | yes | New content |
| id | string | — | Document UUID |
| local_path | string | — | Update the local file path for multi-device sync |
| mode | string | — | Update mode (default: replace) |
| title | string | — | Document title |
No output schema declared.
No examples provided.
update_task ~382
Update an existing task — any subset of fields. Pass notification_minutes_before to reschedule the reminder (or null to clear it).
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | string | — | Category ID. Must be owned by or shared to this user. |
| completed_at | string | — | Mark as completed (ISO format) or null to uncomplete |
| content | string | — | Task content |
| due_date | string | — | Due date in ISO format (e.g., 2026-04-21T15:00:00+09:00) |
| due_time | string | — | Time of day in HH:MM (24h). Optional when due_date already carries a time. |
| id | string | yes | Task ID |
| is_all_day | boolean | — | Mark as all-day event — suppresses time-of-day rendering. |
| is_important | boolean | — | Mark task as important |
| location | string | — | Human-readable location (e.g., "Starbucks Gangnam"). For GPS use location_lat/lng. |
| location_lat | number | — | GPS latitude. Pair with location_lng. |
| location_lng | number | — | GPS longitude. Pair with location_lat. |
| notes | string | — | Free-form notes / details attached to the task. |
| notification_minutes_before | number | — | Schedule a reminder N minutes before due_date. Pass null/omit to clear existing MCP reminder on update. Requires due_date. |
| repeat_rule | string | — | Recurrence rule. Accepted values depend on server (e.g., "daily", "weekly", "monthly", or RRULE). Creates a recurring series. |
| start_date | string | — | Start date for multi-day events (ISO format). For single-day tasks, use due_date. |
| travel_time | number | — | Minutes of travel time before due_date to allow for. Used by reminder scheduling. |
No output schema declared.
No examples provided.