Ainote
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Connect it
Settings → Connectors → Add custom connector
URL: https://api.ainote.dev/api/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://api.ainote.dev/api/mcp{
"mcpServers": {
"ainote": {
"url": "https://api.ainote.dev/api/mcp",
"headers": {
"Authorization": "<YOUR_AUTHORIZATION>"
}
}
}
}claude mcp add --transport http ainote https://api.ainote.dev/api/mcp --header "Authorization: <value>"{
"servers": {
"ainote": {
"type": "http",
"url": "https://api.ainote.dev/api/mcp",
"headers": {
"Authorization": "<YOUR_AUTHORIZATION>"
}
}
}
}{
"mcpServers": {
"ainote": {
"command": "npx",
"args": [
"-y",
"@ainote/mcp@1.3.2"
],
"env": {
"AINOTE_API_KEY": "<value>"
}
}
}
}claude mcp add ainote -- npx -y @ainote/mcp@1.3.234 tools, verified live
delete_taskcan modifySoft-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.
list_papersread-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.
project_readread-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_writecan modifyCreate 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.
assumption_writecan modifyCreate 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.
judgment_submitRequest 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
judgment_listread-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.
delete_dev_doccan modifySoft-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).
get_setup_guideread-onlyGet instructions for setting up AI Note MCP in Claude Desktop, Cursor, or other MCP clients. No authentication required.
vault_createCreate 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_synccan modifyWrapper 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).
sync_pushcan modifyPush 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` —
sync_push_batchcan modifyPush 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 `p
sync_deletecan modifyDelete 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_audit_layer5Record 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 hoo
handoff_savecan modifySave 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).
graph_soft_deletecan modifySoft-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.
env_sync.secret_pushPush a new client-encrypted secret. Ciphertext only — server never sees plaintext. Recipients must include the pushing device's own pubkey.
env_sync.secret_pullread-onlyPull an encrypted secret blob. Response is ciphertext_b64 only — server never sees and never returns plaintext.
env_sync.secret_rotatecan modifyRotate 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.
env_sync_txn_pushcan modifyIngest a batched envelope of client-recorded env_sync mutations. HLC-skew gated, partial-success on conflict.
env_sync_txn_rollbackcan modifyInverse-apply a prior env_sync transaction. Safety gates: ownership, idempotency, descendant-conflict (force opt-out).
tasks_readread-onlyRead tasks and task categories. action: tasks | categories (consolidated surface — same handlers as the legacy tools)
task_writecan modifyCreate 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.
dev_docs_readread-onlyRead dev docs. action: get | list | categories | pull (consolidated surface — same handlers as the legacy tools)
dev_doc_writecan modifyCreate 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.
sync_readread-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.
vault_readread-onlyRead vault metadata. action: list | clone | status (consolidated surface — same handlers as the legacy tools) Required per action — clone: name.
env_sync_readread-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_writeNon-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.
graph_readread-onlyRead knowledge-graph nodes. action: get | list (consolidated surface — same handlers as the legacy tools)
graph_writecan modifyAdd 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-onlyRead session handoffs. action: get | list (consolidated surface — same handlers as the legacy tools) Required per action — get: project, topic.
memory_readread-onlyRead agent memory. action: get | search (consolidated surface — same handlers as the legacy tools) Required per action — get: source | search: query.
Alternatives in Developer Tools
Compare →SESemioticA
Verified React chart generation: select, validate, repair, render, and inspect charts through MCP.
RRReactive ResumeA
Free open-source resume builder with remote MCP tools for resumes and job applications.
PAPg AiguideA
Comprehensive PostgreSQL documentation and best practices, including ecosystem tools
COContrastAPIA
55 tools, 7 Resources, Sigma rules, email SPF/DMARC, MITRE, CVE/KEV, risk_score. No key.
QRQR RápidoA
Generate QR codes for URLs, PIX, Wi-Fi, vCards, WhatsApp and more. For AI agents.
ZTZoom Team ChatOfficialA
Zoom Chat server for channels, messages, contacts, files, and chat collaboration.