Every tool listed below can be invoked by an MCP-connected AI assistant. Each tool enforces scope-based authorization, validates input via Zod schemas, and dispatches to the underlying tRPC procedure. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) help the AI make safe decisions about when to call each tool.

Browse the organizational hierarchy: Workspaces > Projects > Boards.

list_workspaces

List all workspaces in the organization. The starting point for discovering projects and boards.

PropertyValue
Scoperead:items
Input(none)
AnnotationsreadOnlyHint: true, idempotentHint: true

Example call and response:

// Input
{ "tool": "list_workspaces", "arguments": {} }

// Output
{
  "workspaces": [
    { "id": "clx9ws001", "name": "Brussels Manufacturing Site", "slug": "brussels-site", "level": 1, "parentId": null },
    { "id": "clx9ws002", "name": "Quality Assurance", "slug": "qa-dept", "level": 2, "parentId": "clx9ws001" },
    { "id": "clx9ws003", "name": "Sterile Filling Area", "slug": "sterile-filling", "level": 3, "parentId": "clx9ws002" }
  ]
}

list_projects

List all projects in a specific workspace.

PropertyValue
Scoperead:items
InputworkspaceId (string, required)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Input
{ "tool": "list_projects", "arguments": { "workspaceId": "clx9ws001" } }

// Output
{
  "projects": [
    { "id": "clx9pj001", "name": "OEE Improvement Q2-2026", "slug": "oee-q2-2026", "description": "Track OEE metrics and improvement actions" },
    { "id": "clx9pj002", "name": "CAPA Tracking", "slug": "capa-tracking", "description": "Corrective and preventive action management" }
  ]
}

get_board

Get the full board data for a project — groups, columns, items, and values. Returns a resource link to probeya://board/{boardId}.

PropertyValue
Scoperead:items
InputprojectId (string, required)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Input
{ "tool": "get_board", "arguments": { "projectId": "clx9pj001" } }

// Output (abbreviated)
{
  "board": {
    "id": "clx9bd001",
    "name": "OEE Improvement Q2-2026",
    "groups": [
      { "id": "clx9gr001", "name": "To Do", "itemCount": 8 },
      { "id": "clx9gr002", "name": "In Progress", "itemCount": 3 },
      { "id": "clx9gr003", "name": "Done", "itemCount": 12 }
    ],
    "columns": [
      { "id": "clx9co001", "name": "Status", "type": "status" },
      { "id": "clx9co002", "name": "Person", "type": "person" },
      { "id": "clx9co003", "name": "Due Date", "type": "date" },
      { "id": "clx9co004", "name": "Priority", "type": "priority" }
    ],
    "items": [
      {
        "id": "clx9it001",
        "name": "Replace seal on filling head #3",
        "groupId": "clx9gr002",
        "values": {
          "clx9co001": { "label": "In Progress", "color": "#fdab3d" },
          "clx9co002": { "id": "clx9us003", "name": "Dr. Marie Chen" },
          "clx9co003": "2026-04-15",
          "clx9co004": { "label": "High", "color": "#e2445c" }
        }
      }
    ]
  }
}

Item CRUD

Create, update, delete, and move board items. All write tools return resource links back to the parent board.

create_item

PropertyValue
Scopewrite:items
InputboardId (required), groupId (required), name (required)
AnnotationsdestructiveHint: false, idempotentHint: false
// Pharma example: create a deviation item
{
  "tool": "create_item",
  "arguments": {
    "boardId": "clx9bd001",
    "groupId": "clx9gr001",
    "name": "DEV-2026-0851: Temperature excursion during Batch BX-4475 hold"
  }
}
// Response: { "id": "clx9it015", "name": "DEV-2026-0851: ...", "boardId": "clx9bd001", "groupId": "clx9gr001" }

update_item

PropertyValue
Scopewrite:items
InputitemId (required), name (optional), assigneeId (optional)
AnnotationsdestructiveHint: false, idempotentHint: true
{
  "tool": "update_item",
  "arguments": {
    "itemId": "clx9it015",
    "name": "DEV-2026-0851: Temperature excursion (CAPA required)",
    "assigneeId": "clx9us003"
  }
}

