Skip to main content
Glama
callen-assetworks

FA-Technician-Brain-MCP

FA-Technician-Brain-MCP

A Model Context Protocol (MCP) knowledge server for the Technician Portal module in FleetFocus FA/EAM (InfoCenter). This server provides structured, queryable information about the module's pages, workflows, API endpoints, database schema, field specifications, UI interaction patterns, and validation rules.

Purpose

This MCP is designed to be consumed by AI agents (e.g., Playwright automation, test generation, code review) that need to understand the Technician Portal's behavior without making live API calls. All data is hardcoded from research documents — no credentials, no live connections.

Related MCP server: mcp-servicefusion

What's Covered

Domain

Coverage

Pages

18 screens/pages with full field specs, actions, and navigation

Workflows

8 named workflow recipes (clock in, job on/off, create WO, finish/close, etc.)

API Endpoints

50+ endpoints across Custom Web API, V2 OData, and V3

Database

23 tables with columns and relationships

Fields

Component-level specs (type, validation, API mapping)

Interactions

UI patterns (CCL components, dialogs, drawers, cards)

Validation

Server-side rules and client-side guards

Transitions

Work order status state machine

Permissions

Role/persona-based access by state

MCP Tools

Tool

Description

get_page

Full page specification by page_id

get_workflow

Named workflow recipe with step-by-step instructions

get_api_endpoint

Endpoint spec by entity + operation

get_table_schema

Database table definition with columns

get_field

Field-level spec (component, validation, API mapping)

get_interaction_pattern

UI component interaction pattern

get_validation_rules

Validation rules for entity/operation

get_transitions

Status transitions from a given state

get_persona_permissions

What a persona can do at a given WO state

search

Full-text search across all data

get_test_fixtures

Get test fixture data by entity or ID for automation

check_provenance

Get provenance info for a data path (sources, last checked dates)

Setup

npm install
npm run build
npm start

Module Context

  • Application: FleetFocus FA/EAM InfoCenter

  • Module Path: InfoCenterBase/InfoCenter/ClientApp/src/app/modules/technician/

  • Design System: CCL (Component Class Library)

  • License: Independent beta license key

  • Version: 26.1 Beta (as of research date)

  • Legacy Screen ID: 7003 (ASP.NET WebForms predecessor)

Architecture

The Technician Portal uses two API layers:

  1. Custom InfoCenter Web API (/Infocenter/api/Technician/...) — Session-cookie auth, business logic operations

  2. V2 OData API (:9001/api/v2/...) — OAuth2 Bearer token, entity read/query operations

There are no V3 technician-specific endpoints. All business logic lives in FA-Suite controllers.

Provenance Tracking

Every piece of data in this MCP is tracked back to its source. The provenance registry (src/data/provenance.ts) maps each data path to one or more sources with:

  • Source type: jira, github, figma, api, confluence, or manual

  • URL: Direct link to the source material

  • Description: What information was extracted from the source

  • lastChecked: When the source was last verified

  • lastChanged: When the source was last observed to have changed

Checking for Updates

Run the source checker to see if any sources have been updated since last check:

# Set credentials
export JIRA_EMAIL="your-email@example.com"
export JIRA_API_TOKEN="your-jira-api-token"
export GITHUB_TOKEN="your-github-pat"

# Run check
npm run check-sources

Or use the shell wrapper:

./scripts/update-sources.sh

The checker:

  • Queries Jira REST API for issue updated timestamps

  • Queries GitHub API for file last-commit dates

  • Compares against recorded lastChanged dates

  • Reports which sources have newer changes

  • Does NOT auto-apply changes (manual review required)

Exit codes:

  • 0 — All sources up to date

  • 1 — Changes detected (review needed)

  • 2 — Script error

Using Provenance via MCP

Tool: check_provenance
Input: { "data_path": "pages.home" }

Returns the provenance entries showing where the home page data was sourced from and when it was last verified.

Test Fixtures

