Benchform for developers

Build the connections your product needs.

Bring commits, test results, and artifacts into the product record. Use explicit interfaces that preserve revisions, scope, and human review.

benchform / interfaces

REST /api/v1

SPEC OpenAPI 3.1

BUILD Commit + results + artifacts

MCP Context + draft proposals

Scoped access. Human-controlled approvals.

Connect the engineering record

Start where your
team already works.

Interfaces support the same record model as the workspace. A machine can contribute evidence and proposals; it cannot make the release decision.

REST API

Build your own integration

Use the versioned API and OpenAPI 3.1 definition to work with records, links, evidence, and background jobs. Revision-aware edits reject stale changes; idempotent submissions help prevent duplicate effects.

/api/v1 · /api/v1/openapi
GitHub + CI

Connect development to evidence

Bring issues, pull requests, commits, Actions, and releases into context. Submit JUnit results, component inventories, artifact references, and mappings to exact protocol revisions.

JUnit · CycloneDX · SPDX
MCP

Give agents useful boundaries

Expose scoped record search, context, traceability, impact assessments, and draft proposals. A person reviews and applies proposed changes before the controlled approval workflow.

/mcp · Scoped bearer access

A build with context

Test results that know
what they tested.

A commit identifies the engineering revision. A protocol mapping identifies the reviewed test definition. Artifact digests identify the output. Keep all three with the result.

  • Pin the expected protocol revision.
  • Distinguish duplicate JUnit test names.
  • Retain failures and historical results.

Requests require an authorized workspace, a scoped bearer token, and an Idempotency-Key. Replace the sample IDs with your own. This example shows the request body.

POST /api/v1/builds
{
  "projectId": "<project UUID>",
  "repository": "example/field-sensor",
  "commit": "0123456789abcdef0123456789abcdef01234567",
  "junit": "<testsuite name=\"firmware\"><testcase classname=\"Storage\" name=\"offline-recovery\"/></testsuite>",
  "protocolMappings": [
    {
      "suitePath": [
        "firmware"
      ],
      "className": "Storage",
      "name": "offline-recovery",
      "protocolId": "<approved protocol UUID>",
      "expectedRevision": 3
    }
  ]
}
Example body · replace the IDs with your own

Automation with accountability

Useful access.
Clear limits.

Machine credentials can support the work without inheriting a person’s authority to approve it.

Scope the integration

Use expiring credentials with the permissions required for the task. Organization and project boundaries apply to API and MCP access.

Review before application

Agent proposals remain proposals until a person applies them. People retain responsibility for approvals, risk decisions, and releases.

Evaluate with us

Interface access is part of early-access onboarding. Public app distribution and self-service MCP OAuth onboarding are not available. AI drafting and review features remain in evaluation.

Build with Benchform

Connect Benchform to your workflow.

Tell us about your stack and the evidence you need to carry into the product record.