delete_item

Permanently deletes an item and all associated data. Uses MCP elicitation to request user confirmation before executing (graceful fallback if the client does not support elicitation).

PropertyValue
Scopewrite:items
InputitemId (required)
AnnotationsdestructiveHint: true, idempotentHint: false
// The AI will ask for confirmation before executing this tool
{ "tool": "delete_item", "arguments": { "itemId": "clx9it015" } }

move_item

Move an item to a different group (e.g., “To Do” to “In Progress”).

PropertyValue
Scopewrite:items
InputitemId (required), groupId (required), sortOrder (optional, default: 0)
AnnotationsdestructiveHint: false, idempotentHint: true
{
  "tool": "move_item",
  "arguments": {
    "itemId": "clx9it015",
    "groupId": "clx9gr002",
    "sortOrder": 0
  }
}

set_item_values

Set one or more cell values for an item. Value format depends on column type:

Column TypeValue FormatExample
StatusJSON object{"label": "Done", "color": "#00c875"}
PriorityJSON object{"label": "Critical", "color": "#e2445c"}
DateISO string"2026-04-18"
PersonJSON object{"id": "clx9us003", "name": "Dr. Chen"}
TextPlain string"Batch BX-4471"
PropertyValue
Scopewrite:items
InputitemId (required), values (array of { columnId, value }, required)
AnnotationsdestructiveHint: false, idempotentHint: true
{
  "tool": "set_item_values",
  "arguments": {
    "itemId": "clx9it015",
    "values": [
      { "columnId": "clx9co001", "value": { "label": "In Review", "color": "#fdab3d" } },
      { "columnId": "clx9co003", "value": "2026-04-18" },
      { "columnId": "clx9co004", "value": { "label": "Critical", "color": "#e2445c" } }
    ]
  }
}

search

Full-text search across items, projects, and workspaces by keyword. Case-insensitive substring matching. Returns up to 5 results per entity type.

PropertyValue
Scoperead:search
Inputquery (string 1-200 chars, required)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Input
{ "tool": "search", "arguments": { "query": "batch BX-4471" } }

// Output
{
  "items": [
    { "id": "clx9it010", "name": "DEV-2026-0847: pH excursion on Batch BX-4471" },
    { "id": "clx9ac002", "name": "CAPA-2026-0194: Investigate Batch BX-4471 OOS" }
  ],
  "projects": [],
  "workspaces": []
}

KPIs

Monitor and update SQCDP performance indicators.

list_kpis

List all KPI definitions for a board with latest values and active targets.

PropertyValue
Scoperead:kpis
InputboardId (required)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Input
{ "tool": "list_kpis", "arguments": { "boardId": "clx9bd001" } }

// Output (abbreviated)
{
  "kpis": [
    {
      "id": "clx9kp001",
      "name": "OEE",
      "category": "delivery",
      "unit": "%",
      "direction": "higher_is_better",
      "thresholds": { "red": 65, "amber": 75, "green": 85 },
      "latestValue": { "value": 87.3, "date": "2026-04-13", "status": "green" },
      "activeTarget": { "targetValue": 90, "periodEnd": "2026-12-31" }
    }
  ]
}

set_kpi_value

Record a new KPI measurement data point. Uses upsert semantics (same KPI + date = overwrite).

PropertyValue
Scopewrite:kpis
InputkpiDefinitionId (required), date (YYYY-MM-DD, required), value (string, required), comment (optional)
AnnotationsdestructiveHint: false, idempotentHint: true
// Pharma example: recording daily OEE from MES
{
  "tool": "set_kpi_value",
  "arguments": {
    "kpiDefinitionId": "clx9kp001",
    "date": "2026-04-13",
    "value": "87.3",
    "comment": "Line 2 down 45min for seal replacement. A=91% P=96% Q=99.8%"
  }
}

get_kpi_alerts

