{"slug":"monday-automation","title":"monday-automation","summary":"Automate Monday.com work management including boards, items, columns, groups, subitems, and updates via Rube MCP (Composio). Always search tools first for current schemas.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-14T20:53:40.738159Z","repo":{"url":"https://github.com/davepoon/buildwithclaude","stars":3494,"forks":514,"license":"MIT","updatedAt":"2026-09-17T11:58:48Z"},"bodyHtml":"<hr>\n<h2>name: monday-automation\ndescription: Automate Monday.com work management including boards, items, columns, groups, subitems, and updates via Rube MCP (Composio). Always search tools first for current schemas.\nrequires:\nmcp: [rube]\ncategory: project-management</h2>\n<h1>Monday.com Automation via Rube MCP</h1>\n<p>Automate Monday.com work management workflows including board creation, item management, column value updates, group organization, subitems, and update/comment threads through Composio's Monday toolkit.</p>\n<p><strong>Toolkit docs</strong>: <a href=\"https://composio.dev/toolkits/monday\">composio.dev/toolkits/monday</a></p>\n<h2>Prerequisites</h2>\n<ul>\n<li>Rube MCP must be connected (RUBE_SEARCH_TOOLS available)</li>\n<li>Active Monday.com connection via <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>monday</code></li>\n<li>Always call <code>RUBE_SEARCH_TOOLS</code> first to get current tool schemas</li>\n</ul>\n<h2>Setup</h2>\n<p><strong>Get Rube MCP</strong>: Add <code>https://rube.app/mcp</code> as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.</p>\n<ol>\n<li>Verify Rube MCP is available by confirming <code>RUBE_SEARCH_TOOLS</code> responds</li>\n<li>Call <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>monday</code></li>\n<li>If connection is not ACTIVE, follow the returned auth link to complete Monday.com OAuth</li>\n<li>Confirm connection status shows ACTIVE before running any workflows</li>\n</ol>\n<h2>Core Workflows</h2>\n<h3>1. Create and Manage Boards</h3>\n<p><strong>When to use</strong>: User wants to create a new board, list existing boards, or set up workspace structure.</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>MONDAY_GET_WORKSPACES</code> - List available workspaces and resolve workspace ID [Prerequisite]</li>\n<li><code>MONDAY_LIST_BOARDS</code> - List existing boards to check for duplicates [Optional]</li>\n<li><code>MONDAY_CREATE_BOARD</code> - Create a new board with name, kind, and workspace [Required]</li>\n<li><code>MONDAY_CREATE_COLUMN</code> - Add columns to the new board [Optional]</li>\n<li><code>MONDAY_CREATE_GROUP</code> - Add groups to organize items [Optional]</li>\n<li><code>MONDAY_BOARDS</code> - Retrieve detailed board metadata [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>board_name</code>: Name for the new board (required)</li>\n<li><code>board_kind</code>: \"public\", \"private\", or \"share\" (required)</li>\n<li><code>workspace_id</code>: Numeric workspace ID; omit for default workspace</li>\n<li><code>folder_id</code>: Folder ID; must be within <code>workspace_id</code> if both provided</li>\n<li><code>template_id</code>: ID of accessible template to clone</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>board_kind</code> is required and must be one of: \"public\", \"private\", \"share\"</li>\n<li>If both <code>workspace_id</code> and <code>folder_id</code> are provided, the folder must exist within that workspace</li>\n<li><code>template_id</code> must reference a template the authenticated user can access</li>\n<li>Board IDs are large integers; always use the exact value from API responses</li>\n</ul>\n<h3>2. Create and Manage Items</h3>\n<p><strong>When to use</strong>: User wants to add tasks/items to a board, list existing items, or move items between groups.</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>MONDAY_LIST_BOARDS</code> - Resolve board name to board ID [Prerequisite]</li>\n<li><code>MONDAY_LIST_GROUPS</code> - List groups on the board to get group_id [Prerequisite]</li>\n<li><code>MONDAY_LIST_COLUMNS</code> - Get column IDs and types for setting values [Prerequisite]</li>\n<li><code>MONDAY_CREATE_ITEM</code> - Create a new item with name and column values [Required]</li>\n<li><code>MONDAY_LIST_BOARD_ITEMS</code> - List all items on the board [Optional]</li>\n<li><code>MONDAY_MOVE_ITEM_TO_GROUP</code> - Move an item to a different group [Optional]</li>\n<li><code>MONDAY_ITEMS_PAGE</code> - Paginated item retrieval with filtering [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>board_id</code>: Board ID (required, integer)</li>\n<li><code>item_name</code>: Item name, max 256 characters (required)</li>\n<li><code>group_id</code>: Group ID string to place the item in (optional)</li>\n<li><code>column_values</code>: JSON object or string mapping column IDs to values</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>column_values</code> must use column IDs (not titles); get them from <code>MONDAY_LIST_COLUMNS</code></li>\n<li>Column value formats vary by type: status uses <code>{\"index\": 0}</code> or <code>{\"label\": \"Done\"}</code>, date uses <code>{\"date\": \"YYYY-MM-DD\"}</code>, people uses <code>{\"personsAndTeams\": [{\"id\": 123, \"kind\": \"person\"}]}</code></li>\n<li><code>item_name</code> has a 256-character maximum</li>\n<li>Subitem boards are NOT supported by <code>MONDAY_CREATE_ITEM</code>; use GraphQL via <code>MONDAY_CREATE_OBJECT</code></li>\n</ul>\n<h3>3. Update Item Column Values</h3>\n<p><strong>When to use</strong>: User wants to change status, date, text, or other column values on existing items.</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>MONDAY_LIST_COLUMNS</code> or <code>MONDAY_COLUMNS</code> - Get column IDs and types [Prerequisite]</li>\n<li><code>MONDAY_LIST_BOARD_ITEMS</code> or <code>MONDAY_ITEMS_PAGE</code> - Find the target item ID [Prerequisite]</li>\n<li><code>MONDAY_CHANGE_SIMPLE_COLUMN_VALUE</code> - Update text, status, or dropdown with a string value [Required]</li>\n<li><code>MONDAY_UPDATE_ITEM</code> - Update complex column types (timeline, people, date) with JSON [Required]</li>\n</ol>\n<p><strong>Key parameters for MONDAY_CHANGE_SIMPLE_COLUMN_VALUE</strong>:</p>\n<ul>\n<li><code>board_id</code>: Board ID (integer, required)</li>\n<li><code>item_id</code>: Item ID (integer, required)</li>\n<li><code>column_id</code>: Column ID string (required)</li>\n<li><code>value</code>: Simple string value (e.g., \"Done\", \"Working on it\")</li>\n<li><code>create_labels_if_missing</code>: true to auto-create status/dropdown labels (default true)</li>\n</ul>\n<p><strong>Key parameters for MONDAY_UPDATE_ITEM</strong>:</p>\n<ul>\n<li><code>board_id</code>: Board ID (integer, required)</li>\n<li><code>item_id</code>: Item ID (integer, required)</li>\n<li><code>column_id</code>: Column ID string (required)</li>\n<li><code>value</code>: JSON object matching the column type schema</li>\n<li><code>create_labels_if_missing</code>: false by default; set true for status/dropdown</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Use <code>MONDAY_CHANGE_SIMPLE_COLUMN_VALUE</code> for simple text/status/dropdown updates (string value)</li>\n<li>Use <code>MONDAY_UPDATE_ITEM</code> for complex types like timeline, people, date (JSON value)</li>\n<li>Column IDs are lowercase strings with underscores (e.g., \"status_1\", \"date_2\", \"text\"); get them from <code>MONDAY_LIST_COLUMNS</code></li>\n<li>Status values can be set by label name (\"Done\") or index number (\"1\")</li>\n<li><code>create_labels_if_missing</code> defaults differ: true for CHANGE_SIMPLE, false for UPDATE_ITEM</li>\n</ul>\n<h3>4. Work with Groups and Board Structure</h3>\n<p><strong>When to use</strong>: User wants to organize items into groups, add columns, or inspect board structure.</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>MONDAY_LIST_BOARDS</code> - Resolve board ID [Prerequisite]</li>\n<li><code>MONDAY_LIST_GROUPS</code> - List all groups on a board [Required]</li>\n<li><code>MONDAY_CREATE_GROUP</code> - Create a new group [Optional]</li>\n<li><code>MONDAY_LIST_COLUMNS</code> or <code>MONDAY_COLUMNS</code> - Inspect column structure [Required]</li>\n<li><code>MONDAY_CREATE_COLUMN</code> - Add a new column to the board [Optional]</li>\n<li><code>MONDAY_MOVE_ITEM_TO_GROUP</code> - Reorganize items across groups [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>board_id</code>: Board ID (required for all group/column operations)</li>\n<li><code>group_name</code>: Name for new group (CREATE_GROUP)</li>\n<li><code>column_type</code>: Must be a valid GraphQL enum token in snake_case (e.g., \"status\", \"text\", \"long_text\", \"numbers\", \"date\", \"dropdown\", \"people\")</li>\n<li><code>title</code>: Column display title</li>\n<li><code>defaults</code>: JSON string for status/dropdown labels, e.g., <code>'{\"labels\": [\"To Do\", \"In Progress\", \"Done\"]}'</code></li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>column_type</code> must be exact snake_case values; \"person\" is NOT valid, use \"people\"</li>\n<li>Group IDs are strings (e.g., \"topics\", \"new_group_12345\"), not integers</li>\n<li><code>MONDAY_COLUMNS</code> accepts an array of <code>board_ids</code> and returns column metadata including settings</li>\n<li><code>MONDAY_LIST_COLUMNS</code> is simpler and takes a single <code>board_id</code></li>\n</ul>\n<h3>5. Manage Subitems and Updates</h3>\n<p><strong>When to use</strong>: User wants to view subitems of a task or add comments/updates to items.</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>MONDAY_LIST_BOARD_ITEMS</code> - Find parent item IDs [Prerequisite]</li>\n<li><code>MONDAY_LIST_SUBITEMS_BY_PARENT</code> - Retrieve subitems with column values [Required]</li>\n<li><code>MONDAY_CREATE_UPDATE</code> - Add a comment/update to an item [Optional]</li>\n<li><code>MONDAY_CREATE_OBJECT</code> - Create subitems via GraphQL mutation [Optional]</li>\n</ol>\n<p><strong>Key parameters for MONDAY_LIST_SUBITEMS_BY_PARENT</strong>:</p>\n<ul>\n<li><code>parent_item_ids</code>: Array of parent item IDs (integer array, required)</li>\n<li><code>include_column_values</code>: true to include column data (default true)</li>\n<li><code>include_parent_fields</code>: true to include parent item info (default true)</li>\n</ul>\n<p><strong>Key parameters for MONDAY_CREATE_OBJECT</strong> (GraphQL):</p>\n<ul>\n<li><code>query</code>: Full GraphQL mutation string</li>\n<li><code>variables</code>: Optional variables object</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Subitems can only be queried through their parent items</li>\n<li>To create subitems, use <code>MONDAY_CREATE_OBJECT</code> with a <code>create_subitem</code> GraphQL mutation</li>\n<li><code>MONDAY_CREATE_UPDATE</code> is for adding comments/updates to items (Monday's \"updates\" feature), not for modifying item values</li>\n<li><code>MONDAY_CREATE_OBJECT</code> is a raw GraphQL endpoint; ensure correct mutation syntax</li>\n</ul>\n<h2>Common Patterns</h2>\n<h3>ID Resolution</h3>\n<p>Always resolve display names to IDs before operations:</p>\n<ul>\n<li><strong>Board name -&gt; board_id</strong>: <code>MONDAY_LIST_BOARDS</code> and match by name</li>\n<li><strong>Group name -&gt; group_id</strong>: <code>MONDAY_LIST_GROUPS</code> with <code>board_id</code></li>\n<li><strong>Column title -&gt; column_id</strong>: <code>MONDAY_LIST_COLUMNS</code> with <code>board_id</code></li>\n<li><strong>Workspace name -&gt; workspace_id</strong>: <code>MONDAY_GET_WORKSPACES</code> and match by name</li>\n<li><strong>Item name -&gt; item_id</strong>: <code>MONDAY_LIST_BOARD_ITEMS</code> or <code>MONDAY_ITEMS_PAGE</code></li>\n</ul>\n<h3>Pagination</h3>\n<p>Monday.com uses cursor-based pagination for items:</p>\n<ul>\n<li><code>MONDAY_ITEMS_PAGE</code> returns a <code>cursor</code> in the response for the next page</li>\n<li>Pass the <code>cursor</code> to the next call; <code>board_id</code> and <code>query_params</code> are ignored when cursor is provided</li>\n<li>Cursors are cached for 60 minutes</li>\n<li>Maximum <code>limit</code> is 500 per page</li>\n<li><code>MONDAY_LIST_BOARDS</code> and <code>MONDAY_GET_WORKSPACES</code> use page-based pagination with <code>page</code> and <code>limit</code></li>\n</ul>\n<h3>Column Value Formatting</h3>\n<p>Different column types require different value formats:</p>\n<ul>\n<li><strong>Status</strong>: <code>{\"index\": 0}</code> or <code>{\"label\": \"Done\"}</code> or simple string \"Done\"</li>\n<li><strong>Date</strong>: <code>{\"date\": \"YYYY-MM-DD\"}</code></li>\n<li><strong>People</strong>: <code>{\"personsAndTeams\": [{\"id\": 123, \"kind\": \"person\"}]}</code></li>\n<li><strong>Text/Numbers</strong>: Plain string or number</li>\n<li><strong>Timeline</strong>: <code>{\"from\": \"YYYY-MM-DD\", \"to\": \"YYYY-MM-DD\"}</code></li>\n</ul>\n<h2>Known Pitfalls</h2>\n<h3>ID Formats</h3>\n<ul>\n<li>Board IDs and item IDs are large integers (e.g., 1234567890)</li>\n<li>Group IDs are strings (e.g., \"topics\", \"new_group_12345\")</li>\n<li>Column IDs are short strings (e.g., \"status_1\", \"date4\", \"text\")</li>\n<li>Workspace IDs are integers</li>\n</ul>\n<h3>Rate Limits</h3>\n<ul>\n<li>Monday.com GraphQL API has complexity-based rate limits</li>\n<li>Large boards with many columns increase query complexity</li>\n<li>Use <code>limit</code> parameter to reduce items per request if hitting limits</li>\n</ul>\n<h3>Parameter Quirks</h3>\n<ul>\n<li><code>column_type</code> for CREATE_COLUMN must be exact snake_case enum values; \"people\" not \"person\"</li>\n<li><code>column_values</code> in CREATE_ITEM accepts both JSON string and object formats</li>\n<li><code>MONDAY_CHANGE_SIMPLE_COLUMN_VALUE</code> auto-creates missing labels by default; <code>MONDAY_UPDATE_ITEM</code> does not</li>\n<li><code>MONDAY_CREATE_OBJECT</code> is a raw GraphQL interface; use it for operations without dedicated tools (e.g., create_subitem, delete_item, archive_board)</li>\n</ul>\n<h3>Response Structure</h3>\n<ul>\n<li>Board items are returned as arrays with <code>id</code>, <code>name</code>, and <code>state</code> fields</li>\n<li>Column values include both raw <code>value</code> (JSON) and rendered <code>text</code> (display string)</li>\n<li>Subitems are nested under parent items and cannot be queried independently</li>\n</ul>\n<h2>Quick Reference</h2>\n<table>\n<thead>\n<tr>\n<th>Task</th>\n<th>Tool Slug</th>\n<th>Key Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>List workspaces</td>\n<td><code>MONDAY_GET_WORKSPACES</code></td>\n<td><code>kind</code>, <code>state</code>, <code>limit</code></td>\n</tr>\n<tr>\n<td>Create workspace</td>\n<td><code>MONDAY_CREATE_WORKSPACE</code></td>\n<td><code>name</code>, <code>kind</code></td>\n</tr>\n<tr>\n<td>List boards</td>\n<td><code>MONDAY_LIST_BOARDS</code></td>\n<td><code>limit</code>, <code>page</code>, <code>state</code></td>\n</tr>\n<tr>\n<td>Create board</td>\n<td><code>MONDAY_CREATE_BOARD</code></td>\n<td><code>board_name</code>, <code>board_kind</code>, <code>workspace_id</code></td>\n</tr>\n<tr>\n<td>Get board metadata</td>\n<td><code>MONDAY_BOARDS</code></td>\n<td><code>board_ids</code>, <code>board_kind</code></td>\n</tr>\n<tr>\n<td>List groups</td>\n<td><code>MONDAY_LIST_GROUPS</code></td>\n<td><code>board_id</code></td>\n</tr>\n<tr>\n<td>Create group</td>\n<td><code>MONDAY_CREATE_GROUP</code></td>\n<td><code>board_id</code>, <code>group_name</code></td>\n</tr>\n<tr>\n<td>List columns</td>\n<td><code>MONDAY_LIST_COLUMNS</code></td>\n<td><code>board_id</code></td>\n</tr>\n<tr>\n<td>Get column metadata</td>\n<td><code>MONDAY_COLUMNS</code></td>\n<td><code>board_ids</code>, <code>column_types</code></td>\n</tr>\n<tr>\n<td>Create column</td>\n<td><code>MONDAY_CREATE_COLUMN</code></td>\n<td><code>board_id</code>, <code>column_type</code>, <code>title</code></td>\n</tr>\n<tr>\n<td>Create item</td>\n<td><code>MONDAY_CREATE_ITEM</code></td>\n<td><code>board_id</code>, <code>item_name</code>, <code>column_values</code></td>\n</tr>\n<tr>\n<td>List board items</td>\n<td><code>MONDAY_LIST_BOARD_ITEMS</code></td>\n<td><code>board_id</code></td>\n</tr>\n<tr>\n<td>Paginated items</td>\n<td><code>MONDAY_ITEMS_PAGE</code></td>\n<td><code>board_id</code>, <code>limit</code>, <code>query_params</code></td>\n</tr>\n<tr>\n<td>Update column (simple)</td>\n<td><code>MONDAY_CHANGE_SIMPLE_COLUMN_VALUE</code></td>\n<td><code>board_id</code>, <code>item_id</code>, <code>column_id</code>, <code>value</code></td>\n</tr>\n<tr>\n<td>Update column (complex)</td>\n<td><code>MONDAY_UPDATE_ITEM</code></td>\n<td><code>board_id</code>, <code>item_id</code>, <code>column_id</code>, <code>value</code></td>\n</tr>\n<tr>\n<td>Move item to group</td>\n<td><code>MONDAY_MOVE_ITEM_TO_GROUP</code></td>\n<td><code>item_id</code>, <code>group_id</code></td>\n</tr>\n<tr>\n<td>List subitems</td>\n<td><code>MONDAY_LIST_SUBITEMS_BY_PARENT</code></td>\n<td><code>parent_item_ids</code></td>\n</tr>\n<tr>\n<td>Add comment/update</td>\n<td><code>MONDAY_CREATE_UPDATE</code></td>\n<td><code>item_id</code>, <code>body</code></td>\n</tr>\n<tr>\n<td>Raw GraphQL mutation</td>\n<td><code>MONDAY_CREATE_OBJECT</code></td>\n<td><code>query</code>, <code>variables</code></td>\n</tr>\n</tbody>\n</table>\n<hr>\n<p><em>Powered by <a href=\"https://composio.dev\">Composio</a></em></p>\n","files":[{"path":"SKILL.md","sizeBytes":12184,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-14T20:54:27.814571Z","sha256":"E6C53ED8AC1787D81E9C16FCECC5E867404366E85C70773B726CC6ACE181AAF4","sizeBytes":4141},"review":null,"source":{"repositoryUrl":"https://github.com/davepoon/buildwithclaude","path":"plugins/all-skills/skills/monday-automation","license":"MIT","commit":"2e757dae349898c0b761bd8926acdacb35f21954","subtreeSha":"CCB3F76C56D37B2ADDBF623252175AEE52079C122D6DA85909C32C7D9DB8FB0D","lastSyncedAt":"2026-09-19T13:50:10.625828Z"},"reviewedAt":"2026-09-14T20:57:55.20766Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/davepoon/buildwithclaude/tree/main/plugins/all-skills/skills/monday-automation"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install davepoon-buildwithclaude@llmmart"},{"target":"git","command":"git clone https://github.com/davepoon/buildwithclaude.git"}]}