# Monday.com MCP Server

Complete Model Context Protocol (MCP) server for Monday.com GraphQL API.

## Features

- **Full Monday.com API Coverage**: Boards, items, columns, groups, updates, users, teams, workspaces, webhooks
- **GraphQL Native**: All requests use Monday.com's GraphQL endpoint
- **Type-Safe**: Comprehensive TypeScript types for all Monday.com entities
- **Complexity Tracking**: Built-in rate limit monitoring via complexity points
- **Lazy-Loaded Tools**: Efficient MCP tool registration

## Installation

```bash
npm install
npm run build
```

## Configuration

Create a `.env` file:

```bash
cp .env.example .env
```

Add your Monday.com API key:

```env
MONDAY_API_KEY=your_api_key_here
```

Get your API key from: https://monday.com/developers/apps

## Usage

### Standalone

```bash
npm start
```

### In Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "monday": {
      "command": "node",
      "args": ["/path/to/monday/dist/main.js"],
      "env": {
        "MONDAY_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

## Available Tools

### Boards
- `get_boards` - List all boards with filtering
- `get_board` - Get single board with columns and groups
- `create_board` - Create new board

### Items
- `get_items` - List items from a board
- `get_item` - Get single item with column values
- `create_item` - Create new item
- `change_column_value` - Update column value

### Groups
- `create_group` - Create new group in board

### Updates (Activity Feed)
- `get_updates` - Get item updates/comments
- `create_update` - Create update/comment

### Users & Teams
- `get_users` - List all users
- `get_teams` - List all teams
- `get_workspaces` - List all workspaces

### Webhooks
- `create_webhook` - Create webhook for board events
- `delete_webhook` - Delete webhook

## Column Types

Supports ALL Monday.com column types:

- Status, Text, Numbers, Date, People, Timeline
- Dropdown, Checkbox, Rating, Label
- Link, Email, Phone, Long Text
- Color Picker, Tags, Hour, Week, World Clock
- File, Board Relation, Mirror, Formula
- Auto Number, Creation Log, Last Updated, Dependency

Each column type has proper TypeScript definitions with typed values.

## GraphQL Architecture

All requests are POST to `https://api.monday.com/v2`:

```typescript
{
  "query": "query { boards { id name } }",
  "variables": {}
}
```

Rate limiting uses complexity points (10,000,000 per minute). The client tracks complexity from response metadata.

## Development

```bash
# Type check
npm run typecheck

# Build
npm run build

# Watch mode
npm run dev
```

## License

MIT
