LabscoMCP early access ↗
mattriffleMCP SERVER

Local Pinboard MCP

Your Pinboard bookmarks, tags and notes in an assistant — running locally, with the token never leaving your machine.

by mattriffle ↗Note-Taking & Personal Knowledge BasesCommunity

LABSCO SUMMARY

Built around the fact that the token rides in the URL.

Pinboard's v1 API puts your token in a query parameter, which means any unhandled network error can spill it into a log file — this server truncates and sanitises those errors on purpose, and validates tags and hex IDs with Zod before any request goes out. Everything else follows from being stdio-only: no port, no third party, and a full read-write surface over your own bookmarks.

What it is

A local server on the Pinboard API v1, written in TypeScript with Zod schemas. It reads and writes bookmarks, manages tags, and reads notes, over stdio only — it never opens an HTTP port, and talks solely to api.pinboard.in.

What you get

  • get_recent_posts lists your latest bookmarks, filtered by up to 3 tags, count defaulting to 15 and capped at 100
  • get_posts retrieves bookmarks by tag, by a dt date, or by exact url, with meta for the change-detection hash
  • get_all_posts returns everything, paged with start and results and bounded by fromdt / todt — rate limited to once every 5 minutes
  • add_post adds or replaces a bookmark (url and title required, tags starting with . are private, shared and toread control visibility and reading state); delete_post removes one permanently
  • Tags: get_tags with usage counts, suggest_tags returning popular and recommended tags for a URL, rename_tag to rename or fold one into another, delete_tag to drop a tag without touching the bookmarks
  • Notes: list_notes for the list, get_note for one note's full body — note creation and editing are outside the v1 API
  • get_last_update returns the time of the most recent change, so you can tell whether anything moved since your last fetch

Requirements

A Pinboard API token from Settings → Password on pinboard.in, in the form username:HEXTOKEN, passed as PINBOARD_API_TOKEN. Easiest path: download the .mcpb file from the repository's releases and drop it on your assistant. Otherwise Node.js 22 or newer, then npm install and npm run build, and point your client at node with the path to dist/index.js. The v1 API takes the token as a query parameter, so the server intercepts and sanitises network-level error messages to keep it out of your client's logs.

Setup effort

Build from source — git clone https://github.com/mattriffle/local-pinboard-mcp.git