Atlas / MCP servers / strixgov / Strix — open-source packages

Strix — open-source packagesBLOCK

mcp/strixgov/strix
Verdict
BLOCK
Grade
F
Trust score
44 /100
Exposed tools
16 7r · 7w · 2d
Transport
stdio
License
MIT
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

This repository is the public release surface for the open-source pieces of Strix, an execution-control system for AI agents. Everything here runs locally and needs no Strix account. The trust primitives — the verifier, the tool-gateway, and the capability packs — are MIT-licensed; the one MCP runtime adapter (@strixgov/mcp-adapter) is source-available under Elastic License 2.0 (free to use, not to resell as a competing managed service). See LICENSING_BOUNDARY.md.

It is a mirror, not the source of truth — the canonical code lives upstream in the Strix monorepo and synchronizes here at release time. See MIRROR.md for the model and CONTRIBUTING.md for how changes flow.

Packages

Read from source at commit d2cffa894859OBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add verifier --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env CLAUDE_API_KEY=${CLAUDE_API_KEY} --env GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN} --env LINEAR_API_KEY=${LINEAR_API_KEY} -- npx -y @strixgov/[email protected]
claude-desktop
{
  "mcpServers": {
    "verifier": {
      "command": "npx",
      "args": [
        "-y",
        "@strixgov/[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "CLAUDE_API_KEY": "${CLAUDE_API_KEY}",
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}",
        "LINEAR_API_KEY": "${LINEAR_API_KEY}"
      }
    }
  }
}
03

Exposed tools (16)

7 read · 7 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
delete_filedestructivedelete a file
delete_thingdestructiveDelete a thing
exec_shellwriterun a shell command
inspect_repositoryreadInspect repository metadata without modifying the repository.
merge_productionwriteMerge an approved commit to the production branch.
mystery_toolreadUnclassified surface
propose_patchwriteCreate a patch proposal on a remediation branch without merging it.
read_filereadread a file
read_thingreadRead a thing
rotate_credentialsreadRotate a production credential.
strix_verifyreadIndependently verify any Strix governance artifact by passing raw @strixgov/verifier CLI arguments.
strix_verify_recordreadConvenience: verify a single Strix evidence record by its evidenceId. Optionally override the proof/JWKS
strix_verify_swarmwriteConvenience: verify an agent-swarm run by its swarmRunId (re-derives the delegation-chain verdict).
write_deal_summarywrite...
write_filewritewrite a file
write_thingwriteWrite a thing
04

Trust audit

BLOCKgrade F · trust 44/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryFAIL
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (8 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHInventory / provenance · inv.suspicious_name · CWE-1104
conformance/corpus/execution_authority_v1/negative/xag-neg-01-payload.json
xag-neg-01-payload.json
Why it matters. member named after an attack tool
Fix. remove or justify
HIGHInventory / provenance · inv.suspicious_name · CWE-1104
conformance/corpus/execution_authority_v1/negative/xag-neg-07-presented-payload.json
xag-neg-07-presented-payload.json
Why it matters. member named after an attack tool
Fix. remove or justify
HIGHInventory / provenance · inv.suspicious_name · CWE-1104
plugins/strix-verifier/conformance/vectors/rcpt-neg-01-tampered-payload.json
rcpt-neg-01-tampered-payload.json
Why it matters. member named after an attack tool
Fix. remove or justify
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/governance-sdk/src/transaction-proof/actor-attestation.ts
actor-attestation.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/governance-sdk/src/transaction-proof/network-signatures.ts
network-signatures.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/governance-sdk/src/transaction-proof/sign.ts
sign.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/strixgov-capabilities-odysseus/src/web.mjs:29
"Fetch an arbitrary URL. A read that can exfiltrate: outbound request bytes are attacker-shapable.",
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/strixgov-governed-action/bin/demo.mjs:77
out = { status: 200, body: { evidenceId: 'ev_self_check', proofUrl: 'http://127.0.0.1/proof/ev_self_check' } };
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/strixgov-governed-action/bin/demo.mjs:84
return { base: `http://127.0.0.1:${server.address().port}`, close: () => server.close() };
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/tool-gateway/test/v02.test.mjs:390
const secret = "test-secret-at-least-16-chars-long";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/tool-gateway/test/v02.test.mjs:444
secret: "wrong-secret-at-least-16-chars",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/tool-gateway/test/v02.test.mjs:453
secret: "test-secret-at-least-16-chars-long",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/tool-gateway/test/v03.test.mjs:106
apiKey: "0123456789abcdef0123456789abcdef",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/tool-gateway/test/v03.test.mjs:123
const apiKey = "0123456789abcdef0123456789abcdef";
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/strixgov-mcp-proxy/test/proxy-end-to-end.test.mjs:334
assert.match(pem, /^-----BEGIN PRIVATE KEY-----/);
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_file, delete_thing
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.suspicious_name · CWE-1104
packages/strixgov-verifier/test/fixtures/mcp_proof_scitt_v1/negative/mcp1-scitt-neg-01-tampered-payload.json
mcp1-scitt-neg-01-tampered-payload.json
Why it matters. member named after an attack tool
Fix. remove or justify
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/tool-gateway/examples/agent-os/live.mjs:103
const out = exec ? await exec(tu.input ?? {}) : { ok: false, reason: "unknown capability" };
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/strixgov-execution-authority/test/corpus.test.mjs:18
const ROOT = path.resolve(HERE, '../../../conformance/corpus');
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/strixgov-guard/test/approvals.test.mjs:96
() => respond("../../etc/passwd", { approved: true, env: f.env }),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/strixgov-mcp-token-validator/test/_helpers/sign.mjs:11
import { canonicalizeJSON } from "../../src/canonical-json.mjs";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/strixgov-verifier/test/fixtures/generate.mjs:13
import { buildCanonicalPayload } from "../../src/index.mjs";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/tool-gateway/examples/agent-os/arm-gateway.mjs:21
} from "../../src/index.mjs";
LOWNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/strixgov-capabilities-mcp-common/test/postgres.test.mjs:42
test("query / read_query / explain_query are MEDIUM READ (exfiltration risk)", () => {
LOWNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/strixgov-capabilities-mcp-common/test/registry.test.mjs:104
test("Postgres reads are intentionally MEDIUM (exfiltration discipline)", () => {

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha d2cffa894859full audit observations/trust-audit/mcp-server/strixgov__strix.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12d2cffa894859BLOCKF44first audit
06

Questions

What tools does @strixgov/mcp-proxy expose?

16 in total: 7 read-only, 7 that write, and 2 that can delete or overwrite (delete_file, delete_thing). Every one is listed on this page with its risk.

Is @strixgov/mcp-proxy safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (44/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does @strixgov/mcp-proxy need?

It reads ANTHROPIC_API_KEY, CLAUDE_API_KEY, GITHUB_PERSONAL_ACCESS_TOKEN, LINEAR_API_KEY, NOTION_TOKEN, SLACK_MCP_XOXP_TOKEN, STRIX_AGENT_KEY_REGISTRY, STRIX_API_KEY, STRIX_CLAUDE_KEY_DIR, STRIX_DECISION_TOKEN_SECRET, STRIX_TEST_TOKEN and STRIX_TEST_TOKEN_2 from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @strixgov/mcp-proxy run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @strixgov/verifier at 1.24.0.

How current is this page?

The grade is for one exact copy of the source (d2cffa894859), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement