Skip to content

docs(readme): drop env from Claude Desktop config so the listing sandbox can run it - #348

Merged
hyperpolymath merged 1 commit into
mainfrom
docs/listing-sandbox-no-env
Oct 7, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
docs/listing-sandbox-no-env

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

Removes the env block from the Claude Desktop mcpServers example in the README. The goal is to let aiagentslisting.com's sandbox run the npx package, so the listing's four remaining checks can be credited: Exposes tools (required), Verified live, Ships prompts and Ships resources. The score is currently 49/100, grade F, with 2 of 3 required checks passed.

Why this is thought to be the blocker:

  • At 2026-10-07T06:48Z the listing held installConfig.mcpServers.boj-server.env = {"BOJ_URL": ""}. The scanner blanks env values, the way it would for a credential the user must supply.
  • The listing has serverTools: [] and no serverToolsCheckedAt, so the sandbox has never run against boj-server.
  • The one local-stdio npx server in a 28-listing sample (discover pages 1–4) that the sandbox did verify is playwright-mcp, with serverToolsSource: "sandbox" and a score of 80. Its config declares no env.

This is a hypothesis. It's confirmed only once a rescan shows serverToolsSource: "sandbox". BOJ_URL already defaults to http://localhost:7700 (mcp-bridge/lib/api-clients.js:14), so the example behaves exactly as before, and the README still says how to set the variable.

Follows #341, which fixed Installation method and Easy install; both now score full marks.

Type of change

Documentation only.

📌 New pins

Head SHA: e1aa8d3c998c72e5fb728859ff589bd291806696. This PR adds or changes no pins: no action uses:, actions.lock, lockfile or container digest changes.

Changes

  • README.adoc: dropped the "env": { "BOJ_URL": … } line from the Claude Desktop JSON fence, and added one sentence saying BOJ_URL defaults to http://localhost:7700 and should be set under env only if the backend listens elsewhere.
  • README.md: re-derived from README.adoc (ADR-004). The only differences are those two changes.

RSR Quality Checklist

Required

  • Tests pass. N/A in practice: this PR changes no code, only two README files.
  • Code is formatted. N/A: no code changed.
  • Linter is clean. N/A: no code changed.
  • No banned language patterns. Documentation only; no new files.
  • No unsafe blocks without // SAFETY: comments. N/A: no code changed.
  • No banned functions. N/A: no code changed.
  • SPDX license headers present. Both modified files keep their existing CC-BY-SA-4.0 headers, and there are no new files.
  • No secrets, credentials, or .env files included. The removed line was a localhost default, not a secret.

