- Reliability 10/20
- server.json declares an npm package @otakit/[email protected] over stdio with a positional `mcp` argument, plus a streamable-http remote endpoint; both paths are echoed by the README (`npx -y @otakit/cli@latest connect` and remote OAuth), so the declared entry points are at least internally consistent. However, this is a static-only review: no committed tests, CI workflows, or reproducible execution evidence were supplied, so the MCP init handshake and the claimed inspect/upload/release/monitor/revert tool behaviors cannot be verified against real behavior. The docs themselves admit that upload/release depends on Postgres, S3-compatible storage and a CDN, and no error taxonomy or diagnosability guidance is given for those failure surfaces. Static calibration caps reliability at 12; the absence of tests and execution evidence lowers it to 10.
- Security and permissions 10/20
- No red line is triggered: no malware, credential theft, covert exfiltration, fabricated maintainer identity, or real tokens in install examples; the project is MIT-licensed and states it is fully open-source and self-hostable. However, permission and confirmation evidence is thin: the README's claim that nothing reaches a device before user approval is a product-level description, not auditable server-side confirmation logic; the CLI login writes a config file (the README says it prints the exact file) but how credentials are stored, whether they land in plaintext, and how scopes are minimized are unstated; the remote endpoint https://console.otakit.app/mcp involves external network and OAuth with incomplete data-flow disclosure (which project metadata and bundles go where); and upload/release/revert are dangerous or irreversible side effects with no static evidence of default double-confirmation or per-channel scoping. Scored 10 as 'main risks visible but permissions/confirmation/scoping incomplete'.
- Maintenance 13/20
- Repo metadata shows not archived, 0 open issues, 86 stars, MIT license, and version 1.5.0 matching the package version, with a clearly organized monorepo (capacitor-plugin, cli, mcp-core, console, ingest, site, tinybird), indicating a healthy, actively versioned project. Deductions: no visible CHANGELOG or release notes, no CI workflows, no documented security-response channel or disclosure policy, and no commit cadence or issue-response data (0 issues may equally mean no community feedback yet). The explicit license and versioned path in the manifest are positives. Scored 13 as 'active but with governance/versioning gaps'.
- Documentation 11/20
- Documentation is layered: the top-level README covers self-hosting architecture (console + Postgres + S3-compatible bucket + CDN), a seven-step how-it-works flow, core concepts (App/Bundle/Release/Channel/runtime version), a package structure diagram, per-package README pointers, local dev prerequisites (Node 20.9+, pnpm 9+, .env.example), and links to the agents and self-host guides. Real gaps remain: concrete MCP tool parameters, return shapes, permissions/scoping, rate or quota limits, and cost/billing details are absent from the supplied material; there is no troubleshooting or error-handling section; and the `connect` UX is described only in prose with no reviewable sample output or client config example. Docs do not contradict capability, so 11 as 'usable but with hidden assumptions and troubleshooting gaps'.
- Setup experience 13/20
- The install path is comparatively clear and short: standard npm ecosystem, a single `npx -y @otakit/cli@latest connect` that detects the client, signs in, and writes config, with an explicit promise to print the resolved console/org/project/app and target file first and a `--dry-run` flag; mainstream clients (Claude Code, Codex, VS Code) are named, and Claude Code additionally gets a plugin marketplace install. Deductions: the stdio path requires a Node.js 20.9+ runtime; the self-host path needs Postgres plus S3-compatible storage and a CDN, which is heavy manual setup; and OAuth details for the remote streamable-http endpoint are offloaded to external docs, so they cannot be statically verified. Static calibration caps setup at 15; with no client config sample or reproducible execution evidence in the supplied material, scored 13.