# com.get-obra/obra-cto (npm · obra-cto)

Local-first MCP that scores your codebase's build readiness. Your code never leaves your machine.

- Trust score: 64/100 (medium)
- Change this week: +19
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `obra-cto`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-get-obra-obra-cto/obra-cto.md), [page](https://verifymcp.io/servers/com-get-obra-obra-cto/obra-cto)

## Channel facts

- Registry: `npm`
- Package: `obra-cto`
- Version: `0.3.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 29 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 684 tokens (~136/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add com-get-obra-obra-cto -- npx -y obra-cto
```

### Codex

```bash
codex mcp add com-get-obra-obra-cto -- npx -y obra-cto
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-get-obra-obra-cto": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "obra-cto"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-get-obra-obra-cto --command npx --arg -y --arg obra-cto
```

### Hermes

```yaml
mcp_servers:
  com-get-obra-obra-cto:
    command: "npx"
    args: ["-y", "obra-cto"]
```

### Other

```json
{
  "mcpServers": {
    "com-get-obra-obra-cto": {
      "command": "npx",
      "args": [
        "-y",
        "obra-cto"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 64, +59)

- [security regression] GHSA-frvp-7c67-39w9 affects this package: medium
- [security regression] Provenance: unverified → fail
- [security regression] Known CVEs: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: Apache-2.0

### 2026-07-31 (score 5, −22)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 27, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 45)

First indexed and scored.

## MCP tools (5)

### `scan_project` (~80 tokens)

Scan project

Read a local project and return mechanical Build Readiness signals: file and line counts, languages, test files, CI config, lockfile, docs, and a redacted scan for hardcoded secrets. Returns signals only, never your source. Run this first.

Input parameters:

- `path` (string): Absolute path to the project root. Defaults to the current working directory.

### `run_tests` (~188 tokens)

Run tests

Run the project's test suite on this machine and parse pass/fail counts. This EXECUTES the project's own test command (for example `npm test`, which runs whatever that script defines), so only approve it for a project you trust to run. Your host asks before it runs. A green suite is the strongest grade-A reliability evidence the Obra CTO Score can use. Pass the result numbers to score_build_readiness.

Input parameters:

- `acknowledge_risk` (boolean): Only relevant if the malware tripwire flagged this repo as dangerous. Running the test command would execute the flagged code. Set true ONLY after you have inspected the findings and are running in a…
- `command` (string): Override the test command (e.g. "pytest -q"). Defaults to the detected command.
- `path` (string): Project root. Defaults to the current working directory.

### `check_dependencies` (~72 tokens)

Check dependencies for known CVEs

Query OSV.dev for known vulnerabilities in the project's locked dependencies, using exact versions from package-lock.json. Only package names and versions are sent, never your code. Real, current CVE data. Feed any findings into your security assessment.

Input parameters:

- `path` (string): Project root. Defaults to the current working directory.

### `prepare_code_review` (~125 tokens)

Prepare code review

Select the highest-signal files (security-relevant paths, entry points, large files) and return their contents on this machine, with a review checklist. YOU, the host model, then read them and produce a structured security and architecture assessment, which you pass to score_build_readiness as `qualitative`. This is what upgrades those dimensions from inferred (grade C) to verified (grade A). Files stay local.

Input parameters:

- `max_files` (number): Maximum files to return (default 12).
- `path` (string): Project root. Defaults to the current working directory.

### `score_build_readiness` (~219 tokens)

Score Build Readiness

Produce the Obra CTO Score (0 to 100) with a per-dimension breakdown, evidence grades, and a Top Risks register. Scan runs automatically. If you ran run_tests first, pass its numbers so reliability becomes grade-A evidence.

Input parameters:

- `path` (string): Project root. Defaults to the current working directory.
- `qualitative` (object): Your structured security and architecture assessment from prepare_code_review. Supplying it upgrades those dimensions to grade A.
- `stage` (string): Calibrate expectations to your stage: prototype, mvp, or growth. Defaults to a detected guess.
- `tests_failed` (number): Failing tests, from a prior run_tests call.
- `tests_passed` (number): Passing tests, from a prior run_tests call.
- `tests_total` (number): Total tests, from a prior run_tests call.
- `write_report` (boolean): Write the report to .obra/ in the project (default true), so the Obra CFO can read it later. Set false to skip writing.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-get-obra-obra-cto/obra-cto#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 64
- 2026-08-01: 5
- 2026-07-31: 5
- 2026-07-30: 27
- 2026-07-28: 45
- 2026-07-27: 45

## Links

- npm package: https://www.npmjs.com/package/obra-cto
- Socket report: https://socket.dev/npm/package/obra-cto
- Repository: https://github.com/lilycip/obra-cto
- Changelog RSS feed: https://verifymcp.io/servers/com-get-obra-obra-cto/obra-cto/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-get-obra-obra-cto/obra-cto/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-get-obra-obra-cto/obra-cto
