Back to list
adeze

mcp-refactoring

by adeze

Raindrop MCP Server

108🍴 19📅 Jan 23, 2026

SKILL.md


name: mcp-refactoring description: Refactoring MCP Tools for Better LLM Integration and Usability keywords: [mcp, refactoring, tools, resources, llm-optimization, usability]

MCP Refactoring Skill

Guidelines for refactoring Raindrop MCP tools for better LLM integration, usability, and following MCP best practices.

Capabilities: Resources, Sampling, Elicitation

Resources

Expose all major Raindrop entities as MCP resources:

  • collections://all, collections://{id}
  • bookmarks://{id}, tags://all
  • highlights://all, user://info

Implement resource discovery and navigation (list, get, search, children, etc.) using standard MCP resource URIs and methods. Ensure each resource supports GET (read), and where appropriate, CREATE, UPDATE, DELETE (write) actions.

Sampling

For large collections/bookmarks/tags/highlights, implement sampling endpoints:

  • e.g., bookmarks://collection/{id}?sample=10 returns a random or recent sample.
  • Add tool parameters for limit, offset, and sample to all list/search tools.
  • Use MCP's sampling capability to advertise this in the server manifest.

Elicitation

Implement elicitation tools for:

  • Confirming destructive actions (delete, merge, etc.)
  • Requesting missing parameters (e.g., if a required field is omitted, prompt the LLM/user)
  • Use the MCP elicitation capability to allow the server to ask clarifying questions or confirmations.

Streamlining Tools for LLMs

Hierarchical, Predictable Naming

  • Use a consistent {resource}_{action} pattern (e.g., collection_list, bookmark_create, tag_manage)
  • Group related actions under a single tool with an operation parameter where possible (e.g., collection_manage for create, update, delete)

Reduce Redundancy

Collapse similar tools:

  • Merge collection_create, collection_update, collection_delete into collection_manage with an operation parameter
  • Do the same for bookmarks, tags, highlights
  • For read-only actions, keep list, get, and search as separate, simple tools

LLM-Friendly Descriptions

  • Ensure every tool and parameter has a clear, concise description
  • Use Zod schemas for validation and documentation

Example: Refactored Tool Set

Tool NameDescriptionOperations/Params
collection_manageCreate, update, or delete a collectionoperation: create/update/delete
collection_listList all or child collectionsparentId
bookmark_manageCreate, update, delete, move, tag bookmarksoperation, ids, data
bookmark_searchSearch bookmarks with filtersquery, tags, collection, etc.
tag_manageRename, merge, delete tagsoperation, tagNames, newName
highlight_manageCreate, update, delete highlightsoperation, id, data
user_profileGet user info
user_statisticsGet user or collection statscollectionId
import_exportImport/export bookmarks, check statusoperation, format, etc.
diagnosticsServer diagnosticsincludeEnvironment

LLM/AI-Optimized Features

  • Resource URIs: Support direct resource access via URIs (e.g., collections://all)
  • Streaming: For large lists, support streaming or pagination
  • Sampling: Add sample and limit parameters to all list/search tools
  • Elicitation: Use MCP's elicitation to prompt for missing/ambiguous info and confirmations
  • Consistent Error Handling: Always return structured, descriptive errors

Score

Total Score

75/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

+5
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon