boq-mcp
# BOQ MCP Server
Let Claude fill data into your **BOQ / Tendix** projects in plain language — create
projects, chapters, sections, items, quantity calculations, contractors, contracts,
bills, and pricing. It talks to the BOQ REST API, so all your permissions, subscription,
and audit rules stay enforced. You only see and touch the data your account is allowed to.
## Install in one step
### Claude Code
Just tell Claude:
> Install the MCP server from https://github.com/jehadbaniodeh/boq-mcp
Claude will run the registration for you. (Or run it yourself:)
```bash
claude mcp add boq -- uvx --from git+https://github.com/jehadbaniodeh/boq-mcp boq-mcp
```
### Claude Desktop
Settings → Developer → Edit Config, then add:
```json
{
"mcpServers": {
"boq": {
"command": "uvx",
"args": ["--from", "git+https://github.com/jehadbaniodeh/boq-mcp", "boq-mcp"]
}
}
}
```
Restart Claude Desktop. Done.
## First use
In any chat, log in once with your BOQ account:
> Log in to BOQ as me@example.com
Then talk to it naturally:
> Create a project "Villa A" with a Concrete chapter (code 03), a Foundations
> section (code 10), and an item "Reinforced concrete C30" in m3 at 250/unit.
If your account lacks a permission, Claude is told exactly why (e.g. a 403), so it can
explain it instead of silently failing.
## Requirements
- **[uv](https://docs.astral.sh/uv/) installed** (provides `uvx`). One-time:
`curl -LsSf https://astral.sh/uv/install.sh | sh`
`uvx` then downloads and runs the server automatically — no manual clone or `pip install`.
- A BOQ account on https://boq.jehadbim.com.
By default the server targets `https://boq.jehadbim.com`. To point at a different
instance, set `BOQ_API_URL` in the server's `env` block.
## Tools
| Area | Tools |
|------|-------|
| Auth / read | `login`, `whoami`, `list_projects`, `get_project_tree`, `list_chapters`, `list_sections`, `list_items` |
| BOQ hierarchy | `create_project`, `update_project`, `create_chapter`, `create_section`, `create_item`, `bulk_create_items`, `add_calculation_line` |
| Commercial | `create_contractor`, `create_contract`, `create_bill` |
| Pricing | `add_material_cost`, `get_pricing_breakdown` |
## Notes
- Chapter / section / item **codes are exactly 2 digits** (e.g. `03`) — the full path
code is composed up the tree.
- Item **units**: `m, m2, m3, unit, kg, ton, lm, ls, No., set`.
- Your login token lives only in memory for the running session; it is never written to disk.
## License
MIT
TDQS
Scored across 19 tools
Each tool maps to a distinct resource/action: auth, hierarchical reads, creation, pricing costs, and contract/bill creation are clearly separated. The list_* and get_* read tools are distinguishable by level/aggregation, and create_* tools differ by target entity. No two tools appear to do the same job.
Almost all tools follow snake_case verb_noun conventions: list_projects, create_chapter, bulk_create_items, add_material_cost. Minor inconsistencies are login/whoami as standalone verbs and the mix of list_* for collections versus get_* for aggregate/singular reads, but the overall pattern is predictable.
19 tools is in the 16-25 range that feels heavy, though the BOQ domain spans hierarchy, pricing, and contracts so each tool has a distinct role. It is not egregiously over-scoped but exceeds the ideal 3-15 range for tight coherence.
The hierarchy has create/read coverage, but chapters/sections/items lack update/delete, and contractors/contracts/bills are write-only with no list/get tools. Pricing breakdown mentions labor/equipment/subcontracting, yet only material costs can be added. These gaps create dead ends for agents trying to verify or maintain created data.