Skip to main content
Glama
aderaaij

raindrop-mcp

by aderaaij

raindrop-mcp

A Raindrop.io MCP server in Python (FastMCP), serving streamable HTTP natively — no stdio↔HTTP bridge needed. Also runs as a plain stdio server for clients that spawn a local process.

Built as a drop-in replacement for @adeze/raindrop-mcp: the 17 tools keep the same names, parameters, and required fields, so existing prompts and client configs keep working. (Two tools differ internally: get_suggestions / suggest_tags use Raindrop's native suggest endpoint rather than MCP-sampling-based AI refinement.)

Tools

Tool

What it does

collection_list

All collections, flat

get_collection_tree

Collections as a hierarchy with breadcrumb paths

collection_manage

Create / update / delete a collection

cleanup_collections

Remove empty collections (dry-run unless confirm: true)

bookmark_search

Full-text search with tag / domain / type / date / flag filters

bookmark_manage

Create / update / delete a bookmark

get_raindrop

One bookmark by ID (with highlights)

list_raindrops

Bookmarks in a collection, paginated

bulk_edit_raindrops

Bulk update / move / remove

library_audit

Count (and list) broken links and duplicates

empty_trash

Permanently empty Trash (dry-run unless confirm: true)

remove_duplicates

Delete same-URL duplicates, keeping the oldest (dry-run by default)

tag_manage

Rename / merge / delete tags

highlight_manage

Create / update / delete highlights

get_suggestions

Suggested tags + collections for a URL or bookmark

suggest_tags

Suggested tags for a URL

diagnostics

Server/runtime metadata

Collection IDs: 0 = all, -1 = Unsorted, -99 = Trash. Destructive sweeps default to a dry run.

Related MCP server: Raindrop.io

Setup

Requires Python ≥ 3.10 and uv.

uv sync
cp config/.env.example config/.env   # then paste your token

Get a token at raindrop.io → Settings → Integrations → For Developers → create an app → Test token. Set it as RAINDROP_ACCESS_TOKEN in config/.env (or in the process environment, which takes precedence).

Running

Streamable HTTP (network clients — Claude Desktop remote MCP, gateways):

MCP_TRANSPORT=http MCP_PORT=8591 uv run start
# serves http://0.0.0.0:8591/mcp

stdio (clients that spawn the server locally):

uv run start

systemd user unit (example)

[Unit]
Description=Raindrop.io MCP (native FastMCP HTTP)
After=network.target

[Service]
Type=simple
WorkingDirectory=%h/raindrop-mcp
Environment=MCP_TRANSPORT=http
Environment=MCP_HOST=0.0.0.0
Environment=MCP_PORT=8591
ExecStart=%h/raindrop-mcp/.venv/bin/start
MemoryMax=512M
MemorySwapMax=0
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

The server binds 0.0.0.0 in the example — front it with your LAN/VPN (Tailscale works well); the Raindrop token authorizes every request it serves.

Notes

  • Scaffolded with mcp-template.

  • Rate limiting: honours Retry-After once on HTTP 429 (Raindrop allows 120 req/min).

  • skipCache parameters are accepted for compatibility but are no-ops — this server doesn't cache.

License

MIT

Available Tools

17 tools
bookmark_manageB

Creates, updates, or deletes bookmarks. Use the operation parameter to specify the action.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoBookmark ID (required for update/delete)
urlYesBookmark URL (used by create/update; ignored for delete)
tagsNoTags to set
titleYesBookmark title (used by create/update; ignored for delete)
importantNoMark as favorite
operationYes
descriptionNoBookmark excerpt/description
collectionIdNoCollection to place the bookmark in

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states it can delete but gives no warnings about data loss, idempotency, or required permissions. The agent cannot assess side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that immediately states the tool's purpose and directs the agent to the key parameter. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for a simple CRUD tool with an output schema expected to document return values. However, it lacks context on typical use cases or preconditions, making it minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 88%, so the schema already explains most parameters. The description adds minimal value beyond stating the operation parameter's role, which is already evident from its enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs create, update, and delete operations on bookmarks, which distinguishes it from sibling tools like bookmark_search or list_raindrops that only read data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like bulk_edit_raindrops or how to choose between operations. It only mentions using the operation parameter, which is already in the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bulk_edit_raindropsB

Bulk update, move, or remove bookmarks in a specific collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoArray of raindrop IDs. If omitted for update, all in collection may be affected. Required for remove and move.
tagsNoTags to set. Empty array removes all tags.
importantNoMark as favorite (true/false)
operationNoAction to performupdate
collectionIdYesSource collection ID where raindrops are currently located
toCollectionIdNoTarget collection ID for 'move' operation

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. The description mentions 'update, move, or remove' implying mutation, but fails to disclose critical traits: 'remove' is destructive and irreversible, omitting 'ids' for 'update' affects the entire collection (a key detail hidden in the schema). No mention of pagination, rate limits, or confirmation required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single 11-word sentence, which is concise but too terse for a tool with 6 parameters and 3 operations. It front-loads the purpose but omits operational details, making it minimally adequate yet not fully structured for agent understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (bulk operations, multiple behaviors), the description lacks completeness. It does not explain return behavior (despite an output schema existing), constraints like 'ids' being required for 'remove' and 'move', or the implication that 'update' without 'ids' affects all. The description undermines safe usage by omitting these essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it merely lists the operations without explaining parameter relationships (e.g., 'toCollectionId' is only needed for 'move'). Value above schema is minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb (bulk update, move, remove) and the resource (bookmarks in a specific collection). It distinguishes from sibling tools like 'bookmark_manage' (likely for single actions) and 'bookmark_search' (search only) by emphasizing bulk operations on a collection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'bookmark_manage' or 'remove_duplicates'. No mention of conditions, prerequisites (e.g., ensuring collection exists), or when to prefer 'update' vs 'move' vs 'remove'. The description leaves the agent to infer usage from the operation enum alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cleanup_collectionsA

Remove all collections that do not contain any bookmarks. Requires 'confirm: true' to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet to true to actually perform the cleanup.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses destructive nature (remove collections) and confirm requirement. No annotations present, so description carries burden; more detail on side effects would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. Front-loaded with action and condition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter and existing output schema; description is sufficient for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description reinforces parameter role by highlighting the confirm requirement. Adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Remove' and resource 'collections that do not contain any bookmarks', distinguishing from sibling tools like 'collection_manage' and 'empty_trash'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states requirement 'confirm: true' to execute, providing clear precondition. Could be improved by mentioning when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

collection_listA

Lists all Raindrop.io collections as a flat list.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipCacheNoForce a fresh fetch from the API, bypassing the local cache

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description bears full burden. It only mentions listing collections, without disclosing read-only nature (implied), caching behavior (except skipCache param), or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no filler, front-loaded with verb and resource. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, return values need not be explained. However, given many sibling tools, the description lacks usage context. Adequate but minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (skipCache described). The description adds no additional context beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'lists', the resource 'Raindrop.io collections', and the format 'flat list'. It distinguishes from siblings like get_collection_tree (hierarchical) and collection_manage (CRUD).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives (e.g., get_collection_tree for hierarchy, collection_manage for modifications). The context is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

collection_manageC

Creates, updates, or deletes a collection. Use the operation parameter to specify the action.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoCollection ID (update/delete)
titleNoCollection title (create/update)
parentIdNoParent collection ID for nesting
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description states the actions (create, update, delete) but omits behavioral details like side effects, permissions, reversibility, or consequences of deletion. For a mutation tool, this is insufficient disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose and includes a brief instruction. No redundant words; every part serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 4 parameters and an output schema, the description does not clarify parameter relationships (e.g., id required for update/delete) or return values. It is too minimal to fully inform an agent about usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (75%), with most parameters already documented in the input schema. The tool description adds minimal value, only noting the operation parameter. Baseline 3 is appropriate as the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates, updates, or deletes a collection, using a specific verb and resource. It is clear but does not explicitly differentiate from siblings like bookmark_manage or tag_manage, though the resource type 'collection' implies the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to use the 'operation' parameter but provides no guidance on when to choose this tool over alternatives such as collection_list or cleanup_collections. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnosticsD

Diagnostics resource and runtime metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeEnvironmentNoInclude environment info

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose behavioral traits such as side effects, authorization needs, or output structure. The tool's behavior is opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly terse, consisting of a single sentence that lacks important detail. It is under-specified rather than concisely informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the presence of an output schema, the description does not explain what the tool returns, what 'runtime metadata' means, or how it should be used. It is incomplete for a diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, and the description adds no additional meaning beyond what the schema already states ('Include environment info'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase ('Diagnostics resource and runtime metadata') that restates the tool name without specifying a concrete action (e.g., retrieve, get). It vaguely indicates the tool deals with diagnostics but does not clearly differentiate from siblings, though the sibling names are unrelated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any exclusion criteria or prerequisites. The description provides no context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

empty_trashA

Permanently delete all bookmarks currently in the trash collection. Requires 'confirm: true' to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoSet to true to actually perform the deletion. If false or omitted, returns counts of items to be deleted.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It transparently discloses that the operation is permanent deletion, requires a confirmation parameter, and that setting confirm to false/null results in a dry-run returning counts. This fully informs the agent of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states the core purpose, the second adds the essential confirmation requirement. No extraneous text, fully front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but indicated), the description adequately covers the tool's behavior. However, it does not mention what happens if the trash is already empty or any side effects, leaving minor gaps. Still, it is quite complete for a simple destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, but the description adds significant value beyond the schema by explaining the effect of the confirm parameter: confirming deletion vs. preview. This avoids any ambiguity about the parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('permanently delete') and the resource ('all bookmarks currently in the trash collection'), making the tool's purpose unambiguous. It clearly distinguishes from sibling tools like bookmark_manage or list_raindrops.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use the tool (to empty trash) and provides critical usage guidance: requires 'confirm: true' to execute, and without it returns counts. It does not explicitly state when not to use it or compare to alternatives, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_collection_treeB

