An MCP server that lets cross-functional team members (firmware, mechanical, test, reliability engineers) query a schematic snapshot exported from Altium Designer.
7 tools with clear verb-noun naming and comprehensive descriptions (avg 180 chars, well above 10-char minimum). All tools have input schemas with typed parameters and descriptions. However, output schemas are not explicitly documented in the source code, only inferred from docstrings. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool composition is sound (each does one thing), but no pagination metadata (total count, next_cursor) documented for paginated results. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications in metadata.
Get detailed information about a specific component by reference designator or partial name/description. Returns MPN, description, value, sheet, all pins with net assignments, and DNP status in the active variant.
Get all connections on a specific net. Supports exact name match or regex pattern (e.g., 'UART', 'UART.*', '3V3|5V0'). Returns all components and pins connected to the net, with sheet information.
Get all components on a sheet with their pin-to-net mappings and cross-sheet neighbors. Results are paginated by character budget. For nets with 25+ connections (high-fanout power/ground rails), fanout count is shown instead of individual neighbors. Pass offset to retrieve subsequent pages.
List all schematic sheets in the currently loaded project.
List all variants in the currently loaded project. Returns variant names, DNP component lists, and which variant is active.
Load a pcb-copilot database file. Auto-discovers the most recent *-pcb-copilot.db file if db_path is omitted. Returns project metadata, list of available variants, and update availability. If multiple projects are found, returns a projects list for the user to choose from.
Output schemas not documented in source code. Tool descriptions mention return fields (e.g., 'Returns project metadata, list of available variants') but no formal JSON Schema for responses is visible. LLMs cannot plan downstream tool calls without knowing response structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications in metadata. set_active_variant is marked WRITE but lacks destructiveHint annotation. Agents cannot distinguish safe reads from state-modifying calls without explicit hints.
Pagination metadata incomplete. get_sheet_context mentions 'offset' and 'has_more' in description but no documented total count, next_cursor, or result limit. Agents cannot estimate remaining pages or optimize batch sizes.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Set the active variant for subsequent queries. Only components not marked DNP in the active variant are considered populated.
Error handling not visible in source. No recovery guidance, error classification (retryable vs fatal), or actionable error messages documented. Agents will not know whether to retry, ask user, or abort on failure.
Parameter 'db_path' in load_project accepts optional string but no format constraint documented (e.g., must end in .db, must be absolute path). Agents may pass invalid paths without guidance.