Prjct Cli MCP Server

prjct-cli npm v4.25.1 Source verified

Published by prjct-app — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.

The agentic harness for AI coding agents — work cycles, bounded RAG context, persistent memory, guardrails, and performance evals.

Trust grade
A
94/100
Last scanned get badge →
Trust
A · 94/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
High
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 94/100

The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.

1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:

The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.

2. Client adoption risk — 100 − 6 = 94. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:

PointsAdoption-risk factor
−6 capability blast radius (high) — client exposure if the model is manipulated

Capability observations and info notes are shown under Findings but never scored. Open any row's finding below for the file, line and evidence behind a deduction.

Findings 12

high Reads a sensitive credential path or dumps the environment (dist/bin/core-chunks/chunk-HZTC77KI.mjs)MTC-SRC-006

In the server's implementation (`dist/bin/core-chunks/chunk-HZTC77KI.mjs:7`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: .*\.(?:pem|key|p12|pfx)|id_rsa|id_ed25519|credentials\.json|auth\.json)$/i,ee=/(?:^|\/)(?:\.ssh|\.gnupg|\.aws|\.config\/

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/chunk-HZTC77KI.mjs

high Reads a sensitive credential path or dumps the environment (dist/bin/hook-chunks/chunk-2E6JLR2S.mjs)MTC-SRC-006

In the server's implementation (`dist/bin/hook-chunks/chunk-2E6JLR2S.mjs:8`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: .*\.(?:pem|key|p12|pfx)|id_rsa|id_ed25519|credentials\.json|auth\.json)$/i,Ot=/(?:^|\/)(?:\.ssh|\.gnupg|\.aws|\.config\/

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/hook-chunks/chunk-2E6JLR2S.mjs

high Shell/command execution in server code (bin/prjct.cjs)MTC-SRC-002

In the server's implementation (`bin/prjct.cjs:11`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: Process = require('node:child_process') const fs = require('node:fs') const os = require('node:os') const path = require

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server bin/prjct.cjs

high Shell/command execution in server code (dist/bin/core-chunks/ab-3VUQJGO4.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/ab-3VUQJGO4.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: e,spawn as Oe}from"node:child_process";import G from"node:fs";import k from"node:fs/promises";import $e from"node:os";im

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/ab-3VUQJGO4.mjs