As Applicable

  • .machine_readable/* updated. N/A: project state didn't change, and A2ML is retired estate-wide (D308).
  • Documentation updated for user-facing changes. That is the whole PR.
  • TOPOLOGY.md updated. N/A: architecture didn't change.
  • CHANGELOG updated. N/A: README example only, no release.
  • New dependencies reviewed. N/A: no dependencies added.
  • ABI/FFI changes validated. N/A: ABI and FFI untouched.

Testing

  • Server unaffected by the env value. I ran npx -y @hyperpolymath/boj-server@latest (0.4.7) twice, once with BOJ_URL unset and once with BOJ_URL="", sending initialize, tools/list, prompts/list and resources/list. Both runs completed a clean handshake and returned 65 tools, 6 prompts and 6 resources, with nothing but JSON-RPC on stdout.
  • README.md re-derived with the pinned pipeline. asciidoctor 2.0.26 docbook5, then pandoc 3.10 gfm, plus the SPDX/GENERATED banner. The local reducer is 1.1.2 against the pinned 1.1.1; every other line of the output is identical to the committed file. The workflow's own norm + diff -q freshness step reports up to date.
  • After merge: the owner clicks Rescan, then get_listing boj-server should show serverToolsSource: "sandbox" and quality.requiredPassed: true.

Deferred non-required reds that are also red on main@9180ee6b: governance / UUID v7 conformance → #338 (CLADE.a2ml v5 literal, added in a #338 comment) and SonarQube → #338.

🤖 Generated with Claude Code

https://claude.ai/code/session_01P56iYjCwHmbRyfFrpyJzTC

…box can run it

The aiagentslisting.com scanner stores README env values blanked
(BOJ_URL: "") and has never sandboxed boj-server; the one stdio npx
server it did sandbox (playwright-mcp) declares no env. BOJ_URL already
defaults to http://localhost:7700, so the block was redundant.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P56iYjCwHmbRyfFrpyJzTC
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: aab9922e-5409-4c6a-8f73-e7528812c377
📥 Commits

Reviewing files that changed from the base of the PR and between f51de38 and e1aa8d3.

📒 Files selected for processing (2)
  • README.adoc
  • README.md

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (32)
  • GitHub Check: governance / Licence consistency
  • GitHub Check: governance / Exemption ratchet
  • GitHub Check: governance / Workflow security linter
  • GitHub Check: governance / Well-Known (RFC 9116 + RSR)
  • GitHub Check: governance / Actions lockfile verify
  • GitHub Check: governance / Guix packaging policy (Nix retired)
  • GitHub Check: governance / UUID v7 conformance
  • GitHub Check: governance / Code quality + docs
  • GitHub Check: governance / Check Workflow Staleness
  • GitHub Check: governance / Trusted-base reduction policy
  • GitHub Check: governance / Language / package anti-pattern policy
  • GitHub Check: governance / Debt ratchet
  • GitHub Check: governance / Live Actions policy (credentialed advisory)
  • GitHub Check: scan / rust-secrets
  • GitHub Check: scan / gitleaks
  • GitHub Check: governance / Allowlist Preflight
  • GitHub Check: readme-derive / Derive & verify README.md
  • GitHub Check: Detect relevant changes
  • GitHub Check: Hypatia Neurosymbolic Analysis
  • GitHub Check: analyze (javascript-typescript, none)
  • GitHub Check: Empty-linter (invisible characters)
  • GitHub Check: Detect relevant changes
  • GitHub Check: Validate K9 contracts
  • GitHub Check: Detect relevant changes
  • GitHub Check: Detect relevant changes
  • GitHub Check: Bridge — deno (unit + boot smoke)
  • GitHub Check: Bridge — node (unit + boot smoke)
  • GitHub Check: Bridge — bun (unit + boot smoke)
  • GitHub Check: Detect relevant changes
  • GitHub Check: Detect relevant changes
  • GitHub Check: SonarQube
  • GitHub Check: semgrep-cloud-platform/scan
⚠️ CI failures not shown inline (2)

GitHub Actions: Build / 0_SonarQube.txt: docs(readme): drop env from Claude Desktop config so the listing sandbox can run it

Conclusion: failure

View job details

##[group]Run SonarSource/sonarqube-scan-action@v8.1.0
 with:
   projectBaseDir: .
   scannerVersion: 8.1.0.6389
   scannerBinariesUrl: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
   skipSignatureVerification: false
 env:
   SONAR_***REDACTED_SECRET_ASSIGNMENT***
 ##[endgroup]
 Installing Sonar Scanner CLI 8.1.0.6389 for linux-x64...
 Downloading from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip
 Downloading signature from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip.asc
 Importing SonarSource public key from hkps://keyserver.ubuntu.com...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-home-1791356063257-2292 --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 679F1EE92B19609DE816FDE81DB198F93525EC1A
 gpg: keybox '/home/runner/work/_temp/gpg-home-1791356063257-2292/pubring.kbx' created
 gpg: /home/runner/work/_temp/gpg-home-1791356063257-2292/trustdb.gpg: trustdb created
 gpg: key 1DB198F93525EC1A: public key "SonarSource S.A. <infra@sonarsource.com>" imported
 gpg: Total number processed: 1
 gpg:               imported: 1
 Successfully imported key from hkps://keyserver.ubuntu.com
 ✓ SonarSource public key imported successfully
 Verifying GPG signature...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-home-1791356063257-2292 --batch --verify /home/runner/work/_temp/b9506e16-89b6-4662-8d98-2d5a08a81410 /home/runner/work/_temp/8fa70313-b5d7-4a93-8a0f-82ecf7647620
 gpg: Signature made Tue Apr 21 07:20:26 2026 UTC
 gpg:                using RSA key D1436C0DBACEA48702AF97C363F1DD7753B8B315
 gpg: Good signature from "SonarSource S.A. <infra@sonarsource.com>" [unknown]
 gpg: WARNING: This key is not certified with a trusted signature!
 gpg:          There is no indication that the signature belongs to the owner.
 Primary key fingerprint: 679F 1EE9 2B19 609D E816  FDE8 1DB1 98F9 3525 EC1A
   ...

GitHub Actions: Build / SonarQube: docs(readme): drop env from Claude Desktop config so the listing sandbox can run it

Conclusion: failure

View job details

##[group]Run SonarSource/sonarqube-scan-action@v8.1.0
 with:
   projectBaseDir: .
   scannerVersion: 8.1.0.6389
   scannerBinariesUrl: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
   skipSignatureVerification: false
 env:
   SONAR_***REDACTED_SECRET_ASSIGNMENT***
 ##[endgroup]
 Installing Sonar Scanner CLI 8.1.0.6389 for linux-x64...
 Downloading from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip
 Downloading signature from: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.1.0.6389-linux-x64.zip.asc
 Importing SonarSource public key from hkps://keyserver.ubuntu.com...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-home-1791356063257-2292 --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 679F1EE92B19609DE816FDE81DB198F93525EC1A
 gpg: keybox '/home/runner/work/_temp/gpg-home-1791356063257-2292/pubring.kbx' created
 gpg: /home/runner/work/_temp/gpg-home-1791356063257-2292/trustdb.gpg: trustdb created
 gpg: key 1DB198F93525EC1A: public key "SonarSource S.A. <infra@sonarsource.com>" imported
 gpg: Total number processed: 1
 gpg:               imported: 1
 Successfully imported key from hkps://keyserver.ubuntu.com
 ✓ SonarSource public key imported successfully
 Verifying GPG signature...
 [command]/usr/bin/gpg --homedir /home/runner/work/_temp/gpg-home-1791356063257-2292 --batch --verify /home/runner/work/_temp/b9506e16-89b6-4662-8d98-2d5a08a81410 /home/runner/work/_temp/8fa70313-b5d7-4a93-8a0f-82ecf7647620
 gpg: Signature made Tue Apr 21 07:20:26 2026 UTC
 gpg:                using RSA key D1436C0DBACEA48702AF97C363F1DD7753B8B315
 gpg: Good signature from "SonarSource S.A. <infra@sonarsource.com>" [unknown]
 gpg: WARNING: This key is not certified with a trusted signature!
 gpg:          There is no indication that the signature belongs to the owner.
 Primary key fingerprint: 679F 1EE9 2B19 609D E816  FDE8 1DB1 98F9 3525 EC1A
   ...
🧰 Additional context used
📚 Code guidelines (1)
.github/copilot-instructions.md — auto-discovered
📓 Path-based instructions (1)
Source excerpt: SPDX: `MPL-2.0` on all new files.

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • README.md
  • README.adoc
🔇 Additional comments (2)
README.md (1)

97-97: LGTM!

Also applies to: 103-103

README.adoc (1)

92-92: LGTM!

Also applies to: 98-98


📝 Summary

Summary by CodeRabbit

  • Documentation
    • Clarified that BOJ_URL defaults to http://localhost:7700 in the Claude Desktop configuration.
    • Explained that an env setting is only needed when the backend uses a different address.

Walkthrough

The Claude Desktop examples no longer set BOJ_URL explicitly. The README files state that it defaults to http://localhost:7700 and should be set under env only when the backend uses a different URL.

Changes

Claude Desktop URL configuration

Layer / File(s) Summary
Update configuration examples
README.md, README.adoc
The examples remove the explicit BOJ_URL setting. The instructions describe its default value and when to set it under env.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to e1aa8

The examples rely on the bridge’s existing localhost default and explain when to override it. No merge-blocking risk is evident.

Architecture Summary

Architecture risk: 🔵 Low · up to e1aa8

The change affects 2 systems.

Changed systems: README.adoc, README.md

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — README.adoc (service) was modified; 1 changed file maps to changed impact.
  • observed — README.md (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in README.adoc: The Claude Desktop configuration example removes the explicit BOJ_URL environment setting and updates the instructions to say the variable defaults to http://localhost:7700 and should be set under env only when the backend uses a different URL.
  • observed — Modified behavior in README.md: The Claude Desktop example removes its env block setting BOJ_URL to http://localhost:7700; the args entry remains.
  • observed — Modified behavior in README.md: The restart instruction now states that BOJ_URL defaults to http://localhost:7700 and should be set under env only when the backend listens elsewhere.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the README change: removing the Claude Desktop configuration's env block so the listing sandbox can run it.
Description check ✅ Passed The description covers the summary, changes, quality checklist and testing. It also explains the sandbox hypothesis and states how to verify it after merge. Screenshots are not applicable to this docu…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit reads the setup page,
And finds the default URL in place.
No extra env is needed here,
Unless the backend moves elsewhere.
The example now makes that quite clear.

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 113 issues detected

Severity Count
🔴 Critical 10
🟠 High 20
🟡 Medium 83

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Job `sonarqube` in build.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/build.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sonarqube"
  },
  {
    "reason": "Job `triage` in label-triage.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/label-triage.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "triage"
  },
  {
    "reason": "Job `sync` in labels.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/labels.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "sync"
  },
  {
    "reason": "Job `deploy` in pages-deploy.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).",
    "type": "missing_timeout_minutes",
    "file": ".github/workflows/pages-deploy.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "recipe_id": "recipe-add-workflow-timeout-minutes",
    "job": "deploy"
  },
  {
    "reason": "Step uses `peter-evans/repository-dispatch` with `token: ${{ secrets.FARM_DISPATCH_TOKEN }}` but has no `if: secrets.FARM_DISPATCH_TOKEN != ''` gate. On repos where the secret hasn't been propagated the action fails on every push, red-maining the repo. Add the step-level gate (or env+if pattern) so the missing-secret path is a clean skip instead of a red.",
    "type": "secret_action_without_presence_gate",
    "file": ".github/workflows/instant-sync.yml",
    "action": "peter-evans/repository-dispatch",
    "rule_module": "workflow_audit",
    "severity": "high",
    "fix_recipe": "add_secret_presence_gate"
  },
  {
    "reason": "codeql.yml does not list `language: actions` in its matrix, but the repo has workflow files. CodeQL's `actions` language scans workflow YAML for injection and other CI/CD-specific weaknesses — every repo with workflows benefits. Add an entry to `matrix.include` with `language: actions` + `build-mode: none`.",
    "type": "codeql_missing_actions_language",
    "file": ".github/workflows/codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium",
    "fix_recipe": "add_codeql_actions_language"
  },
  {
    "line": 39,
    "reason": "job in .github/workflows/labels.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/labels.yml",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium"
  },
  {
    "line": 46,
    "reason": "job in .github/workflows/push-email-notify.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/push-email-notify.yml",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium"
  },
  {
    "line": 32,
    "reason": "job in .github/workflows/build.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/build.yml",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium"
  },
  {
    "line": 44,
    "reason": "job in .github/workflows/container-publish.yml references `secrets.*` but does not install `step-security/harden-runner` — review outbound-egress monitoring",
    "type": "RE001",
    "file": ".github/workflows/container-publish.yml",
    "action": "report",
    "rule_module": "research_extensions",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 9180ee6 into main Oct 7, 2026
60 of 63 checks passed
@hyperpolymath
hyperpolymath deleted the docs/listing-sandbox-no-env branch October 7, 2026 06:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant