MCP server for COBie Excel validation, updates, and PDF extraction
Server has 31 tools with basic schemas and descriptions, but significant gaps limit production readiness. Most tools have descriptions (good), but many lack depth and actionable guidance. Parameter descriptions are present but often generic. No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Error handling is minimal, no recovery guidance or categorization. Output schemas are not documented. Write operations (update_cobie, capture_installation, add_document, etc.) lack dry-run/confirmation patterns despite being destructive. Naming is generally clear (verb_noun), but some tools are overly broad (e.g., update_cobie accepts both structured JSON and natural language, mixing concerns). No evidence of pagination limits being enforced in list tools despite large result sets.
Add a document reference to a COBie entity.
Register installation date for a component in COBie.
Count components in a specific space.
Count spaces in a specific floor.
Export the project graph back to a COBie Excel workbook.
Extract text and tables from a PDF file.
Extract form fields from a PDF file.
Find components by name in the project graph.
Write operations lack dry-run/confirmation patterns. update_cobie, capture_installation, add_document, organize_document_file, init_project_graph, import_cobie_to_graph, export_graph_to_excel, and sync_embeddings are destructive but have no built-in safeguards against accidental execution.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones without explicit hints. All 31 tools lack these critical metadata fields.
Output schemas not documented. Tools return structured data but LLMs have no formal schema for expected response fields. This forces LLMs to infer structure and risks misinterpreting results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Get the schema for actor_contact (required for all updates).
Get the column headers from a COBie Excel workbook.
Get detailed information about a component.
Get the location (floor and space) of a component.
Get the schema for document payloads.
Get statistics about the project graph.
Get all components in a system.
Get all components of a specific type.
Return the recommended workflow to update COBie workbooks. Call this first. Proactive guidance to avoid validation errors. Use before capture_installation or update_cobie so you get the schema and steps right.
Get the status of vector embeddings for a project.
Check if a COBie workbook is ready for handover.
Import a COBie Excel workbook into the project graph.
Initialize an empty project graph in Neo4j.
List components in a space.
List floors in the project graph.
List spaces in a floor or across all floors.
Organize a document file into the standard project directory structure.
Perform semantic search over project entities using vector embeddings.
Synchronize vector embeddings for project entities.
Update a COBie Excel workbook with structured or natural language instructions.
Validate a COBie Excel workbook against the COBie standard.
Validate document input before creating a document row.
Validate a draft COBie workbook (partial data allowed).
update_cobie mixes two concerns: accepts both structured_update_json and instruction_text. This violates single-responsibility principle and forces LLMs to choose between two different input modes for the same operation.
Error handling lacks recovery guidance. No tool descriptions explain what to do on failure, what errors are retryable, or how to self-correct. Agents will stall on errors.