Skip to main content
Glama
crunchtools

MCP WorkBoard CrunchTools

by crunchtools

MCP WorkBoard CrunchTools

A secure MCP (Model Context Protocol) server for WorkBoard OKR and strategy execution platform.

Overview

This MCP server is designed to be:

  • Secure by default - Comprehensive threat modeling, input validation, and token protection

  • No third-party services - Runs locally via stdio, your API token never leaves your machine

  • Cross-platform - Works on Linux, macOS, and Windows

  • Automatically updated - GitHub Actions monitor for CVEs and update dependencies

  • Containerized - Available at quay.io/crunchtools/mcp-workboard built on Hummingbird Python base image

Related MCP server: Workato MCP Server

Naming Convention

Component

Name

GitHub repo

crunchtools/mcp-workboard

Container

quay.io/crunchtools/mcp-workboard

Python package (PyPI)

mcp-workboard-crunchtools

CLI command

mcp-workboard-crunchtools

Module import

mcp_workboard_crunchtools

Why Hummingbird?

The container image is built on the Hummingbird Python base image from Project Hummingbird, which provides:

  • Minimal CVE exposure - Built with a minimal package set, dramatically reducing attack surface

  • Regular updates - Security patches applied promptly

  • Optimized for Python - Pre-configured with uv package manager

  • Production-ready - Proper signal handling and non-root user defaults

Features

User Management (4 tools)

  • workboard_get_user - Get a user by ID or the current authenticated user

  • workboard_list_users - List all users (Data-Admin role required)

  • workboard_create_user - Create a new user (Data-Admin role required)

  • workboard_update_user - Update an existing user

Objective Management (4 tools)

  • workboard_get_objectives - Get objectives associated with a user (API capped at 15)

  • workboard_get_objective_details - Get details for a specific objective with key results

  • workboard_get_my_objectives - Get the current user's owned objectives by ID (recommended)

  • workboard_create_objective - Create a new objective with key results (Data-Admin required)

Key Result Management (2 tools)

  • workboard_get_my_key_results - List current user's key results with metric IDs and progress

  • workboard_update_key_result - Update key result progress for weekly OKR check-ins

Workstream Management (5 tools)

  • workboard_get_workstreams - Get team workstreams accessible to the authenticated user

  • workboard_get_workstream_activities - Get workstream details with all action items

  • workboard_get_team_workstreams - Get all workstreams belonging to a specific team

  • workboard_create_workstream - Create a new workstream for a team

  • workboard_update_workstream - Update workstream properties (name, dates, pace, health, priority)

Installation

uvx mcp-workboard-crunchtools

With pip

pip install mcp-workboard-crunchtools

With Container

podman run -e WORKBOARD_API_TOKEN=your_token \
    quay.io/crunchtools/mcp-workboard

Configuration

Getting a WorkBoard API Token

  1. Log in to your WorkBoard instance

  2. Navigate to Admin Settings > API Configuration

  3. Generate a JWT API token

  4. Copy the token immediately - store it securely

Add to Claude Code

claude mcp add mcp-workboard \
    --env WORKBOARD_API_TOKEN=your_token_here \
    -- uvx mcp-workboard-crunchtools

Or for the container version:

claude mcp add mcp-workboard \
    --env WORKBOARD_API_TOKEN=your_token_here \
    -- podman run -i --rm -e WORKBOARD_API_TOKEN quay.io/crunchtools/mcp-workboard

Usage Examples

Get Current User

User: Who am I in WorkBoard?
Assistant: [calls workboard_get_user with no args]

List All Users

User: List all WorkBoard users
Assistant: [calls workboard_list_users]

Get User Objectives

User: Show me objectives for user 12345
Assistant: [calls workboard_get_objectives with user_id=12345]

Get Objective Details

User: Get details on objective 67890 for user 12345
Assistant: [calls workboard_get_objective_details with user_id=12345, objective_id=67890]

Get My Objectives