The test fixture registry (src/data/test-fixtures.ts) provides stable test data values for automation. Fixtures include:

ID

Entity

Description

default_technician

Operator

CA user with full admin access

test_equipment_fleet_001

Equipment

QA-FLEET-001 vehicle

test_equipment_fleet_004

Equipment

QA-FLEET-004 (preferred for OM)

test_vendor_qa

Vendor

QA test vendor for outsourced maintenance

test_task_ca_rp_01

TaskCode

001-CA-RP-01 task for OM tickets

test_work_order_open

WorkOrder

Template for OPEN WO creation

test_time_code_regular

TimeCode

REG time code for clock-in

test_time_code_indirect

TimeCode

IND time code for indirect labor

test_location_main

Location

Main shop location

test_delay_code

DelayCode

PARTS delay reason

pw_auto_ticket_mgmt_user

Operator

Playwright automation OM user

test_infocenter_url

Environment

QADEPLOY URLs and connection info

Using Fixtures via MCP

Tool: get_test_fixtures
Input: { "entity": "Equipment" }

Returns all equipment fixtures. Or get a specific fixture:

Tool: get_test_fixtures
Input: { "id": "default_technician" }

Available Tools

12 tools
check_provenanceB

Get provenance info for a data path — shows where the data came from and when sources were last checked.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_pathYesData path to look up (e.g., 'pages.home', 'workflows.clock_in', 'api_endpoints.technician', 'db_schema.JOB_MAIN')

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It says the tool 'shows where the data came from and when sources were last checked,' which is some behavioral context, but it doesn't disclose what happens if the path doesn't exist, whether it's read-only (implied but not stated), how freshness is measured, or what the output structure looks like. For a read-info tool without annotations, this is a meaningful gap.

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, efficient sentence that fits all relevant information in one breath. It states the verb, resource, and the two key outputs (data origin and last-check timestamps) with zero wasted words. Well-structured and front-loaded.

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?

For a simple one-parameter lookup tool with full schema coverage and no output schema, the description is mostly adequate. The main gap is behavioral — the tool doesn't explain failure modes or whether it's safe/read-only, which matters given the complete absence of annotations. It's a competent description but doesn't fully round out the usage story for an agent.

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%, with the single data_path parameter documenting its format and providing three concrete examples ('pages.home', 'workflows.clock_in', etc.). The description's phrase 'where the data came from and when sources were last checked' slightly enriches understanding of what the parameter's lookup will return, but the heavy lifting is done by the schema. Baseline 3 is appropriate.

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 tool gets provenance info for a data path and elaborates on what that means ('shows where the data came from and when sources were last checked'). The verb 'Get' plus resource 'provenance info for a data path' is specific and action-oriented. It doesn't explicitly distinguish from siblings by name, but the concept of provenance is unique enough among tools like get_table_schema, get_field, and get_page that differentiation is reasonably clear.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't address when provenance matters (e.g., before trusting data, after data updates, for auditing changes) or when a sibling tool like get_field or get_table_schema would be more appropriate. The concept of provenance is implied to be for tracing data origins, but no explicit context or exclusions are given.

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

get_api_endpointC

Get API endpoint specification by entity and operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEntity name (e.g., 'technician', 'clock', 'task', 'employee', 'pm_checklist', 'part_request', 'v2_current_labor', 'v2_clock', 'v2_employee', 'v2_time_code', 'v2_work_assignment', 'v2_work_order_task', 'v2_labor_posting')
operationNoOperation (e.g., 'get_work_orders', 'start_task', 'stop_task', 'clock_in', 'clock_out', 'get_items', 'list')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It doesn't state what happens if the operation is omitted (returns all endpoints for an entity?), whether the tool returns raw OpenAPI-style specs or simplified descriptions, or what error behavior occurs for unknown entities. Minimal behavioral context beyond the literal purpose.

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 efficient sentence of 9 words. It's appropriately short but arguably under-specified for a tool that has valuable usage nuance (optional operation parameter, entity name conventions). Concise but not complete — though this dimension rewards brevity and front-loading, which it achieves.

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?