Returns a hierarchical view of all collections with full breadcrumb paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipCacheNoForce a fresh fetch from the API, bypassing the local cache

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Lacks annotations and does not disclose caching behavior, performance implications, or side effects beyond the minimal hint from the skipCache parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence with no redundant information, front-loading the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and only one optional parameter, the description is sufficient but could elaborate on the hierarchical structure's format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter descriptions; the tool description adds no extra meaning to the skipCache parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a hierarchical view of all collections with breadcrumb paths, distinguishing it from flat collection lists like collection_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., collection_list) or when to apply the skipCache parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_raindropA

Fetch a single Raindrop.io bookmark by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBookmark ID
skipCacheNoForce a fresh fetch from the API, bypassing the local cache

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear the burden. It only states 'fetch' without indicating whether the operation is read-only or if there are side effects. The skipCache parameter hints at cache behavior but lacks full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that immediately conveys the core purpose. It is front-loaded and contains no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple fetch-by-ID tool, the description is largely complete. The existence of an output schema covers return values. However, lacking annotations, it would benefit from explicitly stating it is a read-only operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds no additional meaning beyond what the schema already provides (id and skipCache definitions). No elaboration on usage context for skipCache.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a single Raindrop.io bookmark by ID, which is specific and distinguishes from siblings like list_raindrops (multiple) and bookmark_search (search-based).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a bookmark ID is known but does not explicitly state when to choose this over alternatives like bookmark_search or list_raindrops. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_suggestionsB

