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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。