Get KPIs breaching red or amber thresholds. Only returns alert-state indicators.

PropertyValue
Scoperead:kpis
InputboardId (required)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Output
{
  "alertCount": 2,
  "alerts": [
    { "kpiName": "OEE", "status": "amber", "value": 82.5, "threshold": { "amber": 75, "green": 85 } },
    { "kpiName": "Right First Time", "status": "amber", "value": 96.2, "threshold": { "amber": 95, "green": 98 } }
  ]
}

Actions

Manage tier-based action items with lifecycle tracking: open > assigned > in_progress > done > verified.

list_actions

PropertyValue
Scoperead:actions
InputboardId (required), status (optional), tierLevel (1-3, optional), category (S/Q/C/D/P/custom, optional), overdue (boolean, optional)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Pharma example: get overdue quality actions
{
  "tool": "list_actions",
  "arguments": {
    "boardId": "clx9bd001",
    "category": "Q",
    "overdue": true
  }
}

// Output
{
  "actions": [
    {
      "id": "clx9ac002",
      "title": "CAPA-2026-0194: Investigate Batch BX-4471 OOS",
      "status": "assigned",
      "priority": "critical",
      "category": "quality",
      "tierLevel": 1,
      "responsibleId": "clx9us003",
      "dueDate": "2026-04-10"
    }
  ]
}

create_action

PropertyValue
Scopewrite:actions
InputboardId (required), title (required), description (optional), responsibleId (optional), dueDate (YYYY-MM-DD, optional), priority (critical/high/medium/low, default: medium), category (S/Q/C/D/P/custom, default: custom)
AnnotationsdestructiveHint: false, idempotentHint: false
// Pharma example: create CAPA from OOS
{
  "tool": "create_action",
  "arguments": {
    "boardId": "clx9bd001",
    "title": "CAPA-2026-0198: Root cause investigation — Assay failure Batch BX-4478",
    "description": "Assay 103.2% vs spec 95-102%. Batch held pending RCA.",
    "priority": "critical",
    "category": "Q",
    "responsibleId": "clx9us003",
    "dueDate": "2026-04-20"
  }
}

update_action

PropertyValue
Scopewrite:actions
Inputid (required), title (optional), description (optional), status (optional), responsibleId (optional), dueDate (optional), priority (optional)
AnnotationsdestructiveHint: false, idempotentHint: true

escalate_action

Escalate an action to a higher tier: T1 (team) > T2 (department) > T3 (site).

PropertyValue
Scopewrite:actions
Inputid (required), reason (optional, recommended for audit trail)
AnnotationsdestructiveHint: false, idempotentHint: false
{
  "tool": "escalate_action",
  "arguments": {
    "id": "clx9ac002",
    "reason": "Root cause involves vendor raw material quality. Needs QA Director decision."
  }
}

Dashboard and Organization

get_dashboard_stats

PropertyValue
Scoperead:dashboard
Input(none)
AnnotationsreadOnlyHint: true, idempotentHint: true
// Output
{ "totalItems": 847, "totalProjects": 12, "totalMembers": 43, "completionRate": 0.74 }

list_members

List all organization members with roles. Use to find user IDs for assignments.

PropertyValue
Scoperead:items
Input(none)
AnnotationsreadOnlyHint: true, idempotentHint: true

AI-Powered

analyze_board

Uses MCP LLM sampling to ask the connected AI to analyze a board’s health, bottlenecks, and recommendations. Falls back to returning raw data if the client does not support sampling.

PropertyValue
Scoperead:items
InputprojectId (required), focus (bottlenecks/workload/kpis/actions/overall, default: overall)
AnnotationsreadOnlyHint: true, idempotentHint: true
{
  "tool": "analyze_board",
  "arguments": {
    "projectId": "clx9pj001",
    "focus": "bottlenecks"
  }
}

Collaboration

add_comment

PropertyValue
Scopewrite:items
InputitemId (required), content (required)
AnnotationsdestructiveHint: false, idempotentHint: false