With 2 params, no output schema, and no annotations, the description is modest but basic. The absence of an output schema shifts burden to the description to indicate what an 'API endpoint specification' contains (URL, method, request/response shapes?), but it doesn't. For a tool with a large list of known entities and operations, some guidance about where these names come from would help. Adequate but has clear gaps.

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 both parameters well-documented via extensive example lists in the schema itself. The description adds the phrase 'by entity and operation' which mirrors the parameters but adds little value beyond the schema. Baseline 3 is appropriate since the schema already does the heavy lifting with concrete examples.

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 states the verb 'Get' and resources 'API endpoint specification' filtered by entity and operation. It distinguishes itself somewhat from siblings like get_table_schema and get_field by focusing on API endpoint specs, though it doesn't explicitly differentiate itself. The 'by entity and operation' qualifier adds useful specificity.

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?

The description gives no when-to-use guidance or exclusions. It doesn't clarify when to use this over get_table_schema, get_field, or get_interaction_pattern. No mention of when 'operation' is required vs optional, or what happens if only entity is provided. The user must infer usage context from the parameter examples.

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

get_fieldB

Get field-level specification including component type, validation, and API mapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
field_idYesField identifier (e.g., 'work_order_id', 'employee_id', 'time_code', 'task_id', 'labor_hours', 'delay_code')

TDQS

B3.1/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 of behavioral disclosure. It does not state whether this is a read-only safe operation, how much data is returned, whether the field must exist or what the error behavior is, or the granularity of the spec (single field vs. summary). For an unannotated tool with no output schema, this is a notable gap.

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 sentence that is front-loaded and efficient with zero waste. It names the resource, the action, and the key content categories immediately.

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?

For a single-parameter lookup tool with 100% schema coverage, the description is mostly adequate. However, the lack of an output schema and absence of annotations means the description could usefully add return format details or note associations (e.g., 'use after get_table_schema' or 'returns the full spec in JSON'). It covers the essential purpose but leaves return-shape expectations unspecified.

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%, with the field_id parameter fully documented including example values. Per the rubric, this sets a baseline of 3. The description adds the context that the field spec includes component type, validation, and API mapping, which helps the agent understand what the field_id will be used to retrieve, but it doesn't add syntactic or format details beyond the 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 description states a specific verb+resource ('Get field-level specification') and lists the included content categories (component type, validation, API mapping). This is reasonably clear and distinct from siblings like get_validation_rules and get_api_endpoint, though the overlap with get_validation_rules isn't explicitly addressed.

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 is given on when to use this tool versus alternatives like get_validation_rules (which also covers validation) or get_api_endpoint (which covers API mapping). The description implies usage by enumerating content but provides no explicit when-to-use or exclusion guidance.

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

get_interaction_patternC

Get UI component interaction pattern for automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pattern_idYesPattern identifier (e.g., 'metric_card', 'work_order_card', 'dialog', 'drawer', 'action_bar', 'search_dialog', 'clock_in_form', 'task_timer', 'pm_checklist')

TDQS

C2.3/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 of behavioral disclosure. It doesn't state whether this is a read-only lookup, what the return format is, whether the pattern is deterministic, or what happens when an invalid pattern_id is given. For a retrieval tool, the safety profile and failure behavior are undocumented.

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

Conciseness3/5

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

The description is one terse sentence with no wasted words, which is efficient. However, it's under-specified rather than concise—the single sentence does minimal work and doesn't earn its place by providing useful context beyond the tool name.

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?

With 1 parameter, 100% schema coverage, no output schema, and no annotations, the description should compensate for the missing behavioral and return-value context. It doesn't describe what an interaction pattern contains, what output shape to expect, or how it differs from get_api_endpoint and other sibling lookups. For a data-retrieval tool, this is incomplete.

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%, and the pattern_id description lists concrete example values ('metric_card', 'dialog', 'drawer', etc.), which is genuinely helpful. However, the description itself adds nothing beyond the schema—it doesn't clarify the format, case sensitivity, or how a user discovers valid pattern_ids. Baseline 3 is appropriate given the strong schema coverage.

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

