scratchpad_search_notes
Search notes
Full-text search across the user's notes. Returns matching notes with a short snippet. Password-locked notes are never returned.
queryrequiredio.github.scratchpad-shPublished by GitHub account scratchpad-shv1.0.0Updated Nov 3, 2026
Search, read, write, and organize your Scratchpad notes from any MCP client.
Connects an assistant to your Scratchpad notes so it can search, read, write, organize and restore versions of them.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.scratchpad-sh%2Fscratchpad/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"scratchpad": {
"type": "http",
"url": "https://app.scratchpad.sh/api/mcp"
}
}
}Give your AI your notes. An MCP server for Scratchpad, so Claude, Cursor, Codex, and any other MCP client can search, read, write, and organize the notes you already keep.
It is small on purpose: about 2,000 lines of TypeScript, no database, and no state on disk. Every tool is one or two calls to Scratchpad's HTTPS API, so you can read the whole thing in an evening and know exactly what your assistant can do.
No install. Point your client at the hosted server and sign in with OAuth. This is the only way that works on a phone.
Claude Code:
Cursor, in ~/.cursor/mcp.json:
For a client that only speaks stdio, or if you would rather hold an API token than an OAuth session. Create a token in Scratchpad under Settings, API tokens.
Check the token before wiring it up:
Every name carries a scratchpad_ prefix, so the tools sit cleanly beside other
servers in one session.
propose_edit writes nothing: it returns a diff and an
id. apply_edit takes that id and no content, so the text cannot change between
showing you the diff and writing it.restore_version keeps the current one first.MIT. See LICENSE.
Made by Scratchpad, the notes app your AI can actually read. More at scratchpad.sh/ai.
Source: README.md at commit 3eaf90e
Search notes
Full-text search across the user's notes. Returns matching notes with a short snippet. Password-locked notes are never returned.
queryrequiredRead note
Read the Markdown body of one note, by id. Get ids from search_notes or list_notes first. A long note comes in parts: the first ends by saying where the next begins and where each heading (each chapter, say) starts, so pass `start` to read the part wanted. Password-locked notes cannot be read: unlocking is something a browser does, and this connection has no way to do it.
startnote_idrequiredList notes
List the user's notes, pinned first and then most recently updated, as id and title, with the folder each is filed in. Use when they ask what notes exist rather than for particular words, and when a title is enough to find the one they mean. Can list one folder, or the archive. Locked notes appear with their title hidden.
offsetarchivedfolder_idCreate note
Create a new note. Returns its id. Never use em dashes or en dashes in anything written to a note. Use a period, colon, comma, or parentheses instead. Ordinary hyphens in compound words and numeric ranges are fine.
markdownrequiredfolder_idList folders
List the user's folders as a tree, with each folder's id and how many notes are filed directly in it. Folders nest three levels deep at most. Use this to find the id create_note, move_note and the other folder tools need.
Takes no parameters.
Move note
File a note in a folder, or take it out of every folder. Changes nothing inside the note. Password-locked notes cannot be moved from here.
note_idrequiredfolder_idRename note
Rename a note. The name stays even when the first line changes later, as when renaming in the app. Changes nothing inside the note. Password-locked notes cannot be renamed from here. Never use em dashes or en dashes in a note's name. Ordinary hyphens are fine.
titlerequirednote_idrequiredArchive note
Archive a note, or bring one back. An archived note is out of the list but kept whole, still searchable, and returns with archived false. This is not deleting: nothing here deletes a note, which only the user can do, in the app.
note_idrequiredarchivedPin note
Pin a note to the top of the list, or unpin it. Changes nothing inside the note.
pinnednote_idrequiredDuplicate note
Make a copy of a note, with its files, in the same folder, named with " copy" after the original's name. Returns the copy's id. Useful before a large change the user may want to compare against.
note_idrequiredList versions
List a note's History: the versions kept as it changed, newest first, each with its id, when it was saved, by whom, and why. Use it when the user asks what a note used to say, or to undo a change.
note_idrequiredRead version
Read one version from a note's History as Markdown. A long one comes in parts, like read_note.
startnote_idrequiredversion_idrequiredRestore version
Put a note back to a version from its History. The note as it stands is saved to History first, so a restore is undone by restoring that one. Tell the user which version, from when, before calling this.
note_idrequiredversion_idrequiredCreate folder
Create a folder, at the top level or inside another one as a sub-folder. Returns its id. Two folders can have the same name, so check list_folders first rather than making a second one by accident. Never use em dashes or en dashes in a folder name. Ordinary hyphens are fine.
namerequiredparent_idRename folder
Rename a folder. Its notes and sub-folders stay where they are. Never use em dashes or en dashes in a folder name. Ordinary hyphens are fine.
namerequiredfolder_idrequiredMove folder
Move a folder, with everything in it, inside another folder or out to the top level. It goes last among its new neighbours. Refused if it would put anything more than three levels deep, or a folder inside itself.
folder_idrequiredparent_idDelete folder
Delete an EMPTY folder. A folder that still holds notes or sub-folders is refused: move them somewhere else first with move_note and move_folder, or ask the user to delete it in the app, where it can be undone.
folder_idrequiredAppend to note
Add Markdown to the end of an existing note, leaving everything already there untouched. Prefer this over propose_edit when the change is purely an addition: it needs no diff and no second call. Never use em dashes or en dashes in anything written to a note. Use a period, colon, comma, or parentheses instead. Ordinary hyphens in compound words and numeric ranges are fine.
note_idrequiredmarkdownrequiredSearch attachment
Find where something is discussed inside a file attached to a note. Returns short passages with the page each is on. Use it when a file's text was too long to be included whole, or to locate a topic before reading around it. Requires note_id.
filerequiredqueryrequirednote_idRead attachment
Read a range of pages out of a file attached to a note. read_note lists what a note has and how many pages each one is; this is how to read them. Use it after search_attachment to read around a match, or to work through a document a stretch at a time. Requires note_id.
filerequirednote_idto_pagefrom_pagerequiredPropose edit
Propose a change to a note and show the diff. This does NOT write anything. It returns a proposal id, which apply_edit takes to write the change. Show the user the diff and let them decide before calling apply_edit. Prefer `edits`: each one quotes a short passage from the note in `find` (a line or two, copied exactly, enough to match only once) and gives its replacement in `replace`. To insert, quote the passage the new text goes after and repeat it at the start of `replace`. To add to the end, leave `find` empty. Send `markdown` (the COMPLETE new note body) only when rewriting most of the note. Never use em dashes or en dashes in anything written to a note. Use a period, colon, comma, or parentheses instead. Ordinary hyphens in compound words and numeric ranges are fine.
editsnote_idrequiredsummaryrequiredmarkdownApply edit
Write a proposal from propose_edit to the note. Takes only the proposal id: the content cannot be changed between showing the diff and writing it.
proposal_idrequired100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
https://app.scratchpad.sh/api/mcpclaude mcp add --transport http --scope user scratchpad https://app.scratchpad.sh/api/mcp{ "mcpServers": { "scratchpad": { "url": "https://app.scratchpad.sh/api/mcp" } }}{ "mcpServers": { "scratchpad": { "command": "npx", "args": ["-y", "@scratchpadsh/mcp"], "env": { "SCRATCHPAD_TOKEN": "scr_your_token" } } }}SCRATCHPAD_TOKEN=scr_your_token npx -y @scratchpadsh/mcp --checknpm installnpm test