Skip to main content
Glama
roynertr

COBie MCP

by roynertr
README.md
# COBie MCP

MCP server for COBie Excel validation, updates, and PDF extraction.

Works with local `.xlsx` and PDF files over stdio. Compatible with Claude Desktop, Claude Code, Cursor, and other MCP clients.

<!-- mcp-name: io.github.roynertr/cobie-mcp -->

## Requirements

- Python 3.12+
- [uv](https://github.com/astral-sh/uv)

## Install

### Quick (PyPI / MCP Registry)

```bash
uvx cobie-mcp
```

### From source

```bash
git clone https://github.com/roynertr/cobie-mcp.git
cd cobie-mcp
uv sync
```

## Configure

### Claude Desktop / Cursor (recommended: uvx)

```json
{
  "mcpServers": {
    "cobie-mcp": {
      "command": "uvx",
      "args": ["cobie-mcp"],
      "env": {
        "ENABLE_HEALTH_SERVER": "false"
      }
    }
  }
}
```

### From a local clone

```json
{
  "mcpServers": {
    "cobie-mcp": {
      "command": "uv",
      "args": ["run", "python", "-m", "server.mcp_server"],
      "cwd": "/absolute/path/to/cobie-mcp",
      "env": {
        "ENABLE_HEALTH_SERVER": "false"
      }
    }
  }
}
```

On Windows, use an absolute path for `uv` / `uvx` if it is not on PATH, for example `C:\\Users\\<you>\\.local\\bin\\uv.exe`, and double backslashes in JSON.

### Claude Code

This repo includes [`.mcp.json`](.mcp.json). Open the project root, approve the server when prompted, then confirm tools with `/mcp`.

See [INSTALL.md](INSTALL.md) for checklists, test prompts, and troubleshooting.

## Main tools

| Tool | Purpose |
|------|---------|
| `load_cobie_summary` | Sheet and key counts |
| `validate_cobie` | Validation report |
| `list_floors` / `list_spaces` / `list_components` | Browse entities |
| `preview_update` / `update_cobie` | Dry-run or apply edits (`actor_contact` required for writes) |
| `extract_from_submittal` | PDF extraction |
| `capture_installation` | Installation capture with evidence |

Canonical tool names are listed in [`server/tool_manifest.json`](server/tool_manifest.json). Graph / Neo4j tools are optional and return a clear error when Neo4j is not configured.

## Smoke test

```bash
uv run pytest tests/test_mcp_smoke.py tests/test_tool_manifest_drift.py tests/test_mcp_tools.py -v
```

## License

MIT

TDQS

C2.4/5.0

Scored across 63 tools

Disambiguation2/5

Many tools are deprecated aliases duplicating identical functionality (e.g., graph_list_floors_tool vs graph_list_floors), and there is significant overlap between update_cobie, preview_update, capture_installation, and validate_draft_result. get_entity_details has an empty description, making its purpose ambiguous.

Naming Consistency3/5

Most tools follow a verb_noun pattern (list_floors, validate_cobie, add_document), but naming is inconsistent across families: some use graph_ prefixes, some use _tool suffixes for deprecated aliases, and verbs vary (lookup vs get vs find, load vs get). The pattern is recognizable but not consistently applied.

Tool Count2/5

63 tools is excessive for the apparent scope, largely because many are deprecated aliases and near-duplicates (e.g., 10+ graph_* aliases, multiple preview/validate/update combinations). The core functionality could be delivered with fewer, better-differentiated tools.

Completeness4/5

The tool set covers a broad COBie lifecycle: import/export, validation, updates, document attachment, graph queries, hierarchy, readiness assessment, and text/PDF extraction. However, get_entity_details and load_cobie_summary lack descriptions, and entity creation for spaces/floors/types is only indirectly supported through update_cobie.

Maintenance

ActivitySlowing
ResponsivenessNo issues