clippy
Ce que fait ce MCP
Creates shared rooms for agents and people to store, retrieve, update, and receive notifications for text and images.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['room'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link).'}, 'password': {'type': 'string', 'description': 'Required only if the room is password-protected and you are not using owner_token.'}, 'owner_token': {'type': 'string', 'description': 'Optional. The room owner_token; bypasses the password on a locked room.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'cleared'], 'properties': {'code': {'type': 'string', 'description': 'The room code that was cleared.'}, 'cleared': {'type': 'integer', 'description': 'Number of items that were deleted.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'password': {'type': 'string', 'description': 'Optional. Lock the new room with this password so only holders of the password (or the owner_token) can read/write it.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'url', 'owner_token', 'locked'], 'properties': {'url': {'type': 'string', 'description': 'Human-shareable URL that opens the room on any device.'}, 'code': {'type': 'string', 'description': 'The new 6-character room code.'}, 'locked': {'type': 'boolean', 'description': 'Whether the room is password-protected.'}, 'owner_token': {'type': 'string', 'description': 'Private token granting password control over the room. Keep secret.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room', 'item_id'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link).'}, 'item_id': {'type': 'string', 'description': 'The item id (UUID) to delete.'}, 'password': {'type': 'string', 'description': 'Required only if the room is password-protected and you are not using owner_token.'}, 'owner_token': {'type': 'string', 'description': 'Optional. The room owner_token; bypasses the password on a locked room.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'deleted'], 'properties': {'code': {'type': 'string', 'description': 'The room code that was targeted.'}, 'deleted': {'type': 'boolean', 'description': 'Whether an item was actually deleted (false if it did not exist).'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link).'}, 'limit': {'type': 'integer', 'description': 'Optional. Maximum number of items to return (1–100). Defaults to 100.'}, 'since': {'type': 'integer', 'description': 'Optional. Return only items created strictly after this Unix timestamp in milliseconds. Use the `now` value from a previous call to poll incrementally.'}, 'password': {'type': 'string', 'description': 'Required only if the room is password-protected and you are not using owner_token.'}, 'owner_token': {'type': 'string', 'description': 'Optional. The room owner_token; bypasses the password on a locked room.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'locked', 'count', 'items', 'now'], 'properties': {'now': {'type': 'integer', 'description': 'Server time in Unix milliseconds; pass as `since` next call to poll incrementally.'}, 'code': {'type': 'string', 'description': 'The room code that was read.'}, 'count': {'type': 'integer', 'description': 'Number of items returned.'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'device', 'edited', 'hasImage', 'imageCount'], 'properties': {'id': {'type': 'string', 'description': 'The item id (UUID).'}, 'text': {'type': ['string', 'null'], 'description': 'The text content, or null for image-only items.'}, 'device': {'type': 'string', 'description': 'Label for who posted the item.'}, 'edited': {'type': 'boolean', 'description': 'Whether the item was edited after it was created.'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute URL to fetch the image bytes.'}, 'mime': {'type': 'string', 'description': 'Image MIME type.'}, 'size': {'type': ['integer', 'null'], 'description': 'Image size in bytes.'}, 'position': {'type': 'integer', 'description': '0-based position in the gallery.'}}}, 'description': 'Attached images, ordered by position. Present only when hasImage is true.'}, 'hasImage': {'type': 'boolean', 'description': 'Whether the item has one or more images.'}, 'imageUrl': {'type': 'string', 'description': 'Legacy convenience: URL of the first image. Present only when hasImage is true.'}, 'createdAt': {'type': ['integer', 'null'], 'description': 'Creation time, Unix milliseconds.'}, 'imageMime': {'type': 'string', 'description': 'Legacy convenience: MIME type of the first image.'}, 'imageSize': {'type': ['integer', 'null'], 'description': 'Legacy convenience: size of the first image in bytes.'}, 'updatedAt': {'type': ['integer', 'null'], 'description': 'Last-update time, Unix milliseconds.'}, 'imageCount': {'type': 'integer', 'description': 'Number of images attached to the item.'}}}, 'description': 'The matching items, newest first.'}, 'locked': {'type': 'boolean', 'description': 'Whether the room is password-protected.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link).'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'exists', 'locked', 'itemCount', 'url'], 'properties': {'url': {'type': 'string', 'description': 'Human-shareable URL for the room.'}, 'code': {'type': 'string', 'description': 'The room code that was checked.'}, 'exists': {'type': 'boolean', 'description': 'Whether the room currently exists.'}, 'locked': {'type': 'boolean', 'description': 'Whether the room is password-protected.'}, 'itemCount': {'type': 'integer', 'description': 'Number of items currently in the room.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room', 'owner_token'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link).'}, 'password': {'type': 'string', 'description': 'The new password to lock the room with. Pass an empty string to remove the password and make the room open.'}, 'owner_token': {'type': 'string', 'description': 'The room owner_token proving you own this room. Required.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'locked'], 'properties': {'code': {'type': 'string', 'description': 'The room code whose lock state changed.'}, 'locked': {'type': 'boolean', 'description': 'Whether the room is now password-protected.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room', 'images'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link). The room is created if new.'}, 'text': {'type': 'string', 'description': 'Optional caption to store alongside the image(s). Up to 200,000 characters.'}, 'device': {'type': 'string', 'description': 'Optional short label for who is posting (max 64 chars). Defaults to "AI Agent".'}, 'images': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'One or more images, each a base64-encoded PNG/JPEG/GIF/WEBP or a data: URI (e.g. "data:image/png;base64,iVBOR..."). Up to 10 images, 10 MB each.'}, 'password': {'type': 'string', 'description': 'Required only if the room is password-protected and you are not using owner_token.'}, 'owner_token': {'type': 'string', 'description': 'Optional. The room owner_token; bypasses the password on a locked room.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'url', 'item'], 'properties': {'url': {'type': 'string', 'description': 'Human-shareable URL that opens the room on any device.'}, 'code': {'type': 'string', 'description': 'The room code the image was stored in.'}, 'item': {'type': 'object', 'required': ['id', 'device', 'edited', 'hasImage', 'imageCount'], 'properties': {'id': {'type': 'string', 'description': 'The item id (UUID).'}, 'text': {'type': ['string', 'null'], 'description': 'The text content, or null for image-only items.'}, 'device': {'type': 'string', 'description': 'Label for who posted the item.'}, 'edited': {'type': 'boolean', 'description': 'Whether the item was edited after it was created.'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute URL to fetch the image bytes.'}, 'mime': {'type': 'string', 'description': 'Image MIME type.'}, 'size': {'type': ['integer', 'null'], 'description': 'Image size in bytes.'}, 'position': {'type': 'integer', 'description': '0-based position in the gallery.'}}}, 'description': 'Attached images, ordered by position. Present only when hasImage is true.'}, 'hasImage': {'type': 'boolean', 'description': 'Whether the item has one or more images.'}, 'imageUrl': {'type': 'string', 'description': 'Legacy convenience: URL of the first image. Present only when hasImage is true.'}, 'createdAt': {'type': ['integer', 'null'], 'description': 'Creation time, Unix milliseconds.'}, 'imageMime': {'type': 'string', 'description': 'Legacy convenience: MIME type of the first image.'}, 'imageSize': {'type': ['integer', 'null'], 'description': 'Legacy convenience: size of the first image in bytes.'}, 'updatedAt': {'type': ['integer', 'null'], 'description': 'Last-update time, Unix milliseconds.'}, 'imageCount': {'type': 'integer', 'description': 'Number of images attached to the item.'}}, 'description': 'The stored item, including image URLs.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room', 'text'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link). The room is created if new.'}, 'text': {'type': 'string', 'description': 'The text content to store (a snippet, link, message, etc.). Up to 200,000 characters.'}, 'device': {'type': 'string', 'description': 'Optional short label for who is posting (max 64 chars). Defaults to "AI Agent" so humans can tell agent posts apart.'}, 'password': {'type': 'string', 'description': 'Required only if the room is password-protected and you are not using owner_token.'}, 'owner_token': {'type': 'string', 'description': 'Optional. The room owner_token; bypasses the password on a locked room.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'url', 'item'], 'properties': {'url': {'type': 'string', 'description': 'Human-shareable URL that opens the room on any device.'}, 'code': {'type': 'string', 'description': 'The room code the item was stored in.'}, 'item': {'type': 'object', 'required': ['id', 'device', 'edited', 'hasImage', 'imageCount'], 'properties': {'id': {'type': 'string', 'description': 'The item id (UUID).'}, 'text': {'type': ['string', 'null'], 'description': 'The text content, or null for image-only items.'}, 'device': {'type': 'string', 'description': 'Label for who posted the item.'}, 'edited': {'type': 'boolean', 'description': 'Whether the item was edited after it was created.'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute URL to fetch the image bytes.'}, 'mime': {'type': 'string', 'description': 'Image MIME type.'}, 'size': {'type': ['integer', 'null'], 'description': 'Image size in bytes.'}, 'position': {'type': 'integer', 'description': '0-based position in the gallery.'}}}, 'description': 'Attached images, ordered by position. Present only when hasImage is true.'}, 'hasImage': {'type': 'boolean', 'description': 'Whether the item has one or more images.'}, 'imageUrl': {'type': 'string', 'description': 'Legacy convenience: URL of the first image. Present only when hasImage is true.'}, 'createdAt': {'type': ['integer', 'null'], 'description': 'Creation time, Unix milliseconds.'}, 'imageMime': {'type': 'string', 'description': 'Legacy convenience: MIME type of the first image.'}, 'imageSize': {'type': ['integer', 'null'], 'description': 'Legacy convenience: size of the first image in bytes.'}, 'updatedAt': {'type': ['integer', 'null'], 'description': 'Last-update time, Unix milliseconds.'}, 'imageCount': {'type': 'integer', 'description': 'Number of images attached to the item.'}}, 'description': 'The stored item.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['room', 'item_id', 'text'], 'properties': {'room': {'type': 'string', 'description': 'The 6-character room code (or a Clippy share URL / #CODE link).'}, 'text': {'type': 'string', 'description': 'The new text. For a text-only item this cannot be empty — delete it instead.'}, 'item_id': {'type': 'string', 'description': 'The item id (UUID) to edit, as returned in the `id` field of a stored/listed item.'}, 'password': {'type': 'string', 'description': 'Required only if the room is password-protected and you are not using owner_token.'}, 'owner_token': {'type': 'string', 'description': 'Optional. The room owner_token; bypasses the password on a locked room.'}}}
Schéma de sortie
{'type': 'object', 'required': ['code', 'item'], 'properties': {'code': {'type': 'string', 'description': 'The room code containing the item.'}, 'item': {'type': 'object', 'required': ['id', 'device', 'edited', 'hasImage', 'imageCount'], 'properties': {'id': {'type': 'string', 'description': 'The item id (UUID).'}, 'text': {'type': ['string', 'null'], 'description': 'The text content, or null for image-only items.'}, 'device': {'type': 'string', 'description': 'Label for who posted the item.'}, 'edited': {'type': 'boolean', 'description': 'Whether the item was edited after it was created.'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute URL to fetch the image bytes.'}, 'mime': {'type': 'string', 'description': 'Image MIME type.'}, 'size': {'type': ['integer', 'null'], 'description': 'Image size in bytes.'}, 'position': {'type': 'integer', 'description': '0-based position in the gallery.'}}}, 'description': 'Attached images, ordered by position. Present only when hasImage is true.'}, 'hasImage': {'type': 'boolean', 'description': 'Whether the item has one or more images.'}, 'imageUrl': {'type': 'string', 'description': 'Legacy convenience: URL of the first image. Present only when hasImage is true.'}, 'createdAt': {'type': ['integer', 'null'], 'description': 'Creation time, Unix milliseconds.'}, 'imageMime': {'type': 'string', 'description': 'Legacy convenience: MIME type of the first image.'}, 'imageSize': {'type': ['integer', 'null'], 'description': 'Legacy convenience: size of the first image in bytes.'}, 'updatedAt': {'type': ['integer', 'null'], 'description': 'Last-update time, Unix milliseconds.'}, 'imageCount': {'type': 'integer', 'description': 'Number of images attached to the item.'}}, 'description': 'The updated item.'}}}
Modifications récentes des outils
Serveurs MCP similaires
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
Agent Commons
Provides rooms, threads, messaging, file sharing, invitations, subscriptions, search, and resumable events for agent collaboratio…
Dock
Provides collaborative workspaces with tables, documents, HTML surfaces, files, formulas, comments, activity tracking, agent mess…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Kythene
Provides shared team memory, collections, wikis, artifacts, comments, approvals, review workflows, presence, and controlled shari…
northreach
Supports direct agent questions and answers, shared memories, broadcasts, polls, compute jobs, governance, and persistent network…
PingRoom
Sends mobile notifications, asks questions, requests approvals, and coordinates human handoffs through rooms and live status upda…