What a notes MCP server gives a coding agent
Claude Code is good at the code in front of it and blind to everything around it: why the queue was made async, what the on-call runbook says, which vendor you decided against in March. That context usually lives in notes, and the default way to supply it is to paste it into the prompt, session after session.
An MCP server for notes removes the paste step. The agent gets tools to search, read, link and write your notes, and calls them when a task needs them. With Scribelet the server is hosted, so there is no process to keep running, and the same notes are on your phone, which matters when you want to read the ADR the agent wrote on the train.
The tools available after you connect, as documented in the MCP server guide:
- Notes:
search_notes, search, get_note, list_recent_notes, create_note, update_note, delete_note, get_note_links, find_similar_notes
- Memories:
list_memories, retrieve_memories, create_memory, update_memory, delete_memory
- Organization:
list_desks, get_desk, list_tags, get_user_profile
Resources such as note://{desk_id}/{note_id} give read-only, URI-addressable access to a note as Markdown with frontmatter, and desk://{desk_id}/notes pages through recent notes.
Notes vs memories: what to put where
Treat them as two different kinds of context.
Notes are documents. An ADR, a runbook, a design doc, the notes from Tuesday's incident. They have titles, tags and [[wikilinks]], and the agent should read them when a task touches their subject. "Search for Paddle webhook decisions" is a notes question.
Memories are standing facts. "Deploys run from the repo root." "Priya owns the iOS release." "Never use git stash in this repo." Scribelet extracts these from your notes and chats, and retrieve_memories searches them by meaning. Load them at the start of a session; they are the part of CLAUDE.md you never got around to writing.
The failure mode to avoid is putting standing facts in a long note the agent has to find and read every time. If a fact is true across projects and weeks, let it become a memory. If it was true for one decision on one date, it is a note.
The permission model, briefly
OAuth 2.1 with scopes, granted per connection and per desk on a consent screen you see in the browser. The default grant is desks:read notes:read profile:read: enough to search and read, nothing else. Write access to notes is notes:write; memories have their own read and write scopes; insights:read exposes weekly insights. You can see every connection, its scopes and its last access on the AI Agent Connections page, and revoke any of them instantly.
An API token is the alternative for agents that cannot do OAuth. It grants all scopes and is shown once when generated. Use it for scripts, not for your daily agent.
A daily workflow
- Session start. "Retrieve my memories about this project and treat them as standing instructions." Thirty seconds, and the agent knows your conventions.
- Before a design change. "Search my notes for prior decisions on X and summarize with sources." Catches the decision you forgot you made.
- During long debugging. A running log note the agent appends to with
update_note. Searchable later from any device.
- After a non-obvious choice. "Write the ADR" with
create_note, tagged and linked to the component's note.
- Weekly. Open the Tags view, filter to the agent's tag, and read what it wrote. Correct or delete anything wrong; the agent's notes should meet the same bar as yours.
Troubleshooting
- "Not authenticated." The token expired or was revoked. OAuth connections re-authorize on their own; for an API token, generate a new one.
- Agent cannot find the server. Check the full URL including
/mcp, and that the transport is set to streamable HTTP.
- "Insufficient scope." The agent is trying something its grant does not cover. Revoke and re-authorize; it can request broader scopes next time. An API token sidesteps this at the cost of granting everything.
- Connected but no notes. Desk scoping. Ask for
list_desks, name the desk, or re-authorize with the right desk selected.
If you also want the agent to verify what it wrote against the repository rather than only against your notes, the GitHub connector lets Scribelet's verification check a note's claims against your code.
Give Claude Code the context it keeps asking you for
Run one command, pick the desks on the consent screen, and your coding agent can search your decisions, follow your links and write the ADR itself. Free plan, OAuth scopes you control.
Free plan, no credit card. See pricing