MCP server for B&R Automation Studio help documentation search with hybrid semantic and full-text search capabilities
Server demonstrates solid tool design with clear naming (verb_noun pattern), comprehensive parameter descriptions, and explicit JSON Schema via Serde/Schemars. All 7 tools have descriptions (194-char baseline met). Parameters include type info and defaults. However, output schemas are not formally documented in the code, only inferred from implementation. Error handling lacks recovery guidance (e.g., 'if search returns empty, call get_help_statistics'). No tool annotations (readOnlyHint, destructiveHint) despite all tools being read-only. Composition is strong: tools chain well (search→get_page_by_id→get_breadcrumb). Naming is consistent and action-oriented.
Navigate into a category or section to see its child pages and subsections. Use get_categories first to get top-level section IDs.
Get the navigation breadcrumb trail for a help page.
List all top-level categories in the help documentation. Call this before using the category filter in search_help.
Get the current status of the search index build, including progress, build type, and any errors.
Retrieve a help page by its numeric HelpID (e.g., from error messages or context help).
Retrieve the full content of a help page by its page_id. Returns HTML, plain text, and breadcrumb navigation.
Output schemas not formally documented. Code shows parameter schemas via Serde/JsonSchema, but return types are inferred only from implementation. LLMs cannot plan downstream calls without knowing what fields to expect.
Tool annotations missing. All 7 tools are read-only (Risk: READ_ONLY declared), but no readOnlyHint in schema. Agents cannot infer safety/idempotency without explicit annotations.
Error handling lacks recovery guidance. No error responses shown in code; no guidance like 'if search returns empty, call get_help_statistics()'. Agents cannot self-correct on failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Find help pages by keyword or meaning. Returns page_ids and metadata ONLY — no actual content. You MUST call get_page_by_id to read content.
Result limits not enforced in code. search_help defaults to limit=5, but no validation shown to prevent LLMs from requesting 1000+ results. Large result sets waste tokens and degrade reasoning.
Pagination not visible. search_help accepts limit but no offset/cursor or total_count shown. Large help databases need pagination to avoid context explosion.