Ainote
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs.
Connector by seunghan91 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/seunghan91-ainote
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://api.ainote.dev/api/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 13 read · 5 write · 16 delete
- Secrets
- 2 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 34
From the running server's own tool list (tools/list) on Oct 25, 2026.
Read 13 · Look things up without changing anything.
dev_docs_readenv_sync_readenv_sync.secret_pullget_setup_guidegraph_readhandoff_readjudgment_listlist_papersmemory_readproject_readsync_readtasks_read
Show 1 more tools
vault_read
Write 5 · Create, change, send or run things.
env_sync_writeenv_sync.secret_pushjudgment_submitsync_audit_layer5vault_create
Delete 16 · Delete, drop, revoke or wipe things.
assumption_writedelete_dev_docdelete_taskdev_doc_writeenv_sync_txn_pushenv_sync_txn_rollbackenv_sync.secret_rotategraph_soft_deletegraph_writehandoff_saveproject_writesync_delete
Show 4 more tools
sync_pushsync_push_batchtask_writevault_sync
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
AINOTE_API_KEYAuthorization
Network hosts it talks to 1
api.ainote.dev· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (34)
As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].
assumption_writeCreate or update assumptioncan change or delete dataCreate or update an assumption under a project (L2 intent layer). Omit `id` to create, pass it to update. There is no delete tool. 🔴 `verdict` is REJECTED with an error if passed — verdict is confirmed only through a human judgment decision (see judgment_submit). This tool can only shape the assumption itself: what is being assumed, how critical it is, and what evidence would settle it.
delete_dev_docDelete dev doccan change or delete dataSoft-delete a dev document by title or UUID. Reversible from trash. Pass `category` when multiple docs share the same title across subcategories (memory/claude/cursor/env/docs).
delete_taskDelete taskcan change or delete dataSoft-delete a task by ID. Destructive but reversible within 30 days (TaskCleanupJob purges trash daily at 2am KST). Returns 404 if the task does not exist or is not owned by the authenticated user.
dev_doc_writeCreate or update dev doccan change or delete dataCreate or update a dev doc. action: create | update. Deletion is a separate tool (delete_dev_doc). (consolidated surface — same handlers as the legacy tools) Required per action — create: title, content | update: content.
dev_docs_readRead dev docsread-onlyRead dev docs. action: get | list | categories | pull (consolidated surface — same handlers as the legacy tools)
env_sync_readRead env sync stateread-onlyRead env-sync state. action: devices | drift | status | txn_pull. Secret reads are a separate tool (env_sync.secret_pull). (consolidated surface — same handlers as the legacy tools)
env_sync_txn_pushApply env sync changescan change or delete dataIngest a batched envelope of client-recorded env_sync mutations. HLC-skew gated, partial-success on conflict.
env_sync_txn_rollbackRoll back env sync changecan change or delete dataInverse-apply a prior env_sync transaction. Safety gates: ownership, idempotency, descendant-conflict (force opt-out).
env_sync_writeEnroll device or request shareNon-destructive env-sync writes. action: enroll | request_share | heartbeat. Secret push/rotate are separate tools. (consolidated surface — same handlers as the legacy tools) Required per action — enroll: alias, age_pubkey, enrollment_token | request_share: target_device_id, secret_shares, device_id | heartbeat: device_id, installed_skills_hash, installed_hooks_hash.
env_sync.secret_pullPull encrypted secretread-onlyPull an encrypted secret blob. Response is ciphertext_b64 only — server never sees and never returns plaintext.
env_sync.secret_pushPush encrypted secretPush a new client-encrypted secret. Ciphertext only — server never sees plaintext. Recipients must include the pushing device's own pubkey.
env_sync.secret_rotateRotate encrypted secretcan change or delete dataRotate a secret: soft-delete the old node, create a new live node with the same alias and the new ciphertext+recipients. 7-day grace before hard delete of old ciphertext bytes.
get_setup_guideGet setup guideread-onlyGet instructions for setting up AI Note MCP in Claude Desktop, Cursor, or other MCP clients. No authentication required.
graph_readRead knowledge graphread-onlyRead knowledge-graph nodes. action: get | list (consolidated surface — same handlers as the legacy tools)
graph_soft_deleteDelete graph entitycan change or delete dataSoft-delete an env_sync graph node (sets deleted_at; .live scope hides it from reads). Idempotent — re-deleting a deleted node is a no-op success.
Show 19 more tools
graph_writeAdd or update graph entitycan change or delete dataAdd or update a graph entity. action: add | update. Deletion is a separate tool (graph_soft_delete). (consolidated surface — same handlers as the legacy tools) Required per action — add: node_type, alias, payload, device_id | update: node_id, device_id, field_updates.
handoff_readRead session handoffsread-onlyRead session handoffs. action: get | list (consolidated surface — same handlers as the legacy tools) Required per action — get: project, topic.
handoff_saveSave session handoffcan change or delete dataSave a session handoff note for cross-device / cross-session continuation. Stored at handoffs/{project}-{topic}-{YYYY-MM-DD}.txt in the user's primary vault. Use the optional `time` param (HHMM, KST) to disambiguate multiple handoffs saved on the same day — it is appended to the topic slug (e.g. topic='phase-d', time='1555' → handoffs/{project}-phase-d-1555-{date}.txt).
judgment_listList judgmentsread-onlyList the authenticated user's own judgments (L3 layer) — use this to check your own blocking status (risk_tier 1 pending = execution blocked). Default order matches the /command queue: risk_tier ascending, then arrival order.
judgment_submitRequest human judgmentRequest a human judgment (L3 layer) by attaching evidence — approval, evidence, or verdict. This is the ONLY door an agent has into the judgment queue. 🔴 `decision` is REJECTED with an error if passed — judgments are always created with decision='pending'. Only a human decides them (from the /command queue). Use judgment_list afterwards to check whether this judgment has since been decided. risk_tier controls urgency: 1=destructive (blocks execution until decided), 2=reversible (may auto-proceed after a wait window), 3=informational (auto-expires after 24h).
list_papersSearch notesread-onlyList notes/papers from AI Note. Supports keyword search across title and content, category filtering, pagination, and sorting. Returns id/title/content_preview/category_id/created_at. Use this when the user asks 'find my note about X', 'what did I write on Y', or wants to search their knowledge base.
memory_readRead agent memoryread-onlyRead agent memory. action: get | search (consolidated surface — same handlers as the legacy tools) Required per action — get: source | search: query.
project_readRead projectsread-onlyList the authenticated user's projects (L2 intent layer), or fetch one by id. Each entry includes riskiest_assumption — the single highest-priority unverified assumption (or, if all are verified, the highest-criticality one).
project_writeCreate or update projectcan change or delete dataCreate or update a project (L2 intent layer). Omit `id` to create, pass it to update. There is no delete tool — use status: 'archived' to retire a project.
sync_audit_layer5Record sync review resultRecord the result of a client-side Layer 5 codex review (sync.py merge gate) as a vault_events row. Body of the review is NOT stored — only an HMAC digest of the summary so operators can correlate without exposing review content. Opt-in: server skips writes (still returns success) unless ENV['AINOTE_LAYER5_AUDIT']='on' AND a versioned HMAC secret is configured. Used by the sync.py SessionStart hook + merge command to surface 'why was this blocked?' across multi-PC sessions.
sync_deleteDelete file from vaultcan change or delete dataDelete a file from the primary vault. Optional CAS via base_sha to detect concurrent multi-PC writes. Protected paths (global/memory/, global/skills/, global/planning/, global/intent/, global/claude-config/, handoffs/) require base_sha or explicit force:true (audited). Idempotent: deleting a non-existent path returns success with deleted:false.
sync_pushPush file to vaultcan change or delete dataPush a markdown file into the primary vault. Optional CAS via base_sha to detect concurrent multi-PC writes (Layer 3 of multi-PC sync plan). WAF-bypass tip: large bodies (~10KB+) that get false-positive blocked at Cloudflare can be sent via `content_b64` (base64-encoded) OR `content` prefixed with `__B64__:` instead. When the push CREATES a new .md file, the response may carry `dedup_candidates` — existing memory files that look similar (keyword + title similarity, no LLM). It is an advisory, not a rejection: YOU decide to merge into one of them (re-push that path), drop this write as a duplic…
sync_push_batchPush files to vault (batch)can change or delete dataPush MANY files into the primary vault in ONE call. Use this instead of looping sync_push whenever you have more than a couple of changed paths — the cost of sync_push is round trips, not bytes. Per-item semantics are identical to sync_push (Layer 3 base_sha CAS, superseded contract, content_b64 WAF fallback). Partial success is normal and returns HTTP 200: read `results[]` and match entries by `path`, NOT by position. A conflict result always carries `remote_sha` + `conflict_reason` so you can go straight to sync_merge. Request-level failures (duplicate paths in one batch, idempotency key reu…
sync_readRead vault sync stateread-onlyRead-only vault sync operations. action: list | pull | diff | merge | conflicts. Writes (push/delete) are separate tools — they carry CAS semantics. (consolidated surface — same handlers as the legacy tools) Required per action — diff: path | merge: path, base_text, local_text.
task_writeCreate or update taskcan change or delete dataCreate or update a task. action: create | update. Deletion is a separate tool (delete_task). (consolidated surface — same handlers as the legacy tools) Required per action — create: content | update: id.
tasks_readRead tasksread-onlyRead tasks and task categories. action: tasks | categories (consolidated surface — same handlers as the legacy tools)
vault_createCreate vault on GitHubCreate a new private vault as a GitHub repository under the user's account. Requires the user to have completed the GitHub App install flow first.
vault_readRead vault inforead-onlyRead vault metadata. action: list | clone | status (consolidated surface — same handlers as the legacy tools) Required per action — clone: name.
vault_syncSync vault filescan change or delete dataWrapper around vault file sync. action=list|pull|push to work against the primary vault. list/pull are paginated — narrow with `path`/`since` and follow `next_cursor` instead of pulling the whole vault. To fetch specific files, pull with `paths` (up to 100 exact paths, one call). For push: WAF-bypass via `content_b64` or `content: '__B64__:...'` prefix (mirrors sync_push).
Signals
- Weekly downloads
- 39
- Last release
- May 14, 2026 (5 months ago)
- Last package publish
- Oct 11, 2026 (18 days ago)
- Repository
- Not found on GitHub (deleted or private)
From the package registry.
Details
- Registry name
io.github.seunghan91/ainote- Version
- 1.3.2
- Auth
- Bearer token, API key
- Packages
- npm @ainote/mcp
- License
- MIT
- Repository
- github.com/seunghan91/ainote
- Website
- docs.ainote.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- Official MCP Registry
Cite this page
Ainote MCP server. Agent Mart. https://agentmart.dev/connectors/seunghan91-ainote (last updated 2026-10-24)