io.github.crunchtools/workboard
Secure MCP server for WorkBoard OKR and strategy execution platform
Versions
0.6.1latestTools 22
workboard_get_user_tool Get a WorkBoard user by ID, or the current authenticated user. Args: user_id: User ID (positive integer). If not provided, returns the current authenticated user. Returns: User details
workboard_list_users_tool List all WorkBoard users (requires Data-Admin role). Returns: List of all users
workboard_create_user_tool Create a new WorkBoard user (requires Data-Admin role). Args: first_name: User's first name last_name: User's last name email: User's email address designation: User's job title or designation Returns: Created user details
workboard_update_user_tool Update an existing WorkBoard user. Args: user_id: User ID (positive integer) first_name: User's first name (optional) last_name: User's last name (optional) email: User's email address (optional) designation: User's job title or designation (optional) Returns: Updated user details
workboard_get_teams_tool Get all teams the authenticated user belongs to. Returns team IDs, names, and owner user IDs. Use workboard_get_team_members_tool to get the full member list (with user_ids) for a specific team. Returns: List of teams with team_id, team_name, team_owner_id, is_team_owner
workboard_get_team_members_tool Get all members of a WorkBoard team, including their user IDs and emails. Use this to resolve a person's name or email to their WorkBoard user_id. Combine with workboard_get_objectives_tool(user_id) to fetch their OKRs. Args: team_id: The WorkBoard team ID (get from workboard_get_teams_tool) Returns: team_id, team_name, and members list with user_id, full_name, email, team_role
workboard_get_objectives_tool Get objectives owned by a WorkBoard user by their user ID. Returns all objectives the user owns, with full pagination. Also exposes ``workstreams`` and ``status_color`` fields on each objective when present. Use workboard_get_user_tool (no arguments) to find the current user's ID. Use workboard_get_team_members_tool to resolve a name or email to a user ID. Args: user_id: User ID (positive integer). Get this from workboard_get_user_tool. Returns: List of objectives owned by the user, including all key results
workboard_get_objective_details_tool Get full details for a single objective including all its key results. Returns the objective name, progress, status, dates, and all key results (metrics) with their targets, progress, and update schedules. Use workboard_get_user_tool (no arguments) to find the current user's ID. Args: user_id: User ID (positive integer). Get this from workboard_get_user_tool. objective_id: Objective ID (positive integer). Returns: Full objective details with key results (metrics)
workboard_get_my_objectives_tool Get the current authenticated user's objectives with key results. This is the RECOMMENDED tool when users ask about "my objectives" or "my OKRs". It automatically determines the current user and discovers their objectives from their key results — no IDs needed. Args: objective_ids: Optional list of specific objective IDs to fetch. If not provided, objectives are auto-discovered from the user's key results. Returns: List of objectives with their key results (metrics)
workboard_get_my_key_results_tool List all key results (metrics) the current user owns or has access to. Use this to find metric IDs and see current progress before updating with workboard_update_key_result_tool. Returns metric names, current values, targets, and IDs. By default, only shows current year key results. Set include_prior_years=True to see key results from previous years. Args: include_prior_years: If True, include key results from prior years. Defaults to False (current year only). Returns: List of key results with IDs, names, values, and targets
workboard_get_user_key_results_tool List key results (metrics) for a specific WorkBoard user by their user ID. Use this to see KRs owned by or associated with any user — for example, to review a direct report's key results before a 1:1. Skills layer maps organizational roles (e.g. "direct report") to user IDs; this tool only knows about WorkBoard user IDs. Use workboard_get_teams_tool and workboard_get_team_members_tool to resolve a person's name to their user ID. By default, only shows current year key results. Set include_prior_years=True to see key results from previous years. Args: user_id: User ID (positive integer). Get this from workboard_get_team_members_tool. include_prior_years: If True, include key results from prior years. Defaults to False (current year only). Returns: List of key results with IDs, names, values, and targets
workboard_update_key_result_tool Update progress on a key result (metric). This is the primary tool for weekly OKR check-ins — update a key result's value without logging into WorkBoard. Use workboard_get_my_key_results_tool to find metric IDs first. Args: metric_id: Metric ID (positive integer). Get this from workboard_get_my_key_results_tool. value: The new progress value (e.g. "75" for 75%). comment: Optional check-in comment describing what changed. Returns: Updated key result details
workboard_create_objective_tool Create a new objective with optional key results (requires Data-Admin token). Provide the goal name, owner, dates, and optionally key results with targets. Each key result dict can include: metric_name, metric_start, metric_target, metric_type. Args: name: Objective name (e.g. "Increase customer retention") owner: Owner's email address or user ID start_date: Start date in YYYY-MM-DD format target_date: Target completion date in YYYY-MM-DD format narrative: Optional description/narrative for the objective goal_type: "1" for Team objective (default), "2" for Personal objective permission: Visibility setting (default "internal,team") key_results: Optional list of key result dicts, each with keys like "metric_name", "metric_start", "metric_target", "metric_type" Returns: Created objective details
workboard_get_workstreams_tool Get team workstreams accessible to the authenticated user. Returns all team workstreams the user has access to. Personal workstreams are not included. Optionally filter to a single workstream by ID. Args: ws_id: Optional workstream ID to fetch a specific workstream. Returns: List of workstreams with name, owner, health, pace, priority, and dates
workboard_get_workstream_activities_tool Get a workstream's full details including all action items. Returns the workstream metadata plus every action item with descriptions, owners, due dates, comments, sub-actions, and attached files. Args: ws_id: Workstream ID (positive integer) Returns: Workstream details with action items
workboard_get_team_workstreams_tool Get all workstreams belonging to a specific team. Use workboard_get_teams_tool to find team IDs first. Args: team_id: Team ID (positive integer) Returns: Team info with list of workstreams
workboard_create_workstream_tool Create a new workstream for a team. Requires team manager or co-manager permissions. Args: ws_name: Name of the workstream team_id: Parent team ID ws_owner: User ID of the team manager or co-manager ws_objective: Optional descriptive narrative or objective statement Returns: Created workstream details
workboard_update_workstream_tool Update an existing workstream's properties. Performs read-before-write to confirm the workstream exists. Requires team manager or co-manager permissions. Pace must be "slow", "fast", or "steady". Health must be "ok", "good", or "risk". Priority must be "p1" through "p5". Args: ws_id: Workstream ID (positive integer) ws_name: New name (optional) ws_start_date: Start date in YYYY-MM-DD (optional) ws_end_date: End date in YYYY-MM-DD (optional) ws_pace: Pace: slow, fast, or steady (optional) ws_health: Health: ok, good, or risk (optional) ws_priority: Priority: p1 through p5 (optional) Returns: Updated workstream details
workboard_list_activities_tool List action items accessible to the authenticated user. Returns up to 15 action items by default. Use limit and offset for pagination. Filter by owner, state, priority, or effort to narrow results. Args: ai_owner: Filter by owner user ID or email (optional) ai_state: Filter by state: next, doing, done, or pause (optional) ai_priority: Filter by priority: low, med, or high (optional) ai_effort: Filter by effort: easy, medium, or huge (optional) limit: Maximum number of results (optional) offset: Pagination offset (optional) Returns: List of action items with descriptions, states, owners, and due dates
workboard_get_activity_tool Get a single WorkBoard action item by its ID. Args: activity_id: Action item ID (positive integer) Returns: Action item details including description, state, owner, due date, comments, sub-actions, and attached files
workboard_create_activity_tool Create a new action item (card) on a WorkBoard workstream. State must be "next", "doing", "done", or "pause". Priority must be "low", "med", or "high". Effort must be "easy", "medium", or "huge". Args: ai_description: Description of the action item — shown as the card title (required) ai_note: Notes or body text for the action item (optional) ai_workstream: Workstream ID to place the action item in (optional) ai_team: Team ID to associate with (optional) ai_owner: Owner user ID or email (optional) ai_state: Initial state: next, doing, done, or pause (optional) ai_priority: Priority: low, med, or high (optional) ai_effort: Effort estimate: easy, medium, or huge (optional) ai_due_date: Due date as UNIX timestamp string (optional) ai_column: Custom Kanban column ID to place the card in (optional). Workstreams can define custom columns within each state (e.g. "Homework", "Interlocks", "Active" within "doing"). Returns: Created action item details
workboard_update_activity_tool Update an existing WorkBoard action item. Performs read-before-write to confirm the action item exists. Only provided fields are updated. State must be "next", "doing", "done", or "pause". Priority must be "low", "med", or "high". Effort must be "easy", "medium", or "huge". Args: activity_id: Action item ID (positive integer) ai_description: New description — shown as the card title (optional) ai_note: New notes or body text (optional) ai_owner: New owner user ID or email (optional) ai_state: New state: next, doing, done, or pause (optional) ai_priority: New priority: low, med, or high (optional) ai_effort: New effort: easy, medium, or huge (optional) ai_due_date: New due date as UNIX timestamp string (optional) ai_column: Custom Kanban column ID to move the card to (optional). Workstreams can define custom columns within each state. Returns: Updated action item details
Permissions 3
network medium filesystem low env_vars low