high Shell/command execution in server code (dist/bin/core-chunks/agent-LRU4TTKX.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/agent-LRU4TTKX.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: xecFile as ft}from"node:child_process";import S from"node:fs";import{promisify as gt}from"node:util";function b(t){retur

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/agent-LRU4TTKX.mjs

high Shell/command execution in server code (dist/bin/core-chunks/auto-updater-ETKWRLKZ.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/auto-updater-ETKWRLKZ.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: f,spawn as w}from"node:child_process";import r from"node:fs";import o from"node:path";var d=e(()=>o.join(c(),"state"),"

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/auto-updater-ETKWRLKZ.mjs

high Shell/command execution in server code (dist/bin/core-chunks/bin-commands-NASQLNW6.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/bin-commands-NASQLNW6.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: n:l}=await import("node:child_process"),d=l("tail",["-n",String(r),"-f",n],{stdio:"inherit"});process.on("SIGINT",()=>d.

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/bin-commands-NASQLNW6.mjs

high Shell/command execution in server code (dist/bin/core-chunks/chunk-3DDHVWTV.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/chunk-3DDHVWTV.mjs:8`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: n:c}=await import("node:child_process"),l=c("/bin/sh",["-c","command -v prjct >/dev/null 2>&1 && prjct gauntlet >/dev/nu

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/chunk-3DDHVWTV.mjs

high Shell/command execution in server code (dist/bin/core-chunks/chunk-65R3C7IA.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/chunk-65R3C7IA.mjs:15`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: t.","","### Continue vs spawn (multi-agent)","","| Situation | Action | Why |","|---|---|---|","| Explore already loaded

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/chunk-65R3C7IA.mjs

high Shell/command execution in server code (dist/bin/core-chunks/chunk-A6IDYEDB.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/chunk-A6IDYEDB.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: rt{spawn as W}from"node:child_process";import se from"node:path";var Y=6e4,G=500,oe=2e3;function j(e,a){try{process.plat

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/chunk-A6IDYEDB.mjs

high Shell/command execution in server code (dist/bin/core-chunks/chunk-HZTC77KI.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/chunk-HZTC77KI.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: xecSync as qe}from"node:child_process";import ot from"node:fs/promises";import V from"node:path";import R from"chalk";im

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/chunk-HZTC77KI.mjs

high Shell/command execution in server code (dist/bin/core-chunks/chunk-LBVVLD7L.mjs)MTC-SRC-002

In the server's implementation (`dist/bin/core-chunks/chunk-LBVVLD7L.mjs:7`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: K,spawn as $}from"node:child_process";import{promisify as C}from"node:util";async function G(e){try{process.platform===

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server dist/bin/core-chunks/chunk-LBVVLD7L.mjs

Tools 49

Each tool and what it can reach — statically extracted from the published source.

  • prjct_spec_getingests untrusted input
  • prjctno sensitive capability
  • prjct_analysisno sensitive capability
  • prjct_architectureno sensitive capability
  • prjct_capture_inboxno sensitive capability
  • prjct_cochangeno sensitive capability
  • prjct_context_tiersno sensitive capability
  • prjct_cost_addno sensitive capability
  • prjct_dead_codeno sensitive capability
  • prjct_developerno sensitive capability
Show 39 more tools ↓
  • prjct_guardno sensitive capability
  • prjct_historyno sensitive capability
  • prjct_impact_analysisno sensitive capability
  • prjct_import_graphno sensitive capability
  • prjct_mem_forgetno sensitive capability
  • prjct_mem_listno sensitive capability
  • prjct_mem_saveno sensitive capability
  • prjct_mem_similarno sensitive capability
  • prjct_project_factsno sensitive capability
  • prjct_qano sensitive capability
  • prjct_record_decisionno sensitive capability
  • prjct_record_factno sensitive capability
  • prjct_record_gotchano sensitive capability
  • prjct_record_learningno sensitive capability
  • prjct_related_contextno sensitive capability
  • prjct_relevant_filesno sensitive capability
  • prjct_safe_artifactsno sensitive capability
  • prjct_search_symbolsno sensitive capability
  • prjct_session_resumeno sensitive capability
  • prjct_signalsno sensitive capability
  • prjct_signaturesno sensitive capability
  • prjct_skillsno sensitive capability
  • prjct_spec_apply_deltano sensitive capability
  • prjct_spec_auditno sensitive capability
  • prjct_spec_createno sensitive capability
  • prjct_spec_link_taskno sensitive capability
  • prjct_spec_listno sensitive capability
  • prjct_spec_record_reviewno sensitive capability
  • prjct_spec_set_statusno sensitive capability
  • prjct_spec_shipno sensitive capability
  • prjct_spec_updateno sensitive capability
  • prjct_spec_validateno sensitive capability
  • prjct_task_set_statusno sensitive capability
  • prjct_task_startno sensitive capability
  • prjct_task_statusno sensitive capability
  • prjct_trace_pathno sensitive capability
  • prjct_workflow_listno sensitive capability
  • prjct_workflow_rulesno sensitive capability
  • prjct_workflow_statusno sensitive capability

What this scan could not see

Versions 10

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v4.25.1 latest A 94/100 12 1.13.0 2026-09-07
v4.23.0 A 94/100 11 1.13.0 2026-09-06
v4.18.4 A 94/100 11 1.13.0 2026-09-04
v4.15.0 A 94/100 11 1.13.0 2026-09-01
v4.13.0 A 94/100 11 1.13.0 2026-08-31
Show 5 more versions ↓
v4.11.0 A 94/100 11 1.13.0 2026-08-30
v4.10.0 A 94/100 11 1.13.0 2026-08-27
v4.8.1 A 94/100 11 1.13.0 2026-08-25
v4.8.0 A 94/100 11 1.12.1 2026-08-22
v4.3.0 A 94/100 11 1.12.1 2026-08-21

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 94/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/prjct-cli/badge.svg)](https://mcptrustchecker.com/registry/prjct-cli)
HTML
<a href="https://mcptrustchecker.com/registry/prjct-cli"><img src="https://mcptrustchecker.com/registry/prjct-cli/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/prjct-cli/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan prjct-cli --online

Use the free API → How scoring works

More in Developer Tools