Purpose2/5

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

The description 'Get UI component interaction pattern for automation' states a verb and resource, but it's vague—it doesn't specify what an interaction pattern is, what kind of automation it supports, or what domain/scope these patterns cover. The sibling tools (get_field, get_page, get_workflow) suggest a metadata/documentation system, but the description doesn't clarify how interaction patterns fit in that context.

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 siblings like get_field or get_page. There's no exclusions or context about when an interaction pattern is needed versus other metadata lookups. The description doesn't mention any prerequisites or relationships to other tools.

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

get_pageA

Get full page specification by page_id. Returns fields, actions, sections, navigation context.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesPage identifier (e.g., 'home', 'work_orders_list', 'work_order_detail', 'create_work_order', 'task_detail', 'indirect_time', 'calendar', 'settings')

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavioral traits. It states what is returned (fields, actions, sections, navigation context) which is genuinely useful. However, it doesn't disclose any details about read-only nature, error behavior for invalid page_ids, or whether partial specs can be returned. The content disclosure adds value but misses safety/edge-case behavior.

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 compact sentence that states the purpose and the return contents. Zero wasted words, perfectly front-loaded with the primary action and target.

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 single-parameter retrieval tool with a well-covered schema and no output schema, the description is reasonably complete. It names what the response contains (fields, actions, sections, navigation context), compensating for the lack of an output schema. Slight deduction for not covering error conditions or pagination behavior, though the simplicity of the tool mitigates this.

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%, meaning the schema fully documents the page_id parameter with concrete example values. The description adds 'full page specification' context that clarifies the parameter selects the complete spec, not a fragment. Given perfect schema coverage, the baseline of 3 applies and the description's clarification of scope earns a 4.

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 uses a specific verb+resource ('Get full page specification by page_id') and lists the concrete content returned (fields, actions, sections, navigation context). It clearly distinguishes from siblings like get_field, get_table_schema, and get_workflow by indicating this returns the aggregate page-level spec.

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 the tool is for retrieving complete page specifications, not individual fragments (which is what get_field, get_transitions etc. handle). However, it doesn't explicitly state when to choose this over siblings or when it should NOT be used. The context is clear but no explicit exclusions or alternatives are named.

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

get_persona_permissionsB

Get what a persona/role can do at a given work order state.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional: WO state to scope permissions (e.g., 'OPEN', 'PENDING')
personaYesRole (e.g., 'technician', 'foreman', 'supervisor', 'administrator')

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It's a read operation by nature ('Get'), and the description's phrasing is consistent with a safe read. However, it doesn't disclose what happens when 'state' is omitted (presumably returns all permissions), the return format, or whether it returns actions/operations for the role at the given state. The description is adequate but adds little beyond what the name and schema already suggest.

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?

One concise sentence that gets straight to the point. No wasted words, no filler. It's appropriately front-loaded with the core purpose. Could arguably be slightly more informative (e.g., mention that omitting state returns all permissions), but as-is it's efficient and readable.

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?