User: Show me my objectives (IDs: 2900058, 2900075, 2901770)
Assistant: [calls workboard_get_my_objectives with objective_ids=[2900058, 2900075, 2901770]]

List My Key Results

User: Show me my key results
Assistant: [calls workboard_get_my_key_results]

Update Key Result Progress

User: Update key result 12345 to 75
Assistant: [calls workboard_update_key_result with metric_id=12345, value="75"]

Create an Objective

User: Create an objective called "Increase retention" owned by user@example.com
Assistant: [calls workboard_create_objective with name, owner, dates, and optional key_results]

List Workstreams

User: Show me my workstreams
Assistant: [calls workboard_get_workstreams]

Get Workstream Action Items

User: Show me the agenda for workstream 4130463
Assistant: [calls workboard_get_workstream_activities with ws_id=4130463]

Security

This server was designed with security as a primary concern. See SECURITY.md for:

  • Threat model and attack vectors

  • Defense in depth architecture

  • Token handling best practices

  • Input validation rules

Key Security Features

  1. Token Protection

    • Stored as SecretStr (never accidentally logged)

    • Environment variable only (never in files or args)

    • Sanitized from all error messages

  2. Input Validation

    • Pydantic models for all inputs

    • Positive integer validation for IDs

    • Email validation for user creation

  3. API Hardening

    • Hardcoded API base URL (prevents SSRF)

    • TLS certificate validation

    • Request timeouts

    • Response size limits

  4. Automated CVE Scanning

    • GitHub Actions scan dependencies weekly

    • Automatic issues for security updates

    • Dependabot alerts enabled

Development

Setup

git clone https://github.com/crunchtools/mcp-workboard.git
cd mcp-workboard
uv sync

Run Tests

uv run pytest

Lint and Type Check

uv run ruff check src tests
uv run mypy src

Build Container

podman build -t mcp-workboard .

License

AGPL-3.0-or-later

Contributing

Contributions welcome! Please read SECURITY.md before submitting security-related changes.

Available Tools

22 tools
workboard_create_activity_toolA

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
ai_descriptionYesDescription of the action item — shown as the card title (required)
ai_noteNoNotes or body text for the action item (optional)
ai_workstreamNoWorkstream ID to place the action item in (optional)
ai_teamNoTeam ID to associate with (optional)
ai_ownerNoOwner user ID or email (optional)
ai_stateNoInitial state: next, doing, done, or pause (optional)
ai_priorityNoPriority: low, med, or high (optional)
ai_effortNoEffort estimate: easy, medium, or huge (optional)
ai_due_dateNoDue date as UNIX timestamp string (optional)
ai_columnNoCustom Kanban column ID to place the card in (optional). Workstreams can define custom columns within each state (e.g. "Homework", "Interlocks", "Active" within "doing").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only mentions creation and field constraints, but lacks details on side effects (e.g., permissions required, whether duplicates are allowed, what happens if workstream doesn't exist).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the core purpose, then constraints listed concisely. No redundant or verbose text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and field constraints, but does not mention what the tool returns (output schema exists but description could note the created card's ID). For a creation tool, more outcome context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but the description adds value by explicitly enumerating allowed values for state (next, doing, done, pause), priority (low, med, high), and effort (easy, medium, huge), which are not listed in the schema. It also clarifies the ai_column parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new action item (card) on a WorkBoard workstream, distinguishing it from sibling tools like create_objective, update_activity, and get_workstream_activities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists valid values for state, priority, and effort but does not explicitly guide when to use this tool versus alternatives like update_activity or get_activities. Usage is implied by the tool name rather than described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_create_objective_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesObjective name (e.g. "Increase customer retention")
ownerYesOwner's email address or user ID
start_dateYesStart date in YYYY-MM-DD format
target_dateYesTarget completion date in YYYY-MM-DD format
narrativeNoOptional description/narrative for the objective
goal_typeNo"1" for Team objective (default), "2" for Personal objective1
permissionNoVisibility setting (default "internal,team")internal,team
key_resultsNoOptional list of key result dicts, each with keys like "metric_name", "metric_start", "metric_target", "metric_type"

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the auth requirement and optional key results structure. With no annotations, it carries the burden but does not cover error behavior, idempotency, or other constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. Front-loaded with purpose and auth requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, description covers creation purpose, required parameters, optional key results, and auth. Missing some edge cases but adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, so the description adds limited new meaning. It summarizes required fields and explains key results, but this largely mirrors the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool creates an objective with optional key results. It distinguishes itself from sibling tools (e.g., create_activity, create_user) by focusing on objectives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions the required Data-Admin token, providing a usage prerequisite. Does not explicitly state when not to use or compare with alternatives, but context is clear given sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_create_user_toolA

