@imboard.ai/mcp-server
v0.2.0
Published
imboard MCP server — adapter over the public REST API
Maintainers
Readme
@imboard.ai/mcp-server
Model Context Protocol (MCP) server for imboard — gives AI assistants read and write access to your boards, meetings, documents, reports, and dashboards through the imboard REST API.
Installation
npm install -g @imboard.ai/mcp-serverOr run directly with npx:
npx @imboard.ai/mcp-serverConfiguration
The server requires two environment variables:
| Variable | Description | Example |
| ---------------------- | -------------------- | ------------------------ |
| IMBOARD_API_BASE_URL | imboard API base URL | https://app.imboard.ai |
| IMBOARD_API_TOKEN | Personal API token | imb_pat_... |
Optional:
| Variable | Description | Default |
| ----------- | ---------------------------------------------------- | ------- |
| LOG_LEVEL | Logging verbosity (debug, info, warn, error) | info |
Getting an API Token
- Log in to imboard
- Go to Settings > API Tokens
- Generate a new personal access token
Usage with Claude Code
Add the following to .mcp.json in your project root (or ~/.claude/settings.json under mcpServers for global access):
{
"mcpServers": {
"imboard": {
"command": "npx",
"args": ["@imboard.ai/mcp-server"],
"env": {
"IMBOARD_API_BASE_URL": "https://app.imboard.ai",
"IMBOARD_API_TOKEN": "imb_pat_..."
}
}
}
}Usage with Claude Desktop (one-click, no Node required)
Non-technical users should not edit JSON or install Node. Instead, ship them the
Claude Desktop Extension — a single imboard.mcpb file. Claude Desktop bundles its
own Node runtime, so the user just:
- Downloads
imboard.mcpb(the app serves it from the API Access page). - Double-clicks it → Claude Desktop shows an Install dialog for "I'mBoard".
- Pastes a personal access token (
imb_pat_…) into the token field.
The token is collected by Claude Desktop via the manifest's user_config field, so it is
never baked into the artifact — the same .mcpb is safe to distribute to everyone.
Building the extension
pnpm run build:extension # → dist/imboard.mcpbThis bundles the server, the mcpb/manifest.json, an icon, and the two runtime deps the
esbuild bundle keeps external (@modelcontextprotocol/sdk, zod). The frontend serves a
copy from packages/frontend/public/assets/imboard.mcpb; re-run and copy it over when the
server or its deps change. (Automating this in CI is tracked as a follow-up.)
Available Tools
User & Profile
| Tool | Description |
| ------------------- | -------------------------------------------------- |
| get_me | Get the authenticated user's profile |
| list_my_boards | List all board memberships and pending invites |
| get_storage_usage | Get storage usage for unassigned email attachments |
Boards
| Tool | Description |
| -------------------------- | ----------------------------------------------------------- |
| list_boards | List boards the user has access to |
| get_board | Get detailed board information |
| create_board | Create a new board |
| update_board | Update board details (name, description, settings) |
| list_board_members | List members of a board |
| get_board_member | Get details for a specific board member |
| assign_member_roles | Assign roles, positions, and access types to a board member |
| search_board_documents | Semantic search across all documents in a board |
| list_board_action_items | List action items for a board |
| update_board_action_item | Update action item status |
Meetings & Scheduling
| Tool | Description |
| ----------------------- | ------------------------------------------------------- |
| list_board_meetings | List meetings for a board |
| get_meeting | Get details for a specific meeting |
| create_meeting | Create a new meeting |
| update_meeting | Update an existing meeting |
| delete_meeting | Delete a meeting |
| change_meeting_status | Change meeting status (draft, planned, scheduled, etc.) |
| list_meeting_slots | List proposed time slots with vote tallies |
| create_meeting_slot | Propose a new time slot |
| vote_on_slot | Cast or update a vote on a proposed slot |
| delete_meeting_slot | Remove a proposed time slot |
| confirm_meeting_slot | Confirm a slot as the meeting's scheduled time |
Documents
| Tool | Description |
| ------------------------- | ------------------------------------------ |
| list_board_documents | List documents for a board |
| get_document | Get metadata for a specific document |
| create_document | Create a new document with initial version |
| update_document | Update document details |
| update_document_status | Change document status |
| delete_document | Delete a document |
| create_document_version | Create a new version of a document |
Reports & Dashboards
| Tool | Description |
| -------------------------------- | -------------------------------------------------- |
| list_board_reports | List reports for a board |
| get_report | Get details for a specific report |
| create_report | Create a new report |
| update_report | Update report details |
| promote_report_status | Promote report status (draft → review → published) |
| create_followup_report | Create a follow-up report from an existing report |
| list_report_dashboards | List dashboards under a report |
| get_dashboard | Get details for a specific dashboard |
| create_dashboard | Create a custom dashboard in a report |
| create_dashboard_version | Create a new version of a dashboard |
| update_dashboard_review_status | Update dashboard review status |
| get_dashboard_chat | Get discussion comments on a dashboard |
| post_dashboard_chat | Post a comment on a dashboard |
| get_board_feedback | Get board-level feedback on a report |
| post_board_feedback | Post board-level feedback |
| trigger_report_audit | Trigger an AI audit of a report |
| list_report_audits | List audit history for a report |
| get_report_audit | Get details of a specific audit |
| get_historical_metrics | Get historical KPI data for a dashboard |
| get_metrics_comparison | Compare metrics across time periods |
Invites
| Tool | Description |
| -------------------- | --------------------------------- |
| list_board_invites | List pending invites for a board |
| create_invite | Invite a user to a board by email |
| accept_invite | Accept a board invite |
| decline_invite | Decline a board invite |
| retract_invite | Retract a sent invite |
Notifications
| Tool | Description |
| ----------------------------- | --------------------------------------------- |
| list_notifications | List notifications for the authenticated user |
| mark_all_notifications_read | Mark all notifications as read |
| mark_notification_read | Mark a single notification as read |
Action Items
| Tool | Description |
| --------------------------- | ----------------------------------- |
| list_my_action_items | List action items across all boards |
| update_action_item_status | Update an action item's status |
Supporting Data
| Tool | Description |
| ----------------------------- | ----------------------------------------------- |
| get_board_audit_log | Get the audit trail for a board |
| get_portfolio_data | Get portfolio data aggregated across all boards |
| get_fx_rates | Get current foreign exchange rates |
| list_unassigned_attachments | List email attachments awaiting assignment |
| reject_attachment | Reject an unassigned email attachment |
Development
# Install dependencies
pnpm install
# Run in development mode (hot reload)
pnpm dev
# Build for production
pnpm build
# Run tests
pnpm test
# Type check
pnpm typecheck
# Lint
pnpm lintLicense
MIT
