133 lines
2.6 KiB
Markdown
133 lines
2.6 KiB
Markdown
# 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
|