Create a new WorkBoard user (requires Data-Admin role).

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameYesUser's first name
last_nameYesUser's last name
emailYesUser's email address
designationNoUser's job title or designation

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses the creation action and role requirement but omits details like return value or side effects, despite an output schema existing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence that conveys the essential information without extraneous words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and an output schema, the description covers the core purpose and a key prerequisite. It could mention the expected response but is adequate for a simple create tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds little beyond the schema. The description does not elaborate on parameter specifics or constraints beyond their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create', the resource 'WorkBoard user', and a prerequisite role, distinguishing it from sibling tools like workboard_create_activity_tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes the required 'Data-Admin' role, providing clear context for when to use. However, it does not specify when not to use or mention alternatives like update_user_tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_create_workstream_toolA

Create a new workstream for a team.

Requires team manager or co-manager permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
ws_nameYesName of the workstream
team_idYesParent team ID
ws_ownerYesUser ID of the team manager or co-manager
ws_objectiveNoOptional descriptive narrative or objective statement

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only discloses the permission requirement, lacking information on mutation behavior, error handling, or idempotency. Limited transparency for a create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states the purpose, second adds a critical prerequisite. No unnecessary words, efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers purpose and permissions but omits details like return value, constraints on ws_name, or error conditions. With an output schema present, return format is covered, but completeness is adequate rather than thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already describes all parameters. The description adds no additional semantic meaning beyond what is in the schema, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Create a new workstream for a team,' providing a specific verb, resource, and context. It distinguishes from sibling tools like 'update' or 'get' workstreams.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions required permissions (team manager or co-manager) but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. Usage is implied but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_activity_toolB