This is a relatively simple 2-parameter read tool with no output schema and no annotations. The description covers the basic purpose but omits details like default behavior when 'state' is absent, the nature of the returned permission data, and how this relates to the work order lifecycle. For a tool with an optional state parameter, it would be helpful to state what the default behavior is. Given its simplicity, the description is minimally adequate but leaves room for more completeness.

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 both 'state' and 'persona' have descriptions in the schema. The description adds the semantic framing that state 'scopes permissions' to a 'given work order state', which slightly enriches the schema's mention of 'WO state to scope permissions'. However, it doesn't add meaningful new meaning beyond the schema — the baseline 3 is appropriate since schema does the heavy lifting and the description provides only marginal value (clarifying that the state is a work-order state).

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 'Get what a persona/role can do at a given work order state' uses a clear verb (Get) with a specific resource (persona/role permissions) and context (work order state). It's distinct from siblings like get_transitions or get_validation_rules, which focus on workflows and rules rather than role capabilities. It's clear but could sharpen by naming a specific output (e.g., 'permissions list') or confirming the subject is work-order permissions rather than generic system permissions.

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 states 'at a given work order state' which implies the state parameter scopes results, but it provides no explicit guidance on when to use this tool versus siblings. For example, it doesn't differentiate when someone should call get_persona_permissions vs get_transitions or get_validation_rules. There's no when/when-not guidance, just a general sense that this answers role capability questions.

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

get_table_schemaB

Get database table definition with columns and relationships.

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name (e.g., 'JOB_MAIN', 'EMP_MAIN', 'TSK_MAIN', 'LAB_MAIN', 'EMP_CURRENT_ASSIGN', 'EMP_CLOCKIN', 'JOB_NOTES')

TDQS

B3.2/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 states the tool reads a table definition, but doesn't disclose whether the schema is cached, whether it's a live query, what happens for invalid table names, or whether it includes all constraints/types. For a read operation with zero annotations, more disclosure would be expected.

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?

One concise sentence that conveys the core purpose and output. No fluff. Could arguably add a bit more context, but for a low-parameter read tool, the brevity is appropriate.

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?

For a single-parameter read tool, the description is mostly sufficient. The output (columns and relationships) is stated. However, with no annotations and no output schema, it doesn't disclose potential error behavior (e.g., invalid table names) which could be relevant for agents. Given the simplicity, this is acceptable but not exceptional.

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% — the single parameter table_name has a description in the schema listing valid example values. The tool description itself adds no parameter detail beyond 'columns and relationships' for the output. Baseline 3 is appropriate since the schema already handles the heavy lifting for the one parameter.

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 'Get database table definition with columns and relationships' uses a specific verb (Get) with a resource (database table) and lists what's returned (columns and relationships). It clearly distinguishes from siblings like get_field (single field vs table) and get_api_endpoint. Could be slightly more explicit about the name-based lookup but purpose is clear.

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 doesn't explicitly state when to use this tool vs get_field or other siblings. However, the context signal that the schema includes example table names provides implicit guidance for which resources this applies to. No exclusion criteria or alternative recommendation is given, so it's adequate but not strong.

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

get_test_fixturesA

Get test fixture data for automation. Filter by entity type or retrieve a specific fixture by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoSpecific fixture ID (e.g., 'default_technician', 'test_work_order_open', 'test_equipment_fleet_004')
entityNoFilter by entity type (e.g., 'Operator', 'Equipment', 'WorkOrder', 'Vendor', 'TimeCode', 'Location')

TDQS

A3.5/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 the full burden. The description establishes this is a read-only retrieval operation ('Get test fixture data') which signals non-destructive behavior. However, it doesn't disclose what a fixture returns, whether results differ by entity type, or any caveats about fixture completeness or staleness.

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?

One sentence, two distinct retrieval modes, zero filler. Every clause carries meaning - the purpose verb, the tool domain, and both access patterns are packed into a compact sentence.

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?

For a simple read tool with 2 well-documented parameters and 100% schema coverage, the description is reasonably complete. The main gaps are the absence of any return-format indication and no mention of the context for when fixtures are appropriate (e.g., only for certain environments). No output schema exists to compensate.

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%, with both 'id' and 'entity' parameters having descriptive text in the schema itself, including concrete examples. The description adds the relationship between the two params (filter vs. retrieve by ID) but doesn't add format or syntax details beyond what the schema already provides. Baseline 3 is appropriate.

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 'Get test fixture data for automation' with a specific verb (get) and resource (test fixture data). It adds filtering capabilities (by entity type or ID) that distinguish it from sibling get_* tools like get_api_endpoint, get_table_schema, etc., though it doesn't explicitly name these alternatives.

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 automation testing workflows and mentions two retrieval modes (filter by entity type, get by ID), but provides no explicit when-to-use guidance or exclusions versus sibling tools like get_workflow or get_table_schema. Sibling names are discoverable but no differentiation is stated.

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

