{"name":"io.github.adityaarsharma/pickle","slug":"adityaarsharma-pickle","title":"Pickle","description":"Free, local MCP server that audits ClickUp, Slack & Teams for work that slipped through.","url":"https://mcp.market/server/adityaarsharma-pickle","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":25,"stars":3,"forks":0,"downloads_week":61,"last_push_at":"2026-08-14T16:16:50.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/adityaarsharma/pickle","website":null,"version":"1.1.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"pickle-mcp","version":"1.1.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your own ClickUp personal API token (starts with pk_). Optional — set it to enable the 9 ClickUp audit patterns.","isSecret":true,"name":"CLICKUP_API_KEY"},{"description":"Your own Slack user OAuth token (starts with xoxp-). Optional — set it to enable the cross-tool Slack patterns.","isSecret":true,"name":"SLACK_TOKEN"},{"description":"Your own Microsoft Graph access token. Optional — set it to enable the Microsoft Teams patterns.","isSecret":true,"name":"TEAMS_TOKEN"}]}],"tools":[{"name":"clickup_add_task_watcher","description":"Add a watcher to a task.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_create_doc","description":"Create a new Doc in the workspace.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_doc_page","description":"Create a new page inside an existing Doc.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_list","description":"Create a list. Provide EITHER folder_id OR space_id (folderless).","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_list_comment","description":"Create a comment on a list (list-level discussion).","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_reminder","description":"Create a reminder for a user.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_space","description":"Create a new space in the workspace.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_task","description":"Create a task in a list.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_task_comment","description":"Create a comment on a task.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_create_threaded_comment","description":"Create a reply in a comment thread.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_delete_chat_message","description":"Delete a chat message.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_delete_comment","description":"Delete a comment.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_delete_task","description":"Permanently delete a task.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_filter_tasks","description":"Filter workspace tasks for audits. Scoped to the audit time window (default last 7 days; pass any window). Pass `time_window` ('1h'|'6h'|'1d'|'3d'|'7d') to scope the audit. Supports assignees, watchers, dates, search text, statuses, tags, list/folder/space filters, and pagination. Use response_format='summary' (default) for compact results.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_find_member_by_name","description":"Find a workspace member by case-insensitive substring on username or email.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_chat_channel","description":"Get details of a single chat channel by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_chat_channel_messages","description":"List messages from a ClickUp chat channel (v3). Supports limit and cursor pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_chat_channels","description":"List chat channels (including DMs and group DMs) for the workspace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_chat_message_replies","description":"Get threaded replies for a specific chat message (v3).","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_doc","description":"Get a single Doc by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_doc_pages","description":"Get all pages inside a Doc.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_folderless_lists","description":"Get all folderless (space-level) lists inside a space.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_list","description":"Get a single list by ID (includes task statuses, custom fields info).","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_list_comments","description":"Get all comments on a list (list-level, not task comments).","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_list_custom_fields","description":"Get all custom fields defined on a list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_list_tasks","description":"Get tasks in a specific list, scoped to the audit time window (default last 7 days; pass any window). Supports pagination, filters, custom fields. Use the `time_window` parameter ('1h'|'6h'|'1d'|'3d'|'7d') to scope the audit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_lists_in_folder","description":"Get all lists inside a folder.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_space","description":"Get a single space by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_task","description":"Get a single task by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_task_comments","description":"Get all comments on a task.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_task_members","description":"Get all members assigned to or watching a task.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_threaded_comments","description":"Get all threaded replies for a comment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_workspace_hierarchy","description":"Return the full tree: team → spaces → folders → lists (plus folderless lists).","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_get_workspace_members","description":"Return all members of a ClickUp workspace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_react_to_chat_message","description":"Add an emoji reaction to a chat message.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_remove_task_watcher","description":"Remove a watcher from a task.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_resolve_assignees","description":"Resolve names/emails/IDs to numeric ClickUp user IDs. Numeric values pass through.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_search_docs","description":"Search / list Docs in the workspace. Supports text search and pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_search_reminders","description":"List reminders for a user or the whole workspace. Requires ClickUp Business plan or above.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_send_chat_message","description":"Send a message to a ClickUp chat channel (v3).","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_send_chat_reply","description":"Send a reply in a chat message thread (v3).","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_set_task_custom_field","description":"Set (or update) a custom field value on a task.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clickup_update_chat_message","description":"Edit the content of an existing chat message.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_update_comment","description":"Edit an existing comment's text.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_update_doc_page","description":"Update the name or content of a Doc page.","write_action":true,"price_micros":0,"input_schema":null},{"name":"clickup_update_task","description":"Update fields on an existing task.","write_action":true,"price_micros":0,"input_schema":null},{"name":"pickle_setup","description":"FIRST-RUN SETUP for Pickle. Call this tool IMMEDIATELY whenever the user says any of: \"Pickle Start\" / \"Pickle start\" / \"Pickle set me up\" / \"setup Pickle\" / \"set up Pickle\" / \"connect Pickle\" / \"how do I get started with Pickle\" / \"Pickle set me up for ClickUp|Slack|Teams\". It returns step-by-step instructions for getting the right token(s) for ClickUp, Slack, or Microsoft Teams — and a checklist","write_action":false,"price_micros":0,"input_schema":null},{"name":"slack_get_channel_history","description":"Get messages from a Slack channel scoped to the audit time window (default last 7 days; pass any window). Returns ts, user, text, reply_count, reactions. Pass `time_window` ('1h'|'6h'|'1d'|'3d'|'7d').","write_action":false,"price_micros":0,"input_schema":null},{"name":"slack_list_channels","description":"List Slack public + private channels the authenticated user can see. Lightweight metadata only (id, name, is_private, num_members, topic). Useful for picking which channel to audit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slack_list_dms","description":"List the authenticated user's open direct messages (1:1 and group DMs / 'mpim'). Returns id, type, user(s), last activity. Use slack_get_channel_history with the DM id to read messages.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slack_list_users","description":"List active members of the Slack workspace. Returns id, name, real_name, email, is_bot, is_deleted. Useful for resolving user IDs in messages to readable names during audits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"slack_search_messages","description":"Full-text search Slack messages (user token only, search:read scope required). Returns ranked matches with channel, user, ts, text. Useful for audits like 'find every message containing shipping today' or '@mention X without follow-up'.","write_action":false,"price_micros":0,"input_schema":null},{"name":"teams_get_channel_messages","description":"Get messages in a Teams channel scoped to the audit time window (default 7d; pass any window). Returns id, from, body, createdDateTime, replies count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"teams_get_chat_messages","description":"Get messages in a Teams chat (DM or group) scoped to the audit window. Returns id, from, body, createdDateTime.","write_action":false,"price_micros":0,"input_schema":null},{"name":"teams_list_channels","description":"List channels within a Microsoft Teams team. Returns id, displayName, description, membershipType.","write_action":false,"price_micros":0,"input_schema":null},{"name":"teams_list_chats","description":"List the authenticated user's 1:1 and group chats in Microsoft Teams. Returns id, chatType, topic, lastUpdatedDateTime.","write_action":false,"price_micros":0,"input_schema":null},{"name":"teams_list_teams","description":"List Microsoft Teams the authenticated user has joined. Returns id, displayName, description. Use this first to pick a team for channel audits.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-25T17:21:21.544Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:21:21.502Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 42 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"pickle-mcp","version":"1.1.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-22T07:40:29.672Z","repositoryUrl":"git+https://github.com/adityaarsharma/pickle.git","weeklyDownloads":61}],"repo":{"found":true,"owner":"adityaarsharma","repo":"pickle","archived":false,"pushedAt":"2026-08-14T16:16:50Z","stars":3,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/70995038?v=4","ownerCreatedAt":"2020-09-09T04:05:55Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/70995038?v=4&s=128","source":"github"},"presence":{"stars":3,"forks":0,"downloadsWeek":61,"license":"MIT","lastPushAt":"2026-08-14T16:16:50.000Z","score":25}}}},"grade_history":[],"reviews":[]}