Get a single WorkBoard action item by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
activity_idYesAction item ID (positive integer)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the function without disclosing behavioral traits like read-only nature, permission requirements, or error handling. For a simple retrieval, minimal transparency is acceptable but could be improved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It is appropriately front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID operation with an output schema, the description is adequate. It could mention that it returns the action item details, but the output schema presumably covers that. The description is complete enough given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the parameter description already clear. The description does not add additional semantics beyond the schema, but the baseline for high coverage is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get a single WorkBoard action item by its ID', specifying verb and resource. It distinguishes from siblings like workboard_list_activities_tool which returns multiple items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not mention that users should use workboard_list_activities_tool for listing or workboard_create_activity_tool for creating. The name implies usage, but no context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_my_key_results_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_prior_yearsNoIf True, include key results from prior years. Defaults to False (current year only).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses key behavioral traits: returns metric names, current values, targets, IDs; by default only current year results. Lacks details on pagination or ordering, but tool is simple with one optional parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with front-loaded purpose, clear usage guidance, and parameter explanation. No wasted words or redundancy. Every sentence serves a distinct purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, output schema exists), the description fully covers purpose, usage, parameter, and return content. It is sufficient for an AI agent to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters (one boolean with description). The description adds usage context ('Set include_prior_years=True to see key results from previous years') but does not significantly extend beyond schema documentation. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'List all key results (metrics) the current user owns or has access to', clearly identifying the verb, resource, and scope. This distinguishes it from the sibling 'workboard_get_user_key_results_tool', which likely targets a different user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear recommended use: 'Use this to find metric IDs and see current progress before updating with workboard_update_key_result_tool.' Also explains the include_prior_years parameter behavior. However, it doesn't explicitly state when not to use it, though the context implies it's for the current user's own key results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_my_objectives_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
objective_idsNoOptional list of specific objective IDs to fetch. If not provided, objectives are auto-discovered from the user's key results.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description states it retrieves objectives via auto-discovery, but does not detail potential side effects or edge cases (e.g., empty results, auth enforcement). Adequate but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: three short sentences front-load purpose and include critical usage guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (1 optional param, output schema exists), description provides enough context for an agent to select and use it correctly. Minor gap: no mention of authentication context, but implied by 'authenticated user'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter at 100%; description adds value by explaining the auto-discovery behavior when parameter is omitted, which aids correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves the current user's objectives with key results, distinguishing it from sibling tools like workboard_get_objectives_tool by emphasizing automatic user determination and no ID requirement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends use when users ask about 'my objectives' or 'my OKRs', implying alternatives for other cases. It also explains the key benefit: no IDs needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_objective_details_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID (positive integer). Get this from workboard_get_user_tool.
objective_idYesObjective ID (positive integer).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the return fields (objective name, progress, status, dates, key results) but does not explicitly mention that it is a read-only operation or state any side effects. For a read tool, this is acceptable but could be improved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. First sentence states purpose, second details returns, third gives a helpful hint. It is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main return contents and prerequisites. Since an output schema exists, the description does not need to detail every field. However, it lacks mention of error handling or status codes, but given the tool's simplicity, it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions, but the description adds value by instructing to get user_id from workboard_get_user_tool, clarifying the parameter's source beyond the schema's type and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets full details for a single objective including key results, with specific verb 'Get' and resource 'objective details'. It distinguishes from siblings like workboard_get_objectives_tool by specifying 'single objective'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a explicit prerequisite: use workboard_get_user_tool to get the user ID. While it does not explicitly state when not to use it, the context implies it is for retrieving details of a specific objective, which is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_objectives_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID (positive integer). Get this from workboard_get_user_tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It notes that all objectives are returned with full pagination and mentions optional fields like workstreams and status_color, which is helpful. It does not need to state read-only since the name 'get' implies it, but no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. The first sentence states the core purpose, the second adds return details, and the third provides usage guidance. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single well-described parameter, existence of an output schema, and clear prerequisites, the description is complete. It covers what the tool does, what it returns, and how to obtain the required input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'user_id' has a detailed schema description (positive integer, get from workboard_get_user_tool). The tool description repeats this guidance, but does not add new semantic meaning beyond the schema. Since schema coverage is 100%, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves objectives owned by a specific user via their user ID. It distinguishes from sibling tools like workboard_get_my_objectives_tool and workboard_get_user_key_results_tool by specifying the required user ID, and it directs the user to other tools for obtaining that ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on prerequisite steps: using workboard_get_user_tool to find the current user's ID and workboard_get_team_members_tool to resolve a name/email. It lacks explicit instructions on when not to use this tool, but the context implies alternatives exist for the current user's objectives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_team_members_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idYesThe WorkBoard team ID (get from workboard_get_teams_tool)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It implies a read operation ('Get all members') and mentions the output fields. However, it does not explicitly state the tool is read-only, nor does it disclose potential issues like required permissions or team existence validation. The description is adequate but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two functional sentences plus a third sentence with a usage tip. Every sentence adds value, and the purpose is front-loaded. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter schema and existence of an output schema, the description covers the core functionality, input derivation, and a typical workflow. There is no missing critical context for a list-members tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for team_id. The tool description adds context about resolving names/emails but does not significantly enhance parameter semantics beyond what the schema already provides (e.g., indicating the ID comes from workboard_get_teams_tool). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets all members of a WorkBoard team, including user IDs and emails. It also specifies a secondary use (resolving names/emails to user_id). This distinguishes it from siblings like workboard_get_teams_tool (lists teams) and workboard_get_user_tool (single user).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool ('resolve a person's name or email to their WorkBoard user_id') and suggests a combination with workboard_get_objectives_tool. It does not provide explicit when-not-to-use guidance or alternatives, but the context is sufficiently clear with a concrete example.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_teams_toolA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description discloses that it returns a list of teams with specific fields and is read-only (implied by 'get'). It could be more explicit about safety, but it does not contradict any annotations and is straightforward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and one list of return fields, highly concise, front-loaded with purpose, and every sentence adds essential information with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and presence of output schema, the description fully covers the tool's purpose, return values, and relationship to siblings. It is complete for a simple get-all teams tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds value by explaining the return fields beyond the schema, meeting the baseline of 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all teams the authenticated user belongs to' with specific verb (get) and resource (teams), and distinguishes from sibling tool workboard_get_team_members_tool by mentioning that the latter gets members for a specific team.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use context (get teams for authenticated user) and explicitly names the alternative workboard_get_team_members_tool for getting full member list, giving clear guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_team_workstreams_toolA

