markpin-mcp
# Markpin MCP server
Source of [`@markpin/mcp`](https://www.npmjs.com/package/@markpin/mcp) 0.9.0: an MCP server that lets Claude, Cursor and other AI clients search and read the web pages and highlights you saved with [Markpin](https://markpin.dev), a Chrome extension that keeps them as Markdown files in a folder you own.
Usage and setup: [mcp-server/README.md](mcp-server/README.md).
- `mcp-server/` — the server (stdio, read-only unless `--allow-write`).
- `shared/` — the Markpin file format (parse/serialize), also used by the extension. Bundled into the npm package.
- `glama.json`, `glama/Dockerfile` — for the [Glama](https://glama.ai/mcp/servers) directory only.
This repository is published from Markpin's main repository on every release, so pull requests are applied there by hand. Issues are welcome here.
```bash
yarn install && yarn build && yarn test
```
MIT License.
TDQS
Scored across 4 tools
Each tool targets a distinct retrieval axis: recency (list_recent), relevance/full-text (search), single-page detail (get_page), and tag aggregation (list_tags). The one fuzzy boundary is that search with an empty query duplicates list_recent's behavior, but the descriptions call this out explicitly enough that an agent can still choose correctly.
Three of four tools follow a clean verb_noun pattern (list_recent, get_page, list_tags); `search` is a bare verb, a minor deviation from the pattern but unambiguous. No style mixing (camelCase vs snake_case) or chaotic variants.
Four tools is slim but proportionate for what appears to be a read-only retrieval companion to a browser bookmarking extension. Each tool covers a genuinely different access path, so none feels redundant padding, though the surface is close to thin.
The read side is thorough — pages, tags, notes, clips, reading state, and two listing orders are all reachable. However, there is no write path at all: an agent cannot save a page, add a note or clip, tag anything, or set read/bookmark state, which are the core lifecycle actions the descriptions imply exist in the underlying product.