get_transitionsA

Get valid status transitions from a given work order state.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_stateYesCurrent state (e.g., 'PLANNING', 'PENDING', 'OPEN', 'WORK_FINISHED', 'CLOSED')

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is read-only in nature by describing it as 'Get' transitions, which implies no side effects. However, it doesn't clarify whether this is a pure read operation, what happens with an invalid from_state value, or whether returned transitions include edge cases like self-transitions. Acceptable but thin on behavioral detail.

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?

One sentence, zero waste. Front-loaded with the verb 'Get', immediately followed by the object and scope. Efficient and well-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?

For a single-parameter tool with a clear purpose and 100% schema coverage, the description is mostly adequate. However, with no output schema and no annotations, there is no indication of what the return value looks like (array of strings? objects with fields?). The description would benefit from noting the response structure, but for this simplicity level it's minimally complete.

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% for the single parameter (from_state), and the schema already documents example values ('PLANNING', 'PENDING', 'OPEN', 'WORK_FINISHED', 'CLOSED'). The description adds minimal value beyond the schema, mentioning 'from a given work order state' which mirrors the parameter name. Since schema does the heavy lifting, baseline 3 is appropriate.

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 states a specific verb and resource: 'Get valid status transitions from a given work order state.' It clearly indicates what the tool returns (valid status transitions) and the input (work order state). It doesn't explicitly distinguish itself from the sibling tool get_workflow, which might overlap, but the purpose itself is clear and 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 implies usage context (when querying possible next states from a work order state) but provides no explicit guidance on when to use this versus alternatives like get_workflow. There's no when-not-to-use or exclusionary language. The implication is present but not explicit.

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

get_validation_rulesC

Get validation rules for an entity or operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEntity or operation to get rules for (e.g., 'start_task', 'stop_task', 'clock_in', 'clock_out', 'create_work_order', 'finish_work_order', 'close_work_order', 'delay', 'open_wo')

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided and the description gives no insight into behavior beyond the verb 'get'. It doesn't clarify whether rules are static data, computed, require auth, or what format they take. For a read operation with no annotation coverage, the description carries the full burden but adds essentially nothing beyond 'get rules'.

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

Conciseness3/5

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

The description is a single concise sentence with zero waste. However, it is under-specified rather than efficiently concise - one short sentence that adds little information beyond the tool name itself.

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?

With 100% schema description coverage for the single parameter and no output schema, the description doesn't need to explain parameters or return values. However, the tool retrieves validation rules - a potentially nuanced concept - and the description doesn't explain what these rules look like, how they're structured, or how they relate to the entity/operation. The sibling tools (get_workflow, get_table_schema, get_field) suggest a documentation/exploration toolkit, but the description doesn't distinguish or elaborate.

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 description adds no parameter info beyond what the schema already provides. The schema's entity description is quite detailed with examples. The baseline 3 is appropriate since the schema already handles the parameter well.

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 states 'Get validation rules for an entity or operation' - a clear verb+resource pattern. The 'or operation' phrasing adds helpful scope clarification. However, it doesn't distinguish from siblings beyond the 'rules' concept; 'get_table_schema', 'get_workflow', and 'get_api_endpoint' could all plausibly deliver validation-adjacent information.

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?

The description names the two valid entity types ('entity or operation') but gives no guidance on when to use this tool versus alternatives like get_workflow or get_transitions, nor any exclusions or prerequisites. An agent must guess when validation rules are relevant versus other metadata lookups.

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

get_workflowB

Get a named workflow recipe with step-by-step instructions for automation.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYesWorkflow identifier (e.g., 'clock_in', 'clock_out', 'job_on', 'job_off', 'start_indirect', 'stop_indirect', 'create_work_order', 'finish_work_order', 'close_work_order', 'delay_work_order', 'add_note', 'open_pending_wo')