Get all workstreams belonging to a specific team.

Use workboard_get_teams_tool to find team IDs first.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idYesTeam ID (positive integer)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the operation is read-only and scoped to a team, but does not elaborate on pagination, ordering, or other behavioral traits. Adequate for a simple retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff; every sentence is essential. Front-loaded with the action, followed by helpful guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple inputs, presence of output schema, and no annotations, the description is nearly complete. It could mention alternatives but is sufficient for a focused retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for team_id. The description adds value by explaining how to obtain the team ID (via workboard_get_teams_tool), which goes beyond the schema's definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all workstreams belonging to a specific team,' using a specific verb and resource, and distinguishes from sibling tools like workboard_get_workstreams_tool by specifying team scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit prerequisite guidance with 'Use workboard_get_teams_tool to find team IDs first,' but does not provide when-not-to-use or mention the alternative general workstream tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_user_key_results_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID (positive integer). Get this from workboard_get_team_members_tool.
include_prior_yearsNoIf True, include key results from prior years. Defaults to False (current year only).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description explains default behavior (current year only) and the optional include_prior_years parameter. Does not explicitly state read-only, but tool name and description imply retrieval. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise yet informative. Four sentences, each adding value. Front-loaded with purpose, then usage guidance, then parameter context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and parameters are fully described in schema and further in description, the tool is complete. It covers scope (any user), default filter, and hints for resolving IDs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters have descriptions. The description adds value by explaining how to obtain the user_id from other tools and clarifying the default behavior of include_prior_years.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists key results for a specific user by user ID. Distinguishes from sibling 'workboard_get_my_key_results_tool' by specifying 'any user' and from other tools by focusing on key results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (reviewing KRs, e.g., for direct reports) and provides pointers to resolve names to IDs via other tools. Also notes limitation: only knows WorkBoard user IDs, not organizational roles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_user_toolA