Get suggestions for tags and collections for a specific URL or existing bookmark.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to get suggestions for
useAiNoWhether to use MCP Sampling to ask the AI for refined advice
raindropIdNoExisting bookmark ID to get suggestions for

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It does not disclose that the tool may use AI via the 'useAi' parameter, nor does it mention read-only behavior or side effects. The description is minimal on behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence, concise and front-loaded with the key action. However, it could be slightly more structured for complex use. Efficient but minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks context about default behavior (when both url and raindropId are null), the role of the 'useAi' parameter, and the nature of the output. An output schema exists but is not described; the description should at least hint at what is returned. Incomplete for a tool with AI integration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds some meaning by linking 'URL' and 'existing bookmark' to the parameters, but it does not add significant detail beyond the schema descriptions. Meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get suggestions' and the resource 'tags and collections for a specific URL or existing bookmark.' It distinguishes from sibling tool 'suggest_tags' which likely only returns tag suggestions, making it specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when suggestions for both tags and collections are needed), but it does not explicitly state when not to use it or mention alternatives like 'suggest_tags.' Lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

highlight_manageA

Creates, updates, or deletes highlights. Use the operation parameter to specify the action.

Highlights live on the bookmark: mutations are a PUT of the bookmark's highlights array (an entry with an _id edits it; empty text removes it).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoHighlight _id (required for update/delete)
noteNoNote attached to the highlight
textYesHighlight text (ignored for delete)
colorNoHighlight color (e.g. yellow, blue)
operationYes
bookmarkIdYesBookmark the highlight belongs to

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals that mutations are a PUT of the bookmark's highlights array, that an entry with an _id edits it, and that empty text removes it. This provides important behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences plus a clarifying line. It is front-loaded with the action and keeps details minimal without being terse. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (6 params, 3 required, CRUD operations) and the presence of an output schema, the description adequately covers the main behaviors. It explains the underlying PUT mechanism and how operations work, which is sufficient for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83% (5 of 6 parameters have descriptions). The description adds some meaning: it explains the role of the operation parameter and reiterates that id is required for update/delete, but does not significantly deepen understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Creates, updates, or deletes highlights.' It uses specific verbs (creates, updates, deletes) and a specific resource (highlights), distinguishing it from sibling tools such as bookmark_manage or tag_manage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use the operation parameter to specify the action, and provides context that highlights live on bookmarks. It does not explicitly state when not to use the tool or list alternatives, but the guidance is clear and sufficient for selecting the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_auditA