Technology Transfer

list_tech_transfers

PropertyValue
Scopeprojects:read
Inputstatus (optional), phase (optional), search (optional)

get_tech_transfer

PropertyValue
Scopeprojects:read
Inputid (required)

Compliance Radar

list_compliance_requirements

List GxP compliance requirements filtered by framework, status, or risk level.

PropertyValue
Scopecompliance:read
Inputframework (optional), status (optional), riskLevel (optional)

get_compliance_dashboard

PropertyValue
Scopecompliance:read
Input(none)

Hoshin Kanri

list_hoshin_matrices

| Scope | projects:read | Input | status (optional) |

get_hoshin_matrix

| Scope | projects:read | Input | id (required) |


Inspection Shield

list_inspection_checklists

GMP/FDA/ISO inspection checklists.

| Scope | compliance:read | Input | type (optional), status (optional) |

list_inspection_sessions

| Scope | compliance:read | Input | checklistId (optional), status (optional) |


Asset Pulse

list_assets

List equipment and assets with maintenance status (ISO 55000).

| Scope | assets:read | Input | category (optional), status (optional), search (optional) |

log_asset_maintenance

{
  "tool": "log_asset_maintenance",
  "arguments": {
    "assetId": "clx9as001",
    "maintenanceType": "calibration",
    "description": "Annual calibration of pH meter #7 — NIST traceable buffer verification",
    "performedAt": "2026-04-13T10:00:00Z",
    "nextDueAt": "2027-04-13T10:00:00Z"
  }
}

| Scope | assets:write | Input | assetId (required), maintenanceType (preventive/corrective/calibration/inspection), description (required), performedAt (ISO datetime), nextDueAt (optional) |


Routine Runner

list_routine_templates

| Scope | routines:read | Input | category (optional) |

start_routine_execution

| Scope | routines:write | Input | templateId (required) |


Knowledge Forge

list_knowledge_articles

| Scope | knowledge:read | Input | category (optional), status (optional), search (optional) |

create_knowledge_article

{
  "tool": "create_knowledge_article",
  "arguments": {
    "title": "Seal replacement procedure for filling head Type-B",
    "content": "Step 1: Depressurize the filling manifold...",
    "category": "maintenance",
    "tags": ["filling", "seals", "type-b", "preventive-maintenance"]
  }
}

| Scope | knowledge:write | Input | title (1-255 chars), content (required), category (optional), tags (string array, optional) |


Monte Carlo Simulation

list_simulations

| Scope | projects:read | Input | projectId (required) |

run_monte_carlo

Run a Monte Carlo schedule simulation. Returns P10/P50/P80/P90 dates, sensitivity analysis, and critical path.

| Scope | projects:write | Input | simulationId (required) |


Additional Tools

IFQHC Training: list_qualifications

| Scope | training:read | Input | userId (optional), frameworkId (optional) |

Tickets: list_tickets

| Scope | tickets:read | Input | status (optional), priority (optional) |

Tickets: create_ticket

| Scope | tickets:write | Input | title (1-255 chars), description (optional), priority (critical/high/medium/low) |

Shift Handover: list_shift_handovers

| Scope | boards:read | Input | boardId (required) |

Problem Solving: list_problem_sheets

| Scope | boards:read | Input | status (optional), type (optional) |

PPM Programs: list_ppm_programs

| Scope | projects:read | Input | status (optional) |


Error Handling

All tools return errors in the same format:

{
  "content": [{ "type": "text", "text": "Error: Item not found in this organization." }],
  "isError": true
}
ErrorCauseAI Recovery
Insufficient scopeAPI key missing required scopeInform user to generate a new API key with the needed scope
Tool not permittedMCP key allowedTools does not include this toolInform user to update MCP key permissions
Not foundEntity does not exist in the user’s organizationAsk user to verify the ID, or use search to find the correct one
Invalid inputMissing required field or invalid formatFix the input and retry
Token budget exceededMonthly token limit reached for MCP keyInform user to increase the budget or wait for the next billing cycle