Get a WorkBoard user by ID, or the current authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoUser ID (positive integer). If not provided, returns the current authenticated user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It states the action but omits details like permissions, error handling, or what constitutes a valid user. For a simple get tool, this is adequate but does not exceed minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no wasted words. It communicates the core functionality efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description covers the essential behavior. It explains the two retrieval modes, which is sufficient for a get-by-id tool. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single parameter, so the description adds no new meaning beyond the schema. The description's mention of 'current authenticated user' aligns with the schema's default behavior, but does not enhance it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a WorkBoard user by ID or the current authenticated user. It distinguishes from sibling tools like workboard_list_users_tool which returns a list, and workboard_get_my_* tools which are more specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two modes (by ID or current user) but does not provide guidance on when to use this tool versus alternatives like workboard_list_users_tool or other get tools. It lacks explicit context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_workstream_activities_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ws_idYesWorkstream ID (positive integer)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool returns 'workstream metadata plus every action item with descriptions, owners, due dates, comments, sub-actions, and attached files', clearly outlining the return content. No side effects or prerequisites are mentioned, but as a read operation, it is sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, and contains no filler. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter) and the existence of an output schema, the description adequately covers the return data by listing key fields (metadata, action items with sub-fields). It provides a complete picture for a retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters, with ws_id described as 'Workstream ID (positive integer)'. The description provides no additional parameter semantics beyond the schema, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Get a workstream's full details including all action items', specifying the verb 'Get' and resource 'workstream's full details with action items'. It distinguishes from siblings like workboard_get_workstreams_tool (which likely returns a list without details) and workboard_get_activity_tool (single activity), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving workstream details with actions but does not explicitly state when to use this tool over alternatives like workboard_get_workstreams_tool or workboard_get_activity_tool. No exclusions or context on when not to use it are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_get_workstreams_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ws_idNoOptional workstream ID to fetch a specific workstream.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It mentions the access-based filtering ('accessible to authenticated user') and exclusion of personal workstreams. However, it does not disclose additional behaviors like response format, pagination, or any side effects. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with three short sentences. It front-loads the core purpose ('Get team workstreams') and includes all essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, output schema present), the description covers what it does, what it returns, and what it excludes. Minor omission: no mention of pagination, but not critical for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline is 3. The description adds the word 'filter' for the ws_id parameter, which is a slight enhancement over the schema's 'fetch a specific workstream.' No significant added meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves team workstreams accessible to the user, distinguishing it from personal workstreams. It also notes optional filtering by ID, making the purpose specific and distinct from siblings like workboard_get_workstream_activities_tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for retrieving team workstreams and excludes personal workstreams, but does not explicitly state when to use this over alternatives like workboard_get_my_key_results_tool or workboard_get_team_workstreams_tool. It provides context but no direct comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_list_activities_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ai_ownerNoFilter by owner user ID or email (optional)
ai_stateNoFilter by state: next, doing, done, or pause (optional)
ai_priorityNoFilter by priority: low, med, or high (optional)
ai_effortNoFilter by effort: easy, medium, or huge (optional)
limitNoMaximum number of results (optional)
offsetNoPagination offset (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It states it returns up to 15 items by default and supports pagination/filtering. Does not disclose if results are ordered, or any read-only nature. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each delivering key information: main purpose, default limit, pagination, filters. Front-loaded with primary action. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained. Description covers listing, pagination, and filters. Missing mention of sorting or ordering, but overall adequate for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have descriptions in the schema (100% coverage). The description restates filters (owner, state, priority, effort) and pagination, but adds valuable default limit of 15 not in schema. Adds marginal value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'List' and resource 'action items' are clear. It specifies 'accessible to the authenticated user', but does not explicitly distinguish from sibling tools like workboard_get_workstream_activities_tool which lists activities for a specific workstream.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides instructions for pagination and filtering, but does not state when to use this tool versus alternatives (e.g., workboard_get_activity_tool for a single item). No exclusions or context for when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_list_users_toolA

List all WorkBoard users (requires Data-Admin role).

Returns: List of all users

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It states it lists all users and requires admin role, but lacks details on pagination, response size, or whether the list includes inactive users. This is adequate for a simple list operation but could be more comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no redundant information. Every sentence adds value: first states action and requirement, second states return type.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema but its content is not visible; the description only says 'List of all users' which is vague. For a list tool, it would benefit from specifying key fields returned (e.g., name, email, role). However, given the tool's simplicity and the presence of an output schema, the description is minimally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so no parameter documentation is needed. The description adds no parameter info, but none is required. Schema coverage is effectively 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all WorkBoard users' which specifies the verb (list) and resource (users). It distinguishes from sibling tool workboard_get_user_tool which retrieves a single user, and from create/update tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a role requirement ('requires Data-Admin role'), giving a clear prerequisite. However, it does not specify when to use this tool versus alternatives like workboard_get_user_tool for a specific user, or mention limitations like rate limits or data freshness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_update_activity_toolA

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
activity_idYesAction item ID (positive integer)
ai_descriptionNoNew description — shown as the card title (optional)
ai_noteNoNew notes or body text (optional)
ai_ownerNoNew owner user ID or email (optional)
ai_stateNoNew state: next, doing, done, or pause (optional)
ai_priorityNoNew priority: low, med, or high (optional)
ai_effortNoNew effort: easy, medium, or huge (optional)
ai_due_dateNoNew due date as UNIX timestamp string (optional)
ai_columnNoCustom Kanban column ID to move the card to (optional). Workstreams can define custom columns within each state.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the read-before-write behavior and that only provided fields are updated, which adds useful behavioral transparency beyond the input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences, front-loading the purpose. Each sentence contributes meaningful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers core update behavior and field validations, but given the complexity of 9 parameters and no annotations, it lacks details on error conditions, permissions, or concurrency. An output schema exists, so return values are not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds general context ('Only provided fields are updated') but does not provide per-parameter meaning beyond what the schema already enumerates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Update an existing WorkBoard action item,' with a specific verb and resource. It distinguishes from sibling tools like workboard_create_activity_tool by focusing on updating existing items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when updating an existing action item) but does not explicitly state when not to use or provide alternatives among sibling update tools. Usage context is implied but not fully guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_update_key_result_toolA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
metric_idYesMetric ID (positive integer). Get this from workboard_get_my_key_results_tool.
valueYesThe new progress value (e.g. "75" for 75%).
commentNoOptional check-in comment describing what changed.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states 'update progress' without disclosing side effects, authentication needs, or rate limits. Since the update is a mutation, more detail on what changes (e.g., previous value, response format) is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver purpose and prerequisite with no filler. Front-loaded with the core action: 'Update progress on a key result (metric).'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values need not be explained. The description covers the main use case and prerequisite. Minor gap: does not mention whether comment is truly optional or what the outcome confirmation looks like, but output schema likely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context by mentioning metric IDs come from another tool, but does not elaborate on parameter formats beyond what the schema already provides (e.g., value as string).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates progress on a key result (metric) and identifies it as the primary tool for weekly OKR check-ins. This distinguishes it from sibling tools like workboard_update_activity_tool or workboard_update_user_tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to first use workboard_get_my_key_results_tool to find metric IDs, providing a clear prerequisite. It contextualizes usage for weekly check-ins but does not specify when not to use this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_update_user_toolC

Update an existing WorkBoard user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser ID (positive integer)
first_nameNoUser's first name (optional)
last_nameNoUser's last name (optional)
emailNoUser's email address (optional)
designationNoUser's job title or designation (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It only says 'Update', implying mutation, but does not disclose side effects, permission requirements, or behavior on invalid user_id. The schema provides fields but no behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary verbiage. However, it is too brief and could be more informative without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and an output schema, the description lacks information about mutation behavior, error conditions, or the meaning of optional fields. It is insufficient for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not add parameter meaning beyond what the input schema already provides. The description is minimal and does not clarify field usage or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and resource (existing WorkBoard user), which distinguishes it from create and read tools. However, it does not differentiate from other update tools like update_activity or update_key_result beyond the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, it does not mention that create_user is for new users or get_user for reading. The agent is left to infer usage from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workboard_update_workstream_toolA

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
ws_idYesWorkstream ID (positive integer)
ws_nameNoNew name (optional)
ws_start_dateNoStart date in YYYY-MM-DD (optional)
ws_end_dateNoEnd date in YYYY-MM-DD (optional)
ws_paceNoPace: slow, fast, or steady (optional)
ws_healthNoHealth: ok, good, or risk (optional)
ws_priorityNoPriority: p1 through p5 (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses read-before-write behavior, permission requirements, and valid values for pace, health, and priority. This is sufficient for an update tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each providing essential information without redundancy. It is front-loaded with the primary purpose, then adds behavioral and constraint details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, 1 required, output schema exists), the description covers all necessary aspects: purpose, permissions, behavior, and valid values. It is complete for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by specifying valid enum values for pace, health, and priority, which are not constrained in the schema. This helps the agent understand allowed inputs beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Update an existing workstream's properties.' It uses a specific verb and resource, and distinguishes from sibling tools like create and get operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use: it mentions read-before-write and required permissions (team manager or co-manager). It does not explicitly state when not to use or list alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 24 tool updatesv0.7.0
    • Addedworkboard_create_activity_tool
    • Addedworkboard_create_objective_tool
    • Changedworkboard_create_user_tool5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / designation / description
        Added value: +"User's job title or designation"
      • addedInput schema / properties / email / description
        Added value: +"User's email address"
      • addedInput schema / properties / first_name / description
        Added value: +"User's first name"
      • addedInput schema / properties / last_name / description
        Added value: +"User's last name"
    • Addedworkboard_create_workstream_tool
    • Addedworkboard_get_activity_tool
    • Removedworkboard_get_goal_details_tool
    • Removedworkboard_get_goals_tool
    • Addedworkboard_get_my_key_results_tool
    • Addedworkboard_get_my_objectives_tool
    • Addedworkboard_get_objective_details_tool
    • Addedworkboard_get_objectives_tool
    • Addedworkboard_get_team_members_tool
    • Addedworkboard_get_team_workstreams_tool
    • Addedworkboard_get_teams_tool
    • Addedworkboard_get_user_key_results_tool
    • Changedworkboard_get_user_tool2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / user_id / description
        Added value: +"User ID (positive integer). If not provided, returns the\n     current authenticated user."
    • Addedworkboard_get_workstream_activities_tool
    • Addedworkboard_get_workstreams_tool
    • Addedworkboard_list_activities_tool
    • Changedworkboard_list_users_tool1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedworkboard_update_activity_tool
    • Addedworkboard_update_key_result_tool
    • Changedworkboard_update_user_tool6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / designation / description
        Added value: +"User's job title or designation (optional)"
      • addedInput schema / properties / email / description
        Added value: +"User's email address (optional)"
      • addedInput schema / properties / first_name / description
        Added value: +"User's first name (optional)"
      • addedInput schema / properties / last_name / description
        Added value: +"User's last name (optional)"
      • addedInput schema / properties / user_id / description
        Added value: +"User ID (positive integer)"
    • Addedworkboard_update_workstream_tool
  2. 6 tool updatesv0.1.0
    • First observedworkboard_create_user_tool
    • First observedworkboard_get_goal_details_tool
    • First observedworkboard_get_goals_tool
    • First observedworkboard_get_user_tool
    • First observedworkboard_list_users_tool
    • First observedworkboard_update_user_tool

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct resource-action combination (e.g., create_activity, get_activity, list_activities). Tools for different resources (activities, objectives, key results, users, workstreams, teams) have clear boundaries. The few similar-sounding tools (e.g., get_my_objectives vs get_objectives) are well-differentiated by parameters and descriptions.

Naming Consistency5/5

All tools follow the consistent pattern `workboard_<verb>_<noun>_tool`, using snake_case throughout. Verbs are limited to create, get, list, update. This makes tool selection predictable and unambiguous.

Tool Count4/5

At 22 tools, the server is slightly above the typical well-scoped range (3-15) but still reasonable given the complexity of the domain (multiple resource types with CRUD and queries). Each tool serves a distinct purpose, and no tool feels superfluous.

Completeness3/5

The tool surface covers most CRUD operations for primary resources but lacks delete tools for activities, objectives, users, and workstreams. Also missing update for objectives and create/delete for key results. These gaps could hinder workflows requiring removal of entities.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides comprehensive access to LinkedIn data and functionality, enabling data retrieval and user account management through the HorizonDataWave API.
    26
    37
    63
    JavaScript
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A production-grade Model Context Protocol server that enables secure management of context data through a React dashboard, supporting ZIP processing, context approval workflows, and system monitoring.
    225
    -
  • F
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server providing access to WeWork project management data, enabling project search, task analysis, and statistics retrieval through Claude and other LLM clients.
    6
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/crunchtools/mcp-workboard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server