Scans the entire library for broken links and duplicate bookmarks.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailsNoInclude links to the identified bookmarks

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states 'scans,' implying a read operation, but does not disclose potential performance impact (scanning entire library) or whether any modifications occur. More context is needed for a diagnostic tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no extraneous words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single optional boolean parameter and an output schema (present but not displayed), the description covers the core functionality. It does not mention the return format, but the output schema likely handles that. Slightly incomplete in terms of explaining the scan scope or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter 'details' is described in both the schema and the description. The description's 'Include links to the identified bookmarks' adds no new meaning beyond the schema's description. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scans the entire library for broken links and duplicate bookmarks. The verb 'scans' and resource 'library' are specific and distinct from sibling tools like remove_duplicates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for auditing library health but does not explicitly state when to use it versus alternatives like diagnostics or remove_duplicates. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_raindropsB

List Raindrop.io bookmarks for a collection with pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
sortNoSort order
perPageNoItems per page (max 50)
skipCacheNoForce a fresh fetch from the API, bypassing the local cache
collectionIdYesCollection ID to list bookmarks from (use 0 for All)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden of disclosing behavioral traits. It only mentions pagination but does not state that the operation is read-only, whether it mutates data, or any side effects. The agent cannot reliably infer the tool's safety profile from this minimal description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (single sentence) and front-loaded with the core action. However, it omits important context that could fit without verbosity, such as the read-only nature or default sorting. It is efficient but minimally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the presence of an output schema (not shown) and five parameters, the description fails to explain the return format, error handling, or relationship to other list/search tools. For a tool with pagination and cache control, the description should at least hint at typical usage patterns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so even without param details in the description, the baseline is 3. The description adds no additional semantics beyond what the schema already provides; 'with pagination' is already implied by the page and perPage parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('list'), the resource ('bookmarks'), and the context ('for a collection with pagination'). It effectively distinguishes itself from sibling tools like bookmark_search (which searches across collections) and get_raindrop (which retrieves a single bookmark), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like bookmark_search or collection_list. It doesn't mention prerequisites, preferred use cases, or exclusions, leaving the agent to infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_duplicatesA

Scans all collections and removes duplicate bookmarks (same URL, keeping the oldest) in batches of 50. Supports dry run to report counts without deleting.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, only reports the number of duplicates found without deleting them.
skipCacheNoForce a fresh fetch from the API, bypassing the local cache

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool scans all collections, removes duplicates keeping oldest, batches in 50, and supports dry run. However, it could emphasize destructiveness and lack of confirmation beyond dry run.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states core action and constraints, second highlights dry run. Every sentence is purposeful, no filler, and information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description covers main behavior, batching, and dry run. It could specify that it operates on user's own collections and that the action is irreversible, but overall it is sufficient for understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-described in the schema. The description adds no new details beyond the schema, merely mentioning dry run in a general way. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'removes' and resource 'duplicate bookmarks' with specific behavior (keeping oldest, batching 50). It distinguishes from sibling tools by focusing on global deduplication across all collections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions dry run support, implying best practice to test first, but does not explicitly state when to use this tool over alternatives like bookmark_manage or cleanup_collections. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_tagsA

