monday.com MCP

repository·master·Indexed 19 days ago

https://github.com/mondaycom/mcp

A repository providing tools and a server implementation to enable AI agents to interact with the monday.com work operating system via the Model Context Protocol (MCP). It includes the @mondaydotcomorg/agent-toolkit for building agents and the monday-api-mcp server for integration with tools like Claude Desktop and Cursor. Features include pre-built tools for item, board, and WorkForms operations, a dedicated Apps Framework mode for app development, and an Alpha ATP mode for GraphQL API exploration.

Tokens
57.9K
Snippets
113
Records
238
Agent score
59%

What's inside mondaycom-mcp

  1. Overview of monday.com MCP

    master

    The monday.com MCP (Model Context Protocol) is an open framework designed to connect AI agents to the monday.com work operating system. It provides agents with secure access to structured data, tools for taking action, and the context required to operate within monday.com workflows.

    The repository contains two primary packages:

    • @mondaydotcomorg/monday-api-mcp: A plug-and-play MCP server implementation that allows agents to interact with the monday.com API.
    • @mondaydotcomorg/agent-toolkit: A set of tools and utilities for building AI agents that support both OpenAI and MCP implementations.
  2. Use the log-activity skill for CRM timeline management

    master

    The log-activity skill allows you to manage the activity feed (Timeline) of CRM items like deals, contacts, leads, or accounts. You can use it to log new activities (calls, meetings, notes), read activity history, or update existing timeline entries.

    Common User Triggers

    • Log: "log my call with Acme", "add a note to the deal", "record this meeting", "I just spoke with..."
    • Read: "what activities happened on TechCorp this week", "show timeline for Globex", "activity history for..."
    • Update: "update the note on the Acme deal", "edit the meeting note"

    Core Concepts

    • Timeline: The activity feed on any CRM item. It includes calls, meetings, notes, and emails.
    • Structured vs. Notes: The skill attempts to create structured activities (e.g., a 'Call' with specific attendees and outcomes). If structured logging is unavailable or fails, it gracefully degrades to a free-text note using create_timeline_note.
    • HITL (Human-In-The-Loop): All write and update operations require user confirmation before execution.
    • Append-Only: The skill supports creating and updating, but does not support deleting timeline entries.
    "[activity description — 'call with Acme about renewal', 'note on Globex deal: demo next week', 'activities on TechCorp this week']"
  3. Manage CRM sequences with the run-sequence skill

    master

    The run-sequence skill allows you to manage monday CRM sequences end-to-end via natural language. You can list sequences, create new ones, enroll contacts, activate/deactivate flows, duplicate sequences, and track performance analytics.

    Common user requests include:

    • "What sequences do I have?"
    • "Create a welcome sequence"
    • "Enroll Acme in the welcome sequence"
    • "Show me sequence analytics for Q2 nurture"
    • "Deactivate the cold outreach sequence"
    • "Who is enrolled in the nurture sequence?"

    Key Constraints & Behaviors:

    • No Editing: You cannot add, modify, or remove steps in a sequence via MCP. For editing, users must go to Tools → Sequences in the monday CRM UI.
    • Deactivation vs. Pausing: Deactivating a sequence (deactivate-sequence) does not stop existing enrollments; it only blocks new enrollments from starting.
    • Sequence States:
      • ACTIVE: New enrollments are allowed and running.
      • INACTIVE: New enrollments are blocked; existing runs continue.
    • Board Resolution: Most operations (list, enroll, contact-journey) require a board_id. You must resolve the board name to a board_id before calling the specific sequence tools.
  4. Map business descriptions to board archetypes

    master

    The skill translates user descriptions into internal archetypes to propose a board structure. The user never sees these archetype labels; they only see the resulting board proposal using their own terminology.

    Signals in descriptionInternal archetypeDefault board shape
    Long sales cycle, account/stakeholder language ("contracts", "buyers"), deal sizes >$1KB2B salesSingle Deals board, pipeline as groups, rich columns
    High volume / short cycle / consumer-facing ("orders", "customers", e-commerce)B2C transactionalOrders + Customers (two boards), pipeline as status column
    Project / hourly / engagement language ("clients", "retainers", "billable")ServicesEngagements + Clients, pipeline as groups, effort/hours columns
    Outbound / lead-gen / top-of-funnel ("SDR", "cold outreach", "leads")OutboundLeads + Deals (two-board funnel), status on Leads, groups on Deals
    Mixed / unclear / industry-specificCustomCompose from primitives (see below)

    Custom Mode

    If no archetype fits, the skill composes a structure from:

    • Primary entity board: Named using user's language (e.g., Candidates, Listings, Matters).
    • Pipeline mechanism: Groups (low-volume/high-touch) or Status column (high-volume).
    • Secondary board: If two distinct entities are mentioned.
    • Columns: Standard set (Owner, Stage, Value, Probability, Date, Source, Notes) plus 1–3 industry-specific columns.
  5. Understand monorepo versioning behavior

    master

    This repository operates as a monorepo where all packages are treated as a unified version. When any package within the repository is changed and a release is triggered, all packages receive the same new version number. This ensures synchronization across the following packages:

    • @mondaydotcomorg/agent-toolkit
    • @mondaydotcomorg/monday-api-mcp
    • monday-ai (Root package)
  6. Data cleanup safety rails and execution patterns

    master

    When using the data-cleanup skill, the following safety and execution patterns are enforced to protect your data:

    Safety Rails

    • No Deletes: The skill will never delete items or columns.
    • No Amount-Column Writes: To maintain forecast integrity, the skill does not automatically write to amount columns.
    • No Cross-Workspace Moves: Items are never moved between workspaces.
    • Flag-only items: Items that require human judgment (like missing amounts) are flagged in the summary but are never written to automatically.

    Execution Constraints

    • Bounded Writes: Execution is capped (e.g., at 500 writes) to prevent runaway automation.
    • Concurrency Control: Writes are performed in controlled batches (e.g., 5 concurrent operations) to respect API limits.
    • Auditability: Every run generates a document containing a before/after log. These docs include a <!-- claude-skill-id: data-cleanup --> comment and a Generated by Claude footer to ensure idempotency and traceability.
  7. Normalization Recipes for Data Cleanup

    master

    When running the data-cleanup skill, the following logic is applied to specific data types:

    • Phone format → E.164: Strips non-digit/+ characters. If no leading + exists, it prepends the dial code based on the populated country column or known prefixes (e.g., 1 for US). Skips if length is <7 or >15 digits.
    • Email lowercase: Converts values to lowercase using value.toLowerCase(). Only writes if the value actually changes.
    • Country code from phone: Parses the leading dial code to an ISO-2 country code and writes to the country column using the all_monday_api shape: {"countryCode": "<ISO2>", "countryName": "<name>"}.
    • Country code from email CCTLD: Infers country if the email ends in a specific TLD (e.g., .uk, .de) and the country column is empty.
    • Email guess: Uses <firstname>.<lastname>@<companydomain>. Warning: This is a heuristic and may be inaccurate. Every guessed email is tagged with a Source = guessed status flag.
    • Bulk-set (Owner/Source/Stage): Applies values within a user-confirmed scope (group or status filter) using change_item_column_values.
    • Backfill stale last-touch: Sets the date to today only if the cell is empty or older than 90 days. It will never overwrite a more recent date.
  8. Preview version changes with the Version Check workflow

    master
    Before merging a Pull Request, you can preview the resulting version bump. When you add a bump:* label to a PR, the Version Check workflow is triggered. It will post a preview comment on the PR showing the transition (e.g., 1.0.0 → 1.1.0). This is a read-only preview and does not modify any files.
  9. How the meeting-to-deal skill handles ambiguous matches

    master

    The meeting-to-deal skill includes a safety mechanism for handling ambiguous matches. An ambiguity occurs when a meeting's attendees or domain match multiple deals with near-equal scores.

    Ambiguity Criteria:

    • The top match score and the second-best match score are equal (or the gap between them is less than 3).

    Resolution Workflow:

    1. Detection: Instead of guessing or skipping, the agent flags the ambiguity.
    2. User Prompt: The agent presents the candidate deals to the user and asks for clarification.
    3. Natural Language Selection: The user can resolve the ambiguity using natural language (e.g., "first to Series B, second to Series C" or "both to Series B").
    4. Resumption: The skill resumes from the matching step without re-running the initial discovery steps (user context, meeting retrieval, or board resolution).
    5. Audit Trail: Resolved ambiguous matches are logged in the generated sync document under a Matched (X/X) — user-confirmed section for auditing purposes.
  10. Configure meeting-to-deal modes and safety rails

    master

    The meeting-to-deal skill operates in three modes to control how much automation is applied to your monday.com boards.

    Modes

    ModeBehavior
    DefaultAll changes (recaps, stage edits, last-touch updates, auto-contacts) are bundled into a single batch. The user must confirm the batch before execution.
    SilentSkips the batch confirmation step. Note: $\beta$ auto-contact still requires explicit opt-in.
    ProactiveAsks once to enable a full suite of actions: recaps, auto-contacts, stage/last-touch edits (when unambiguous), and notifications for commitments due this week.

    Safety Rails

    Regardless of the mode selected, the skill enforces the following restrictions to prevent data loss or corruption:

    • No Deletes: The skill will never delete items or updates.
    • No Amount-Column Writes: The skill is strictly forbidden from modifying any column related to monetary amounts.
    • No Cross-Workspace Moves: Items will not be moved between different workspaces.
    • Batched Stage Transitions: Stage transitions are always presented as a batched plan for review; they are never written one-off or silently.
  11. Implement empty-category guards in forecast logic

    master

    To ensure data quality during forecast synthesis, implement a guard that checks the fill rate of the designated forecast-category column.

    Logic:

    • Calculate the fill rate: (number of deals with non-empty forecast category) / (total active deals).
    • If the fill rate is below a specific threshold (e.g., 20%), the agent must pause and ask the user how to proceed before synthesizing the data.

    User Options when threshold is hit:

    • (a) Continue anyway: Derive buckets from other available data (e.g., probability and stage) instead of the empty category column.
    • (b) Run hygiene: Prompt board owners to fill in the missing data.
    • (c) Remove column: Remove the column from the forecast logic entirely.