Skip to content

v1.2.0 — 2026-08-04 API spec + tool description rewrite

Choose a tag to compare

@TylerIlunga TylerIlunga released this 05 Aug 06:24
· 11 commits to main since this release
f7420de

Highlights

Refreshed to the 2026-08-04 Procore API spec

The bundled spec was four months stale (2026-03-26). Rebuilding against the current one adds 519 net operations and repairs a surface that had drifted out of sync with live Procore.

v1.1.0 v1.2.0
Operations in catalog 2,636 3,155
Registered tools 2,489 2,936 (2,929 generated + 7 meta)
Deprecated, flagged in-description 0 166 (92 with sunset dates)
Dead tools that would 404 26 0
  • Removed 26 tools whose endpoints no longer exist and returned 404 against live Procore — the entire Payments sub-surface (disbursements, beneficiaries, early pay programs, payment project configs), app_installations writes, and equipment_register project writes.
  • New modules registered: Assets, Materials Management, Estimating, Document Management, Document Markup.
  • Taxonomy corrections: Equipment and Telematics moved CoreResource Management; Direct Costs → Project Level Direct Costs. These feed both discovery and description text, so stale tags meant wrong routing.
  • Deprecated endpoints stay registered but now carry their sunset date in the description and a (Deprecated) title — nothing breaks before Procore's own removal dates.
  • The interactive /oauth/* endpoints are no longer registered as tools (npm run auth owns that flow) but remain reachable via procore_api_call.

Tool Definition Quality rewrite

Glama scored the server C on Tool Definition Quality. The score is 60% mean + 40% minimum, so the single worst-described tool carried 40% of the weight. Defect counts across all 2,929 generated tools:

Defect Before After
Ungrammatical <Module> records ~1,144 0
False "paginated JSON array" claims 165 0
DELETE repeating "cannot be undone" 325 0
Duplicate parameter keys 33 0
POST update_* claiming "Creates a new" 12 0
version: "unknown" 4 0
  • Descriptions name the real resource. They previously used the OAS category, so show_rounding_configuration read "a specific Field Productivity records" and delete_incident_alert_recipient claimed to delete "Incidents". The resource is now derived from the operation summary.
  • Pagination follows the response schema. The old heuristic matched any path ending in a lowercase segment, so 165 singleton GETs advertised a paginated array. returnsCollection is now computed from the OAS 2xx schema and gates both the description and the page/per_page input schema — the two can no longer disagree.
  • Every sentence has a distinct job — purpose, deprecation, usage and prerequisites, return shape and failure modes, required params, scope — with no restatement. Descriptions now name which parent ids to resolve first and which default from procore_set_config.
  • Synthesized behavior text stays neutral when Procore's own prose already documents status codes, so generated text cannot contradict the documented contract.

Bug fixes

  • 33 tools declared the same key twice (path + body, e.g. company_id on create_permission_template). The body field silently overwrote the path parameter in the generated Zod shape, so agents saw the wrong description for a required path param. Parameters are now deduped with path precedence plus an alsoBody flag that still sends the value in the payload.
  • Appending a disambiguating suffix before truncating could discard the suffix and reintroduce the very name collision it was meant to break.
  • PATCH is now marked idempotent — a partial update converges on the same state.

Internal

description-builder.ts was split into resource-label.ts, behavior-builder.ts and param-descriptions.ts to stay under the repo's 300-line file limit.

Tool count: 2,482 → 2,929 (plus 7 meta-tools)

Verification

  • npm run build and npm run validate pass; TypeScript compiles clean.
  • Server boots over real MCP with 2,936 tools: zero duplicate names, zero missing annotations or titles, zero names over 64 chars, zero descriptions under 150 chars.

Commits

  • f7420de feat: refresh to 2026-08-04 OAS and rebuild tool descriptions (#2)
  • be847c6 Updated Glama card badge

Full changelog: v1.1.0...v1.2.0