Suggests relevant tags for a bookmark based on its URL (via Raindrop's suggest endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the bookmark
titleYesThe title of the bookmark
descriptionNoThe description/excerpt

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should disclose behavioral traits. It only mentions that it suggests tags via an endpoint, but lacks details on side effects, authentication, rate limits, or output behavior. The presence of an output schema reduces the burden slightly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence that immediately states the tool's purpose. No unnecessary words, well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 params, 2 required, output schema exists), the description is adequate but not comprehensive. It doesn't explain what kind of tags are suggested, how many, or any constraints. More context would improve clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no extra meaning beyond the schema. It simply restates that the suggestion is based on URL, which is already documented. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool suggests tags for a bookmark based on its URL, using a specific endpoint. This verb+resource structure distinguishes it from siblings like tag_manage (managing tags) and bookmark_manage (managing bookmarks).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a bookmark URL and need tag suggestions, but it does not specify when not to use it or mention alternatives like get_suggestions. Sibling tools exist, but no explicit guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tag_manageB

Renames, merges, or deletes tags. Use the operation parameter to specify the action.

ParametersJSON Schema
NameRequiredDescriptionDefault
newNameNoNew tag name (rename/merge target)
tagNamesYesTag name(s) to act on
operationYes
collectionIdNoRestrict to one collection (omit for the whole library)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the three actions but does not disclose behavioral traits such as side effects on related data (e.g., bookmarks), permissions required, or error conditions. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no extraneous information. It is front-loaded with the main purpose. However, it could be slightly longer to include essential behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description lacks important context for a deletion/rename/merge tool. It does not explain what happens to bookmarks when tags are deleted or merged, nor does it clarify scope (e.g., collections). The tool has 4 parameters and 3 operations, requiring more detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so the schema already documents most parameters. The description adds minimal value beyond restating the operation parameter. Baseline 3 is appropriate as the description is not misleading but does not compensate for the undocumented 25%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renames, merges, or deletes tags, using specific verbs and the resource 'tags'. It distinguishes itself from sibling tools like bookmark_manage and collection_manage by targeting tags specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Use the operation parameter to specify the action,' which is minimal. There is no indication of when to use this tool versus alternatives like bookmark_manage or suggest_tags, nor any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv0.1.0
    • First observedbookmark_manage
    • First observedbookmark_search
    • First observedbulk_edit_raindrops
    • First observedcleanup_collections
    • First observedcollection_list
    • First observedcollection_manage
    • First observeddiagnostics
    • First observedempty_trash
    • First observedget_collection_tree
    • First observedget_raindrop
    • First observedget_suggestions
    • First observedhighlight_manage
    • First observedlibrary_audit
    • First observedlist_raindrops
    • First observedremove_duplicates
    • First observedsuggest_tags
    • First observedtag_manage

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct aspect of Raindrop.io management (bookmarks, collections, tags, highlights, diagnostics) with clear descriptions. The only potential overlap is between bookmark_manage (single) and bulk_edit_raindrops (bulk), but the descriptions clearly differentiate them.

Naming Consistency3/5

Naming patterns are mixed: some use noun_verb (bookmark_manage, collection_list) and others use verb_noun (get_raindrop, list_raindrops). Additionally, diagnostics is just a noun. While readable, the inconsistency reduces predictability.

Tool Count5/5

17 tools is well-scoped for a bookmark management server. It covers all necessary CRUD operations and utilities without unnecessary clutter, earning its place.

Completeness5/5

The tool surface is comprehensive, covering CRUD for bookmarks, collections, tags, and highlights, plus search, suggestions, bulk editing, duplicate removal, and trash management. No obvious gaps for the domain.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aderaaij/raindrop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server