monday-api-mcp
Local MCP server enabling natural-language monday.com task management via the official Platform MCP package, wired into IBM Bob with personal API token authentication.
README
Local monday.com Platform MCP (IBM Bob)
Natural-language monday.com task management via the official Platform MCP package @mondaydotcomorg/monday-api-mcp, running locally on this Mac and wired into IBM Bob.
Auth decision
| Path | Status |
|---|---|
Hosted MCP + OAuth (https://mcp.monday.com/mcp) |
Supported by monday; not used here (not local) |
| Local MCP + OAuth | Not supported by the official local server |
| Local MCP + personal API token | Implemented |
Token is loaded from macOS Keychain (monday-api-token) or ~/.bob/monday.env (mode 600). Nothing secret is committed.
Prerequisites
- Node.js 20+ (this machine: Node 22)
- npm
- monday.com personal API token (Developers → My access tokens)
cd /Users/lalit/Developments/bob-mcp-monday-v3.0
npm install
./scripts/store-monday-token.sh # or: MONDAY_TOKEN='...' ./scripts/store-monday-token.sh
IBM Bob MCP configuration (reference)
Official docs: Using MCP in Bob · Bob Shell MCP · Server transports
Config file locations
Bob supports two MCP config levels. Project overrides global when the same server name appears in both.
| Level | Path on this machine | Scope |
|---|---|---|
| Global (Bob IDE) | /Users/lalit/.bob/mcp.json |
All workspaces |
| Project | /Users/lalit/Developments/bob-mcp-monday-v3.0/.bob/mcp.json |
This repo only (can be shared via git; no secrets) |
| Bob Shell / settings sync | /Users/lalit/.bob/settings/mcp_settings.json |
Kept in sync with the same monday-api-mcp entry for Shell |
Related (not Bob MCP JSON, but used by our launcher):
| File | Role |
|---|---|
scripts/monday-mcp.sh |
STDIO entrypoint Bob runs (command) |
/Users/lalit/.bob/monday.env |
Token fallback (chmod 600) — never commit |
macOS Keychain service monday-api-token |
Preferred token store |
Edit config from Bob UI
- Open the Bob panel → settings (gear) → MCP tab.
- Edit Global MCP → opens
~/.bob/mcp.json. - Edit Project MCP → opens
.bob/mcp.jsonin the project root (created if missing). - Ensure Use MCP Servers is checked.
- Expand
monday-api-mcpto enable/disable individual tools if you want a smaller tool set.
After JSON edits: reload MCP or restart Bob so the server reconnects.
Active server entry (copy/paste)
Transport: STDIO (local process). Format matches Bob’s mcpServers schema (command, args, disabled; optional cwd, env, alwaysAllow).
{
"mcpServers": {
"monday-api-mcp": {
"command": "/Users/lalit/Developments/bob-mcp-monday-v3.0/scripts/monday-mcp.sh",
"args": ["--enable-dynamic-api-tools", "true"],
"disabled": false
}
}
}
| Field | Value / notes |
|---|---|
| Server name | monday-api-mcp (shown in Bob MCP tab) |
command |
Absolute path to the Keychain-backed launcher |
args |
Full CRUD + all_monday_api escape hatch |
| Read-only mode | Use "args": ["--read-only"] instead (cannot combine with dynamic API tools) |
disabled |
true to stop Bob from spawning the server |
Token is not in the JSON — the launcher loads MONDAY_TOKEN from Keychain / ~/.bob/monday.env.
Start / stop in Bob
There is no long-running daemon. Bob spawns the STDIO server when MCP is enabled.
- Bob panel → MCP → Use MCP Servers = on.
- Confirm
monday-api-mcpis listed and not disabled. - After config or token changes: restart Bob or toggle MCP off/on.
- To stop: uncheck Use MCP Servers, set
"disabled": true, or remove the server entry.
Smoke test without Bob:
./scripts/verify-mcp.sh --enable-dynamic-api-tools true get_user_context '{}'
Create / rotate credentials
- monday avatar (bottom-left) → Developers → My access tokens → copy token.
- Store securely:
./scripts/store-monday-token.sh
# or non-interactive:
MONDAY_TOKEN='paste_token_here' ./scripts/store-monday-token.sh
This updates Keychain service monday-api-token and ~/.bob/monday.env.
- Rotate: generate a new token in monday, re-run the store script, then reload Bob MCP. Revoke the old token in monday.
Example natural-language commands
- “Who am I in monday?”
- “Show my boards”
- “Show schema for board project-tasks-update (columns and groups)”
- “Create a task on that board in group Y with status Working on it, due Friday”
- “Move item Z to Done and assign it to me”
- “List overdue items on the Marketing board”
- “Add a comment on item …”
- “Archive/delete this item” (assistant must confirm first)
See assistant-instructions.md for tool-mapping and safety rules.
Capability checklist
| Area | Tools |
|---|---|
| READ | get_user_context, list_workspaces, search, get_board_info, get_board_schema, get_board_items_page, get_updates, list_users_and_teams, … |
| CREATE | create_board, create_group, create_item, create_update, column values via create/change tools |
| UPDATE | change_item_column_values, move_item_to_group, item name via API tools |
| DELETE | delete_item, delete_update (confirm first); archive via dedicated tool or all_monday_api |
| Escape hatch | all_monday_api, get_graphql_schema, get_type_details |
Apps MCP (--mode apps) is not enabled — Platform workspace data only.
Troubleshooting
| Symptom | Fix |
|---|---|
Bob doesn’t show monday-api-mcp |
Check /Users/lalit/.bob/mcp.json and project .bob/mcp.json; Bob panel → MCP → Use MCP Servers on; restart Bob |
| Editing the wrong file | IDE global = ~/.bob/mcp.json; project override = .bob/mcp.json; Shell also reads ~/.bob/settings/mcp_settings.json |
| Project config ignored | Project entry wins only when this workspace is open; otherwise global applies |
| Auth / 401 / “not authenticated” | Re-run ./scripts/store-monday-token.sh with a fresh token; reload Bob |
| Server won’t start | npm install in this repo; confirm node_modules/@mondaydotcomorg/monday-api-mcp/dist/index.js exists; command path must be absolute |
| Missing tools | Ensure args include --enable-dynamic-api-tools true (not --read-only); reload Bob; check per-tool toggles in Bob MCP tab |
| Rate limits | MCP calls count toward monday’s daily API limit — batch reads, avoid tight loops |
| Permission denied on a board | Token only sees boards your user can access; ask a board owner for access |
| Hosted OAuth preferred later | In Bob MCP JSON use streamable HTTP: "type": "streamable-http", "url": "https://mcp.monday.com/mcp" (see Bob transport docs); may require monday AI Connectors / marketplace MCP app |
| Disk full / npx slow | Prefer local npm install (wrapper already uses local dist/index.js when present) |
Scripts
| Script | Purpose |
|---|---|
scripts/monday-mcp.sh |
Bob MCP command entrypoint |
scripts/store-monday-token.sh |
Save token to Keychain + ~/.bob/monday.env |
scripts/verify-mcp.sh |
Stdio initialize + tools/list + optional tools/call |
scripts/run-acceptance-tests.sh |
Full CRUD acceptance suite |
Latest verified run: ACCEPTANCE_RESULTS.md (all 8 checks passed).
References
IBM Bob
- Using MCP in Bob — global
~/.bob/mcp.jsonvs project.bob/mcp.json - Bob Shell MCP
- MCP server transports — STDIO vs streamable HTTP
monday.com
- Package:
@mondaydotcomorg/monday-api-mcp - Repo: https://github.com/mondaycom/mcp
- Hosted MCP: https://mcp.monday.com/mcp
- Platform MCP overview: https://developer.monday.com/api-reference/docs/monday-mcp-overview# bob-mcp-monday-v3.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.