raindrop-mcp AGENTS.md

Project instructions for building and maintaining a TypeScript/Bun server that connects to Raindrop.io, a bookmark-management service, through MCP tools.

In plain words
What is it for?
Use them when installing dependencies, checking code, running tests, building the server, or handling carefully controlled live bookmark tests and releases.
Why use it?
They give contributors the required commands, architecture, safety rules, and release process in one place.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/adeze/raindrop-mcp/agents-md
Clone the repo
git clone --depth 1 https://github.com/adeze/raindrop-mcp

Made for: Codex, OpenCode.

Per session 723 This file is loaded in full into every session.
When invoked 723 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00723 $0.00723
Opus 5 $0.00362 $0.00362
Sonnet 5 $0.00145 $0.00145
Haiku 4.5 $0.00072 $0.00072

Measured 3d ago against content hash 7f5ed4946077, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

raindrop-mcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 55 lines

How it starts

The opening of the file, as written. The whole thing — 55 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Raindrop MCP — Codex Guide

TypeScript/Bun MCP server for Raindrop.io bookmarks. This is the canonical operating guide; CLAUDE.md and .github/copilot-instructions.md are compatibility pointers. Target MCP SDK v2 and protocol revision 2026-07-28.

Commands

bun install
bun run lint
bun run format:check
bun run type-check
bun run test
bun run build

Run the irreversible live bookmark test only with an account authorized for it:

RUN_DESTRUCTIVE_LIVE_TESTS=true \
CONFIRM_DESTRUCTIVE_LIVE_TESTS=DELETE_ONLY_TEST_BOOKMARKS \
bunx vitest run tests/destructive.live.test.ts

It creates a uniquely tagged project URL, retrieves it by its returned ID, deletes it from the active library and Trash, then confirms it is absent. It never targets an existing bookmark.

Use Bun for project commands and dependency updates: bun run update:deps. Keep bun.lock committed. Do not manually version, tag, publish, or edit release artifacts; semantic-release owns releases on master.

Architecture

  • src/index.ts: v2 STDIO era-selection entry point; src/server.ts: v2 per-request Streamable HTTP handler.
  • src/services/raindropmcp.service.ts: MCP capability, tool, resource, and prompt registration. Register capabilities before handlers.
  • src/tools/*.ts: declarative tool modules, assembled by src/tools/index.ts.
  • src/services/raindrop.service.ts: shared authenticated Raindrop API client, rate limit, and typed upstream errors.
  • tests/: Vitest unit/integration coverage; E2E needs RAINDROP_ACCESS_TOKEN.

Non-negotiable contracts

  • Add tools through domain modules with defineTool(); use snake_case, Zod input/output schemas, async handlers, and the shared RaindropService.
  • Destructive operations require confirm: true; preserve existing auth, HTTP security, rate-limit, and typed-error behavior.
  • Prefer mcp://collection/{id} and mcp://raindrop/{id} resource content for list/detail links.
  • Use createLogger() from src/utils/logger.ts; never write protocol output with console.log.
  • Treat raindrop-complete.yaml as the Raindrop API contract. Regenerate types/client only when its OpenAPI input changes.
  • Use @modelcontextprotocol/server, @modelcontextprotocol/client, and @modelcontextprotocol/node; do not add the v1 monolithic SDK.

Read the full file on GitHub · 55 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 55 lines · 723 tokens per session scan A 7f5ed4946077

Subscribe to this mod's changes

raindrop-mcp AGENTS.md is an instructions file published in the GitHub repository adeze/raindrop-mcp (180 stars, last pushed 1mo ago), licensed MIT. It adds 723 tokens to every session, about $0.0036 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.