TDQS

B3.2/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 of behavioral disclosure. The description says it returns 'a named workflow recipe with step-by-step instructions' but doesn't disclose whether the workflow is read-only, what happens if the workflow_id doesn't exist, how large the response is, or whether there are UI/automation side effects. For a getter with zero annotations, more behavioral context would be expected.

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?

A single, efficient sentence that conveys the action and the nature of the return value without fluff. It front-loads the verb and resource. Slightly more could be added, but for a one-parameter getter it's compact and waste-free.

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?

For a simple single-parameter getter with 100% schema coverage and no output schema, this is fairly complete. The lack of an output schema and annotations means the description is the only source for return-value semantics; it states the output is step-by-step instructions, which handles the main gap. Given the tool's low complexity, the description is adequate but not rich.

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% and the single required parameter workflow_id already includes rich examples of valid identifiers in its schema description. The tool description itself adds 'named workflow recipe' context about the resource type, which slightly complements the schema but the schema already does the heavy lifting. Baseline 3 is appropriate.

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?

Clear purpose: retrieves a named workflow recipe with step-by-step automation instructions. The verb 'get' + resource 'workflow' is specific, and the phrase 'named workflow recipe with step-by-step instructions for automation' distinguishes it from sibling tools like get_field or get_page, though no sibling is explicitly named.

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 this is for retrieving a pre-defined workflow recipe for automation, which is reasonably clear. However, there are no explicit when-to-use/when-not-to-use statements or alternatives named. Among the many 'get_*' siblings, nothing helps the agent disambiguate when to pick this over comparable getters.

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.

  1. 12 tool updatesv1.0.0
    • First observedcheck_provenance
    • First observedget_api_endpoint
    • First observedget_field
    • First observedget_interaction_pattern
    • First observedget_page
    • First observedget_persona_permissions
    • First observedget_table_schema
    • First observedget_test_fixtures
    • First observedget_transitions
    • First observedget_validation_rules
    • First observedget_workflow
    • First observedsearch

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation4/5

Each tool targets a distinctly different resource type (endpoints, tables, fields, pages, workflows, validations, transitions, permissions, fixtures, provenance, search). The purposes are largely clear and separable. Minor potential confusion exists between get_api_endpoint, get_table_schema, and get_field since all are spec-lookup tools on different entity types, but their descriptions clearly distinguish target resources.

Naming Consistency5/5

All 12 tools follow a clean, consistent get_/[search/check] pattern. Nine use the get_ prefix, one uses search_, and one uses check_, all of which are read-only retrieval verbs that fit a coherent convention. Nouns are consistently descriptive (api_endpoint, table_schema, validation_rules, transitions, persona_permissions).

Tool Count4/5

12 tools is within the well-scoped ideal range for a domain knowledge/spec server. Each tool maps to a distinct class of technical reference data that an automation agent might need. This is a slightly-close-but-appropriate count for a comprehensive technical designer/technician knowledge base.

Completeness4/5

The surface covers a broad range of queryable knowledge: specs, schemas, fields, pages, workflows, validations, transitions, permissions, search, fixtures, and provenance. Minor gaps include the absence of any mutation or comparison tooling (e.g., diff between environments) and no explicit tool for fetching environment/tenant configuration, but core lookup coverage is strong for the stated knowledge-base purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive access to the FieldEdge field service management platform through over 87 tools and 16 React applications. It enables users to manage customers, jobs, scheduling, and invoicing through natural language or integrated UI components.
    -
  • F
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to interact with Zoho Field Service Management, allowing operations on work orders, requests, contacts, and more via natural language.
    24
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with authoritative OEM automotive repair data including part numbers, torque specs, fluid capacities, and service procedures for vehicles 1982-2013 across 80+ makes, sourced from factory service manuals.
    MIT