Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

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.

+42 this week 60 Trust /100
Trust breakdown (6 categories)

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
Install

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

# add to Claude Code
claude mcp add seunghan91-ainote -- npx -y @ainote/mcp
# add to Codex CLI
codex mcp add seunghan91-ainote -- npx -y @ainote/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "seunghan91-ainote": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@ainote/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add seunghan91-ainote --command npx --arg -y --arg @ainote/mcp
# ~/.hermes/config.yaml
mcp_servers:
  seunghan91-ainote:
    command: "npx"
    args: ["-y", "@ainote/mcp"]
// mcp.json
{
  "mcpServers": {
    "seunghan91-ainote": {
      "command": "npx",
      "args": [
        "-y",
        "@ainote/mcp"
      ]
    }
  }
}
Changelog

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.

Diagnostics

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.

MCP tools — 25 exposed · ~3,499 tokens

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.

Tool Tokens
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

NameTypeReqDescription
categorystringSubcategory (claude, cursor, windsurf, copilot, docs). Default: docs
contentstringyesDocument content (markdown, json, yaml)
content_typestringContent type. Auto-detected from title extension if omitted.
local_pathstringAbsolute local file path for multi-device sync (e.g., ~/.claude/projects/.../MEMORY.md)
titlestringyesDocument 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.

NameTypeReqDescription
category_idstringCategory ID. Must be owned by or shared to this user.
contentstringyesTask content
due_datestringDue date in ISO format (e.g., 2026-04-21T15:00:00+09:00)
due_timestringTime of day in HH:MM (24h). Optional when due_date already carries a time.
is_all_daybooleanMark as all-day event — suppresses time-of-day rendering.
is_importantbooleanMark task as important
locationstringHuman-readable location (e.g., "Starbucks Gangnam"). For GPS use location_lat/lng.
location_latnumberGPS latitude. Pair with location_lng.
location_lngnumberGPS longitude. Pair with location_lat.
notesstringFree-form notes / details attached to the task.
notification_minutes_beforenumberSchedule a reminder N minutes before due_date. Pass null/omit to clear existing MCP reminder on update. Requires due_date.
repeat_rulestringRecurrence rule. Accepted values depend on server (e.g., "daily", "weekly", "monthly", or RRULE). Creates a recurring series.
start_datestringStart date for multi-day events (ISO format). For single-day tasks, use due_date.
travel_timenumberMinutes 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).

NameTypeReqDescription
categorystringSubcategory to disambiguate
idstringDocument UUID
titlestringDocument title

No output schema declared.

No examples provided.

delete_task ~26

Delete a task (soft delete)

NameTypeReqDescription
idstringyesTask 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.

NameTypeReqDescription
categorystringSubcategory (claude, cursor, etc.) to disambiguate
idstringDocument UUID
include_versionsbooleanInclude version history (default: false)
titlestringDocument 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.

NameTypeReqDescription
categorystringSubcategory filter (claude, cursor, windsurf, copilot, docs, etc.)
content_typestringFilter by content type
searchstringSearch 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.

NameTypeReqDescription
category_idstringFilter by category UUID
completed_date_endstringFilter tasks completed <= this date (ISO 8601 format)
completed_date_startstringFilter tasks completed >= this date (ISO 8601 format)
created_date_endstringFilter tasks created <= this date (ISO 8601 format)
created_date_startstringFilter tasks created >= this date (ISO 8601 format)
due_date_endstringFilter tasks with due_date <= this date (ISO 8601 format)
due_date_startstringFilter tasks with due_date >= this date (ISO 8601 format)
due_todaybooleanFilter tasks due today
has_notificationbooleanFilter by notification enabled status
is_importantbooleanFilter by important tasks only
limitnumberMaximum number of tasks to return (default: 25, max: 500)
locationstringFilter by location (partial match, e.g., "여의도", "서울")
overduebooleanFilter overdue incomplete tasks (due_date < today)
searchstringSearch keyword in task content
sort_bystringSort field (default: created_at)
sort_orderstringSort order (default: desc)
statusstringFilter 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.

NameTypeReqDescription
emailstringyesYour account email address
passwordstringyesYour 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.

NameTypeReqDescription
sidecar_namestringSidecar 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.

NameTypeReqDescription
categorystringSubcategory 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.

NameTypeReqDescription
dry_runbooleanPreview without uploading. Default: false
max_filesnumberMax 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.

NameTypeReqDescription
dry_runbooleanPreview without uploading. Default: false
max_filesnumberMax 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.

NameTypeReqDescription
dry_runbooleanPreview without uploading. Default: false
max_filesnumberMax 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).

NameTypeReqDescription
dry_runbooleanPreview 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.

NameTypeReqDescription
dry_runbooleanPreview without uploading. Default: false
max_filesnumberMax 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.

NameTypeReqDescription
emailstringyesEmail address for the new account
namestringDisplay name (optional)
passwordstringyesPassword (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.

NameTypeReqDescription
recipientstringyesage 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.

NameTypeReqDescription
forcebooleanRegenerate 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.

NameTypeReqDescription
categorystringSubcategory to disambiguate
contentstringyesNew content
idstringDocument UUID
local_pathstringUpdate the local file path for multi-device sync
modestringUpdate mode (default: replace)
titlestringDocument 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).

NameTypeReqDescription
category_idstringCategory ID. Must be owned by or shared to this user.
completed_atstringMark as completed (ISO format) or null to uncomplete
contentstringTask content
due_datestringDue date in ISO format (e.g., 2026-04-21T15:00:00+09:00)
due_timestringTime of day in HH:MM (24h). Optional when due_date already carries a time.
idstringyesTask ID
is_all_daybooleanMark as all-day event — suppresses time-of-day rendering.
is_importantbooleanMark task as important
locationstringHuman-readable location (e.g., "Starbucks Gangnam"). For GPS use location_lat/lng.
location_latnumberGPS latitude. Pair with location_lng.
location_lngnumberGPS longitude. Pair with location_lat.
notesstringFree-form notes / details attached to the task.
notification_minutes_beforenumberSchedule a reminder N minutes before due_date. Pass null/omit to clear existing MCP reminder on update. Requires due_date.
repeat_rulestringRecurrence rule. Accepted values depend on server (e.g., "daily", "weekly", "monthly", or RRULE). Creates a recurring series.
start_datestringStart date for multi-day events (ISO format). For single-day tasks, use due_date.
travel_timenumberMinutes of travel time before due_date to allow for. Used by reminder scheduling.

No output schema declared.

No examples provided.