← All integrations

monday.com

Let an agent keep your boards current without the run of your account. It reads boards and items, creates items, sets column values, moves items between groups and posts updates, and archiving or deleting an item can wait for a person.

monday.comsecret · MONDAY
host
api.monday.com
connect
API key, per user
  • Create item

    monday-create-item

  • Set column value

    monday-set-column-value

  • Change column values

    monday-change-column-values

  • Move item to group

    monday-move-item-to-group

writes are off until switched on

Reads and writes in monday.com. Writes are off until you switch them on.

Each one is a named operation from the pack. Reads change nothing.

Writes

  • Create item

    read back

    monday-create-item

    Create one item on a board, in a group or in the board's top group. column_values optionally sets columns at creation, as a JSON object written as a string and keyed by column id, for example {"status":{"label":"Done"},"date4":{"date":"2026-11-02"},"text_mkx1abcd":"Call before kickoff"}. It travels as a GraphQL variable, so it never changes the query.

  • Set column value

    read back

    monday-set-column-value

    Set one column of an item from a plain string: a status label's text (Done), a date as YYYY-MM-DD, a text, a number. monday refuses a status label the column does not have; get-board lists the labels.

  • Change column values

    read back

    monday-change-column-values

    Set several columns of one item in one call. column_values is a JSON object written as a string, keyed by column id (from get-board), for example {"status":{"label":"Stuck"},"date4":{"date":"2026-11-09"},"text_mkx1abcd":"Waiting on legal"}. It travels as a GraphQL variable, so it never changes the query. monday refuses a status label the column does not have.

  • Move item to group

    read back

    monday-move-item-to-group

    Move one item to another group on the same board.

  • Add update

    read back

    monday-add-update

    Add an update (a comment) to one item. The body is text or simple HTML. Everyone who can see the item sees it, and monday notifies the item's subscribers and anyone mentioned.

  • Archive item

    read back

    monday-archive-item

    Archive one item. It leaves the board and can be restored from the board's archive in monday.

  • Delete item

    read back

    monday-delete-item

    Delete one item. monday moves it to the account's trash, where it can be restored for a time.

Reads

  • List boards

    monday-list-boards

    List the boards the token's user can reach, 25 a page, in the order monday returns them. Returns each board's id, name, description, kind (public, private or share), workspace id, item count, last update and url. Archived and deleted boards are left out. Page with page (1 is the start); a page with fewer than 25 boards is the last. Changes nothing.

  • Get board

    monday-get-board

    Get one board with its columns and groups. Returns each column's id, title, type and settings (a status column's settings hold its labels), and each group's id, title, color and position. Use the column ids with get-item, set-column-value and change-column-values, and the group ids with create-item, move-item-to-group and list-group-items. Changes nothing.

  • List items

    monday-list-items

    List the items (rows) on a board, 20 a page, with each item's id, name, state, last update, group and the text of its column values. When items_page.cursor is not null, pass it to next-items-page for the next page; the cursor expires 60 minutes after this call. Name column_ids on a wide board to keep the response small. Changes nothing.

  • List group items

    monday-list-group-items

    List the items in one group of a board, 20 a page, with each item's id, name, state, last update, group and the text of its column values. When items_page.cursor is not null, pass it to next-items-page for the next page; the cursor expires 60 minutes after this call. Changes nothing.

  • Search items

    monday-search-items

    Find the items on a board whose column holds a value, for example an email, a status label or a date (YYYY-MM-DD). The match is exact. monday supports this for some column types, listed in its docs; others are refused. Returns 20 a page; when cursor is not null, pass it to next-items-page. Changes nothing.

  • Next items page

    monday-next-items-page

    Get the next 20 items after a cursor from list-items, list-group-items, search-items or an earlier next-items-page. Returns the same fields and a new cursor; a null cursor means there are no more. A cursor expires 60 minutes after the call that started the listing. Changes nothing.

  • Get item

    monday-get-item

    Get one item with its board, group, state (active, archived or deleted), creation and last update, url, and every column value: its id, type, text and raw value (a JSON string). Name column_ids to read a few columns. Changes nothing.

  • List updates

    monday-list-updates

    List the updates (comments) on one item, 20 a page. Returns each update's id, plain text, creation time and creator (id and name). Page with page (1 is the start); a page with fewer than 20 updates is the last. Changes nothing.

How do users connect? Each one brings their own monday.com.

  1. 1.Call for the userYour server invokes the action for the signed-in user. Without a monday.com connection, the SDK throws EndUserNotConnectedError with a connect link.
  2. 2.The user pastes a keyThe link opens a form that shows where in monday.com's settings to create the key. The link lasts 10 minutes and works once.
  3. 3.Anlyon checks itThe key is checked with monday.com before it is kept, and bound to api.monday.com. It is never shown back.
  4. 4.Your server confirmsYour server confirms the connection for the user who is signed in, and the call goes through.

Guardrails. Suggested limits and approvals, for you to review.

Suggested limits

  • 100 items created a day
  • 300 single column changes a day
  • 200 multiple column changes a day
  • 200 items moved between groups a day
  • 200 updates posted a day
  • 50 items archived a day
  • 20 items deleted a day

Suggested approvals

  • A person approves deleting an item
  • A person approves archiving an item
  • A person approves posting an update

What the key must allow

  • Your personal API token
  • It acts as you in every board you can reach

Good to know

  • Copy the token from an account that is a member of only the boards your agent should work in.
  • monday.com has no idempotency key for a create. Anlyon sends it once and never repeats it.

For your own account

  1. 1.In monday.com, open your profile picture, Developers, My access tokens, and copy your token.
  2. 2.In Anlyon, open Actions, then Integrations, choose monday.com and paste the token.
  3. 3.Anlyon checks the token with monday.com before storing it. It becomes a secret named MONDAY, bound to api.monday.com.

monday.com in your code. For one of your users, or for your own account.

Act for one of your users from your server, or connect your company's own monday.com with the CLI.

monday.ts
import { Client, EndUserNotConnectedError } from "@anlyonhq/sdk";const anlyon = new Client({ apiKey: process.env.ANLYON_API_KEY! });try {  const { data } = await anlyon    .forUser(session.userId)    .actions.invoke("monday-create-item", {      board_id: "1234567890",      item_name: "Follow up with Acme"    });  return { status: "done", grade: data.grade };} catch (error) {  if (error instanceof EndUserNotConnectedError) {    // The user connects their own monday.com, then you call again.    return { status: "connect_required", url: error.connectUrl };  }  throw error;}

Let your agent act for your users, safely.

A few lines of server code, then send a user a connect link. Nothing to host.

$ claude mcp add --transport http anlyon https://api.anlyon.com/mcp