io.github.seunghan91/ainote
NPM · @AINOTE/MCP · 2 COMPONENTS · SCANNED SEP 22
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 → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 40 of 169 dependencies flagged as unhealthy. 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 130 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability70
- AI-judged instruction clarity (excellent).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 Management100
- No destabilizing schema changes in the last 30 days.Pass
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
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_task" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.seunghan91/ainote MCP server?
io.github.seunghan91/ainote runs locally as an npm package, launched with npx -y @ainote/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @ainote/mcp
claude mcp add seunghan91-ainote -- npx -y @ainote/mcp
{
"mcpServers": {
"seunghan91-ainote": {
"command": "npx",
"args": [
"-y",
"@ainote/mcp"
]
}
}
} {
"servers": {
"seunghan91-ainote": {
"command": "npx",
"args": [
"-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": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@ainote/mcp"
]
}
}
} assistant mcp add seunghan91-ainote -t stdio -c npx -a -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.
- 22 Sept 26 +1
- Stability: 0.97 → pass security
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −3
- Stability: pass → 0.83 functional
- 16 Sept 26 +1
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 −3
- Stability: pass → 0.80 functional
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 22 Sept 2026 · Analysed npm/@ainote/mcp@1.3.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 169 packages
| Packages resolved | 169 |
|---|---|
| Stale | 40 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
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.
What is the io.github.seunghan91/ainote MCP server?
io.github.seunghan91/ainote is an MCP server listed in the public MCP registry as io.github.seunghan91/ainote. Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface. This page covers its npm package (@ainote/mcp).
Is the io.github.seunghan91/ainote MCP server safe to use?
io.github.seunghan91/ainote scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.seunghan91/ainote MCP server expose?
io.github.seunghan91/ainote exposes 25 tools: signup_and_get_key, login_and_get_key, get_setup_guide, list_tasks, create_task, and 20 more. Their descriptions and schemas cost roughly 3,499 tokens of context every time the server is loaded.
Is the io.github.seunghan91/ainote MCP server still maintained?
io.github.seunghan91/ainote is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.seunghan91/ainote MCP server under?
io.github.seunghan91/ainote declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.