Stashr
What this MCP does
Searches, reads, organizes, tags, archives, and visually reviews saved bookmarks from multiple social platforms.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['archived', 'ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 200, 'minItems': 1}, 'archived': {'type': 'boolean', 'description': 'true archives the bookmarks, false restores them'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Bookmark ids whose archive state actually changed'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'metadata', 'text', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string', 'description': 'Full bookmark body rendered as Markdown'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'required': ['archived', 'author', 'capturedAt', 'contentCreatedAt', 'contentType', 'favorite', 'media', 'note', 'platform', 'tags'], 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['altText', 'duration', 'height', 'ref', 'storedUrl', 'type', 'url', 'width'], 'properties': {'ref': {'type': 'string'}, 'url': {'type': 'string'}, 'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duration': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'storedUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'author': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'archived': {'type': 'boolean'}, 'favorite': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'capturedAt': {'type': 'string'}, 'contentType': {'type': 'string'}, 'contentCreatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 20, 'minItems': 1}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['documents', 'missing'], 'properties': {'missing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Requested ids that were not found or are not visible'}, 'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'metadata', 'text', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string', 'description': 'Full bookmark body rendered as Markdown'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'required': ['archived', 'author', 'capturedAt', 'contentCreatedAt', 'contentType', 'favorite', 'media', 'note', 'platform', 'tags'], 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['altText', 'duration', 'height', 'ref', 'storedUrl', 'type', 'url', 'width'], 'properties': {'ref': {'type': 'string'}, 'url': {'type': 'string'}, 'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duration': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'storedUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'author': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'archived': {'type': 'boolean'}, 'favorite': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'capturedAt': {'type': 'string'}, 'contentType': {'type': 'string'}, 'contentCreatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'description': 'Full documents in the order the ids were requested'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['access', 'email', 'id', 'image', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'email': {'type': 'string'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'access': {'type': 'object', 'required': ['hasAppAccess', 'hasPaidPlan', 'hasProAccess', 'trial'], 'properties': {'trial': {'anyOf': [{'type': 'object', 'required': ['tagsRemaining', 'trialEndsAt'], 'properties': {'trialEndsAt': {'type': 'string'}, 'tagsRemaining': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'hasPaidPlan': {'type': 'boolean'}, 'hasAppAccess': {'type': 'boolean'}, 'hasProAccess': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'state': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': 'Which bookmarks to count'}, 'filters': {'type': 'object', 'properties': {'note': {'type': 'array', 'items': {'enum': ['has-note', 'no-note'], 'type': 'string'}, 'description': '["has-note"] = only bookmarks with a user note'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'enum': ['image', 'video', 'any-media', 'text-only'], 'type': 'string'}, 'description': 'Media presence: "image"/"video" = has that type, "any-media" = has any, "text-only" = has none (not combinable with the others)'}, 'authors': {'type': 'array', 'items': {'type': 'string', 'minLength': 1, 'description': 'An author username ("naval"), optionally platform-scoped ("twitter:naval")'}}, 'tagMode': {'enum': ['include_any', 'include_all', 'exclude_any', 'exclude_all'], 'type': 'string', 'description': 'include_any = OR (default), include_all = AND, exclude_any = none of these tags, exclude_all = not all of them'}, 'favorite': {'type': 'array', 'items': {'enum': ['favorite', 'not-favorite'], 'type': 'string'}, 'description': '["favorite"] = only favorites; ["not-favorite"] = only non-favorites'}, 'untagged': {'type': 'boolean', 'description': 'true = only bookmarks with no tags at all'}, 'mediaMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'platforms': {'type': 'array', 'items': {'enum': ['github', 'instagram', 'reddit', 'tiktok', 'twitter', 'web', 'youtube'], 'type': 'string', 'description': 'Platform id — X/Twitter is "twitter"'}}, 'authorMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'contentTypes': {'type': 'array', 'items': {'type': 'string', 'description': 'A content type ("article"), optionally platform-scoped ("twitter:article"). Valid types: repo, image, post, video, comment, article, page, snippet'}}, 'platformMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'capturedAfter': {'type': 'string', 'description': 'Only bookmarks saved on/after this ISO date (inclusive)'}, 'capturedBefore': {'type': 'string', 'description': 'Only bookmarks saved before this ISO date (exclusive)'}, 'contentTypeMode': {'enum': ['include', 'exclude'], 'type': 'string'}}}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['archived', 'byContentType', 'byMonth', 'byPlatform', 'favorites', 'total', 'untagged', 'withNote'], 'properties': {'total': {'type': 'number'}, 'byMonth': {'type': 'object', 'description': 'Capture counts keyed by "YYYY-MM", newest first', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}, 'archived': {'type': 'number'}, 'untagged': {'type': 'number'}, 'withNote': {'type': 'number'}, 'favorites': {'type': 'number'}, 'byPlatform': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}, 'byContentType': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'number'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'state': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active'}, 'cursor': {'type': 'string', 'description': 'Pass the nextCursor value from the previous page to continue paging'}, 'filters': {'type': 'object', 'properties': {'note': {'type': 'array', 'items': {'enum': ['has-note', 'no-note'], 'type': 'string'}, 'description': '["has-note"] = only bookmarks with a user note'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'enum': ['image', 'video', 'any-media', 'text-only'], 'type': 'string'}, 'description': 'Media presence: "image"/"video" = has that type, "any-media" = has any, "text-only" = has none (not combinable with the others)'}, 'authors': {'type': 'array', 'items': {'type': 'string', 'minLength': 1, 'description': 'An author username ("naval"), optionally platform-scoped ("twitter:naval")'}}, 'tagMode': {'enum': ['include_any', 'include_all', 'exclude_any', 'exclude_all'], 'type': 'string', 'description': 'include_any = OR (default), include_all = AND, exclude_any = none of these tags, exclude_all = not all of them'}, 'favorite': {'type': 'array', 'items': {'enum': ['favorite', 'not-favorite'], 'type': 'string'}, 'description': '["favorite"] = only favorites; ["not-favorite"] = only non-favorites'}, 'untagged': {'type': 'boolean', 'description': 'true = only bookmarks with no tags at all'}, 'mediaMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'platforms': {'type': 'array', 'items': {'enum': ['github', 'instagram', 'reddit', 'tiktok', 'twitter', 'web', 'youtube'], 'type': 'string', 'description': 'Platform id — X/Twitter is "twitter"'}}, 'authorMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'contentTypes': {'type': 'array', 'items': {'type': 'string', 'description': 'A content type ("article"), optionally platform-scoped ("twitter:article"). Valid types: repo, image, post, video, comment, article, page, snippet'}}, 'platformMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'capturedAfter': {'type': 'string', 'description': 'Only bookmarks saved on/after this ISO date (inclusive)'}, 'capturedBefore': {'type': 'string', 'description': 'Only bookmarks saved before this ISO date (exclusive)'}, 'contentTypeMode': {'enum': ['include', 'exclude'], 'type': 'string'}}}, 'collectionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "List a saved collection's bookmarks: its stored filters are applied, with any explicit filters here overriding same-name ones"}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items', 'nextCursor', 'rankMode'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['archived', 'author', 'capturedAt', 'contentCreatedAt', 'contentType', 'favorite', 'id', 'media', 'mediaCount', 'platform', 'tags', 'text', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'text': {'type': 'string', 'description': 'Bounded plain-text snippet'}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['altText', 'ref', 'type'], 'properties': {'ref': {'type': 'string'}, 'type': {'type': 'string'}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'description': 'Lightweight refs usable with view_media'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Real title only; null when the source has none'}, 'author': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'archived': {'type': 'boolean'}, 'favorite': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'capturedAt': {'type': 'string'}, 'mediaCount': {'type': 'number'}, 'contentType': {'type': 'string'}, 'matchedMedia': {'type': 'object', 'required': ['altText', 'caption', 'height', 'ref', 'type', 'url', 'width'], 'properties': {'ref': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'caption': {'type': 'string'}}, 'additionalProperties': False}, 'contentCreatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'degraded': {'type': 'array', 'items': {'enum': ['semantic_unavailable', 'image_rank_unavailable'], 'type': 'string'}, 'description': 'Present when retrieval quality was reduced: semantic_unavailable = embedding failed (lexical-only results); image_rank_unavailable = no image captions, fell back to post ranking'}, 'rankMode': {'enum': ['post', 'image'], 'type': 'string'}, 'nextCursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'requestedRankMode': {'enum': ['post', 'image'], 'type': 'string', 'description': 'Present only when rankMode differs from what was requested'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collections'], 'properties': {'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['color', 'filters', 'icon', 'id', 'name', 'pinned', 'position'], 'properties': {'id': {'type': 'string'}, 'icon': {'type': 'string'}, 'name': {'type': 'string'}, 'color': {'type': 'string'}, 'pinned': {'type': 'boolean'}, 'filters': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'position': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tags'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'object', 'required': ['color', 'count', 'id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'color': {'type': 'string'}, 'count': {'type': 'number', 'description': 'Active bookmarks currently carrying this tag'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Collection id, required for update and delete'}, 'icon': {'type': 'string', 'description': 'A Stashr collection icon id'}, 'name': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Collection name, required for create'}, 'color': {'type': 'string', 'description': 'A Stashr collection color id'}, 'action': {'enum': ['create', 'update', 'delete'], 'type': 'string'}, 'pinned': {'type': 'boolean', 'description': 'Pin or unpin the collection in the sidebar (update only)'}, 'confirm': {'type': 'boolean', 'description': 'Must be true to delete a collection'}, 'filters': {'type': 'object', 'properties': {'note': {'type': 'array', 'items': {'enum': ['has-note', 'no-note'], 'type': 'string'}, 'description': '["has-note"] = only bookmarks with a user note'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'enum': ['image', 'video', 'any-media', 'text-only'], 'type': 'string'}, 'description': 'Media presence: "image"/"video" = has that type, "any-media" = has any, "text-only" = has none (not combinable with the others)'}, 'authors': {'type': 'array', 'items': {'type': 'string', 'minLength': 1, 'description': 'An author username ("naval"), optionally platform-scoped ("twitter:naval")'}}, 'tagMode': {'enum': ['include_any', 'include_all', 'exclude_any', 'exclude_all'], 'type': 'string', 'description': 'include_any = OR (default), include_all = AND, exclude_any = none of these tags, exclude_all = not all of them'}, 'favorite': {'type': 'array', 'items': {'enum': ['favorite', 'not-favorite'], 'type': 'string'}, 'description': '["favorite"] = only favorites; ["not-favorite"] = only non-favorites'}, 'untagged': {'type': 'boolean', 'description': 'true = only bookmarks with no tags at all'}, 'mediaMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'platforms': {'type': 'array', 'items': {'enum': ['github', 'instagram', 'reddit', 'tiktok', 'twitter', 'web', 'youtube'], 'type': 'string', 'description': 'Platform id — X/Twitter is "twitter"'}}, 'authorMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'contentTypes': {'type': 'array', 'items': {'type': 'string', 'description': 'A content type ("article"), optionally platform-scoped ("twitter:article"). Valid types: repo, image, post, video, comment, article, page, snippet'}}, 'platformMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'capturedAfter': {'type': 'string', 'description': 'Only bookmarks saved on/after this ISO date (inclusive)'}, 'capturedBefore': {'type': 'string', 'description': 'Only bookmarks saved before this ISO date (exclusive)'}, 'contentTypeMode': {'enum': ['include', 'exclude'], 'type': 'string'}}}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'deleted': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}, 'collection': {'type': 'object', 'required': ['color', 'filters', 'icon', 'id', 'name', 'pinned', 'position'], 'properties': {'id': {'type': 'string'}, 'icon': {'type': 'string'}, 'name': {'type': 'string'}, 'color': {'type': 'string'}, 'pinned': {'type': 'boolean'}, 'filters': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'position': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bookmark', 'created'], 'properties': {'created': {'type': 'boolean'}, 'bookmark': {'type': 'object', 'required': ['id', 'metadata', 'text', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string', 'description': 'Full bookmark body rendered as Markdown'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'required': ['archived', 'author', 'capturedAt', 'contentCreatedAt', 'contentType', 'favorite', 'media', 'note', 'platform', 'tags'], 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['altText', 'duration', 'height', 'ref', 'storedUrl', 'type', 'url', 'width'], 'properties': {'ref': {'type': 'string'}, 'url': {'type': 'string'}, 'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duration': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'storedUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'author': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'archived': {'type': 'boolean'}, 'favorite': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'capturedAt': {'type': 'string'}, 'contentType': {'type': 'string'}, 'contentCreatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'state': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'description': 'Which bookmarks to search; defaults to active only'}, 'cursor': {'type': 'string', 'description': 'Pass the nextCursor value from the previous page to continue paging'}, 'filters': {'type': 'object', 'properties': {'note': {'type': 'array', 'items': {'enum': ['has-note', 'no-note'], 'type': 'string'}, 'description': '["has-note"] = only bookmarks with a user note'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'enum': ['image', 'video', 'any-media', 'text-only'], 'type': 'string'}, 'description': 'Media presence: "image"/"video" = has that type, "any-media" = has any, "text-only" = has none (not combinable with the others)'}, 'authors': {'type': 'array', 'items': {'type': 'string', 'minLength': 1, 'description': 'An author username ("naval"), optionally platform-scoped ("twitter:naval")'}}, 'tagMode': {'enum': ['include_any', 'include_all', 'exclude_any', 'exclude_all'], 'type': 'string', 'description': 'include_any = OR (default), include_all = AND, exclude_any = none of these tags, exclude_all = not all of them'}, 'favorite': {'type': 'array', 'items': {'enum': ['favorite', 'not-favorite'], 'type': 'string'}, 'description': '["favorite"] = only favorites; ["not-favorite"] = only non-favorites'}, 'untagged': {'type': 'boolean', 'description': 'true = only bookmarks with no tags at all'}, 'mediaMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'platforms': {'type': 'array', 'items': {'enum': ['github', 'instagram', 'reddit', 'tiktok', 'twitter', 'web', 'youtube'], 'type': 'string', 'description': 'Platform id — X/Twitter is "twitter"'}}, 'authorMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'contentTypes': {'type': 'array', 'items': {'type': 'string', 'description': 'A content type ("article"), optionally platform-scoped ("twitter:article"). Valid types: repo, image, post, video, comment, article, page, snippet'}}, 'platformMode': {'enum': ['include', 'exclude'], 'type': 'string'}, 'capturedAfter': {'type': 'string', 'description': 'Only bookmarks saved on/after this ISO date (inclusive)'}, 'capturedBefore': {'type': 'string', 'description': 'Only bookmarks saved before this ISO date (exclusive)'}, 'contentTypeMode': {'enum': ['include', 'exclude'], 'type': 'string'}}}, 'rankMode': {'enum': ['post', 'image'], 'type': 'string', 'default': 'post', 'description': '"post" ranks whole bookmarks; "image" ranks individual stored images by caption for visual queries'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['nextCursor', 'rankMode', 'results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['archived', 'author', 'capturedAt', 'contentCreatedAt', 'contentType', 'favorite', 'id', 'media', 'mediaCount', 'platform', 'tags', 'text', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'text': {'type': 'string', 'description': 'Bounded plain-text snippet'}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['altText', 'ref', 'type'], 'properties': {'ref': {'type': 'string'}, 'type': {'type': 'string'}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'description': 'Lightweight refs usable with view_media'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Real title only; null when the source has none'}, 'author': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'archived': {'type': 'boolean'}, 'favorite': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'capturedAt': {'type': 'string'}, 'mediaCount': {'type': 'number'}, 'contentType': {'type': 'string'}, 'matchedMedia': {'type': 'object', 'required': ['altText', 'caption', 'height', 'ref', 'type', 'url', 'width'], 'properties': {'ref': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'caption': {'type': 'string'}}, 'additionalProperties': False}, 'contentCreatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'degraded': {'type': 'array', 'items': {'enum': ['semantic_unavailable', 'image_rank_unavailable'], 'type': 'string'}, 'description': 'Present when retrieval quality was reduced: semantic_unavailable = embedding failed (lexical-only results); image_rank_unavailable = no image captions, fell back to post ranking'}, 'rankMode': {'enum': ['post', 'image'], 'type': 'string', 'description': 'The ranking that actually ran'}, 'nextCursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'requestedRankMode': {'enum': ['post', 'image'], 'type': 'string', 'description': 'Present only when rankMode differs from what was requested'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'note': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}]}, 'tags': {'type': 'object', 'properties': {'add': {'type': 'array', 'items': {'type': 'string'}}, 'set': {'type': 'array', 'items': {'type': 'string'}}, 'remove': {'type': 'array', 'items': {'type': 'string'}}}}, 'archived': {'type': 'boolean'}, 'isFavorite': {'type': 'boolean'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'metadata', 'text', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string', 'description': 'Full bookmark body rendered as Markdown'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'required': ['archived', 'author', 'capturedAt', 'contentCreatedAt', 'contentType', 'favorite', 'media', 'note', 'platform', 'tags'], 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['altText', 'duration', 'height', 'ref', 'storedUrl', 'type', 'url', 'width'], 'properties': {'ref': {'type': 'string'}, 'url': {'type': 'string'}, 'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'altText': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'duration': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'storedUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'author': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'archived': {'type': 'boolean'}, 'favorite': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'capturedAt': {'type': 'string'}, 'contentType': {'type': 'string'}, 'contentCreatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'refs'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'refs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'maxItems': 4, 'minItems': 1}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bookmarkId', 'failures', 'images'], 'properties': {'images': {'type': 'array', 'items': {'type': 'object', 'required': ['byteLength', 'height', 'mimeType', 'ref', 'width'], 'properties': {'ref': {'type': 'string'}, 'width': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'mimeType': {'type': 'string'}, 'byteLength': {'type': 'number'}}, 'additionalProperties': False}}, 'failures': {'type': 'array', 'items': {'type': 'object', 'required': ['message', 'ref'], 'properties': {'ref': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'bookmarkId': {'type': 'string'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
concordance
Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…
canton-ccpedia
Searches and explains Canton Network and Daml documentation, governance proposals, forums, code examples, APIs, releases, and eco…
BNM Data Shop
Sells access to cached official reports, enforcement orders, regulatory documents, inspection records, and other public-source te…
api-evangelist
Provides API governance analysis, OpenAPI overlays and version diffs, security-sensitive field classification, code samples, matu…
OpenHelvetia Gateway
Provides sourced access to Swiss federal legislation and political data, including law metadata, versions, amendments, citations,…
website-search
Provides security article search and structured guidance, templates, frameworks, and review criteria for incident response, threa…
The Ainglish Project
Maintains a measured, auditable register of language constructs, proposals, evidence, adoption, contributors, protocols, and rati…
Torah Library
Provides searchable Jewish texts, commentaries, source sheets, dictionaries, manuscripts, calendars, learning schedules, parasha …