-
Notifications
You must be signed in to change notification settings - Fork 3k
feat(mcp): add OpenShell-managed MCP servers #5876
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 1 commit
Commits
Show all changes
526 commits
Select commit
Hold shift + click to select a range
78e85e6
fix(ci): keep PR hash checks credential-free
ericksoa 97f24e1
test(openshell): tighten review contracts
ericksoa 3e1a75f
fix(ci): verify OpenShell pins without API token
ericksoa de07342
fix(policy): strip provider entries from mutations
ericksoa 8c377d3
refactor(policy): extract provider entry filtering
ericksoa ef96ab3
fix(policy): enforce reserved entry boundary
ericksoa b4cf0df
fix(mcp): narrow host alias policy
ericksoa 7d15f5f
fix(mcp): pin child-visible credential boundary
ericksoa 340b8a7
fix(mcp): centralize output redaction
ericksoa 1d233f4
fix(mcp): lock mcporter dependency graph
ericksoa c692d09
fix(policy): close reserved entry boundary
ericksoa e2fbfe2
fix(policy): stage shared boundary in sandbox builds
ericksoa 6570142
fix(policy): support source-only plugin tests
ericksoa 3a19321
test(mcp): exercise lockfile through npm
ericksoa d4741c1
refactor(mcp): split bridge lifecycle modules
ericksoa f70ad2e
refactor(mcp): split lifecycle lock internals
ericksoa 039ce38
refactor(mcp): split provider lifecycle internals
ericksoa e424563
fix(policy): harden OpenShell boundary contracts
ericksoa bc2e9ab
test(openshell): close final compatibility gaps
ericksoa f2f2654
test(mcp): prove adapter DNS rebinding denial
ericksoa 3969d35
test(policy): preserve arbitrary top-level fields
ericksoa b1f7483
fix(mcp): harden Hermes config transactions
ericksoa 9e515f2
fix(ci): cover OpenShell version sources
ericksoa bc23dda
merge(main): refresh OpenShell 0.0.72 base
ericksoa f5ede51
fix(policy): preserve effective diagnostic reads
ericksoa a7e645b
test(policy): split diagnostic read regression
ericksoa d478247
refactor(policy): isolate diagnostic query commands
ericksoa 935cf56
test(openshell): cover published release resolution
ericksoa 82c25cc
fix(policy): fail closed on mutation read errors
ericksoa 801eb5b
test(e2e): accept opaque hosted inference credentials
ericksoa 139d8d0
chore(mcp): integrate unified E2E mainline
ericksoa 808da0b
docs(mcp): link accepted architecture decision
ericksoa 7da5c2f
fix(security): close OpenShell verification gaps
ericksoa ce8f27c
test(sandbox): align direct-container selector fixtures
ericksoa 3343563
test(workflow): execute installer change detector
ericksoa b7cdef1
fix(mcp): harden endpoint and Deep Agents preflight
ericksoa 4d7092f
docs(mcp): clarify managed credential lifecycle
ericksoa 493fe52
fix(mcp): validate credential-shaped URL segments
ericksoa 8e0af10
fix(mcp): harden teardown and shields recovery
ericksoa 0804f27
test(policy): preserve enabled preset coverage
ericksoa b3696e3
fix(sandbox): restore immutable privileged exec routing
ericksoa 8b84011
test(sandbox): distinguish container discovery fixtures
ericksoa 0d5006d
chore(openshell): merge current main into 0.0.72
ericksoa a9e9150
ci(security): add trusted installer hash action
ericksoa abaccac
fix(security): fail closed on missing installer pins
ericksoa 69107f0
ci(security): run PR hash checks from trusted code
ericksoa 6571063
fix(security): verify only owned installer pins
ericksoa a54aac7
ci(security): pin strict installer hash bootstrap
ericksoa 638048d
fix(policy): fail closed on malformed preset YAML
ericksoa d1ab96b
test(policy): isolate fail-closed transition coverage
ericksoa 8500461
refactor(policy): unify OpenShell policy boundary
ericksoa a6aeb08
ci(installer): expire immutable hash bootstrap
ericksoa b0ac984
fix(ci): compile policy boundary from TypeScript
ericksoa 25df677
chore(mcp): merge OpenShell dependency stack
ericksoa 6b70658
fix(policy): reject empty base-policy reads
ericksoa 7e58237
fix(mcp): restore clean CD execution
ericksoa f015b99
chore(mcp): merge OpenShell dependency fixes
ericksoa 443f888
docs(mcp): pin security source boundaries
ericksoa d87d2ba
test(mcp): harden lifecycle lock invariants
ericksoa c6885d7
docs(policy): clarify boundary dependency gate
ericksoa 543df4a
chore(mcp): merge policy boundary clarification
ericksoa 1705536
fix(policy): anchor document separator parsing
ericksoa ee7de13
chore(mcp): merge policy separator fix
ericksoa 4986540
docs(mcp): clarify v0.0.73 release boundary
ericksoa 621b334
fix(ci): harden trusted policy audits
ericksoa 74231e3
refactor(rebuild): split lifecycle pipeline into phases
ericksoa 1e0da24
fix(rebuild): preserve lifecycle state across phase failures
ericksoa ea9dc63
fix(ci): parse installer pins without executing shell
ericksoa 51441d2
chore(openshell): merge current main
ericksoa e2731c8
fix(ci): reconcile main E2E security contracts
ericksoa c5cc11d
chore(mcp): merge current main and dependency fixes
ericksoa 781a052
fix(ci): close compatibility review findings
ericksoa 5baa600
chore(mcp): merge final OpenShell 0.0.72 dependency
ericksoa 059a15d
fix(policy): reject unknown top-level policy shapes
ericksoa 4db8333
chore(mcp): merge final policy validation fix
ericksoa a7e3039
test(mcp): remove workflow source-shape coupling
ericksoa cad2e8f
fix(policy): close fail-closed review gaps
ericksoa 1aa187a
chore(mcp): merge final fail-closed dependency fixes
ericksoa fad4b88
test(mcp): harden lifecycle property timeout
ericksoa 8674dc5
test(policy): align legacy shape expectations
ericksoa 553cfcc
chore(mcp): merge final policy compatibility tests
ericksoa 12f7376
chore(openshell): merge current main
ericksoa eedb095
fix(ci): harden policy boundary checks
ericksoa a5bc9d2
fix(ci): satisfy Docker boundary lint
ericksoa f96ce3b
chore(mcp): merge current main and final dependency
ericksoa 9c26a79
chore(mcp): merge final dependency lint fix
ericksoa f88a5e6
test(e2e): accept reasoning-only inference proof
ericksoa e60186b
fix(credentials): forward only requested provider secrets
ericksoa c9332d3
fix(policy): restore Deep Agents Tavily opt-in
ericksoa de06ed3
test(e2e): align lifecycle fixtures with current contracts
ericksoa 89462af
style(mcp): apply repository formatting
ericksoa aa3be25
chore(mcp): merge final OpenShell proof fix
ericksoa c378ad6
test(installer): prove missing assets fail closed
ericksoa 548b64c
chore(mcp): merge final dependency advisor fix
ericksoa 27e663e
test(shields): tolerate coverage shard contention
ericksoa 07babb3
test(hermes): isolate tracked-stop PID fixture
ericksoa be020b3
docs(deepagents): clarify Tavily provider scope
ericksoa e098105
docs(deepagents): correct Tavily removal order
ericksoa a0a1226
refactor(mcp): split adapter and restart lifecycles
ericksoa 3194140
test(mcp): property-check lifecycle lock identity
ericksoa cff4cf8
test(e2e): prove raw OpenShell DNS pinning
ericksoa 985c1db
test(mcp): avoid conditional growth in lock properties
ericksoa 227dfbb
refactor(mcp): decompose policy and lifecycle surfaces
ericksoa 45a761d
test(mcp): bind lock properties to main suite
ericksoa 987c113
test(e2e): run raw DNS proof in MCP lanes
ericksoa 0a618a9
style: apply repository formatting
ericksoa f8a8fc5
test(security): harden CodeQL fixtures
ericksoa 137607d
refactor(mcp): resolve final review growth blockers
ericksoa 646cea9
fix(mcp): resolve final advisor blockers
ericksoa c62a4c8
test(deps): exercise cloudflared checker behavior
ericksoa 225c11d
fix(mcp): close final security review gaps
ericksoa c811610
refactor(mcp): decompose remaining lifecycle hotspots
ericksoa e34ba83
style(policy): organize extracted module imports
ericksoa db5e218
test(agent): keep env restoration branch free
ericksoa cb88de0
chore(ci): remove stale review aliases
ericksoa 41899a5
fix(ci): restore Brev nightly startup
ericksoa f68f463
fix(ci): isolate Brev matrix concurrency
ericksoa 7e18907
fix(ci): isolate Brev reporting privileges
ericksoa 7685d85
fix(ci): isolate Brev suite instances
ericksoa 227f4fb
test(e2e): preserve rebuild dashboard port
ericksoa 78aafd0
fix(mcp): enforce Hermes credential boundary
ericksoa 869fa9a
fix(ci): harden Brev credential and installer boundaries
ericksoa 0707f2b
test(mcp): lock credential manifest to shipping OpenShell
ericksoa cac8f81
test(mcp): bind installer behavior to credential manifest
ericksoa 5e7deb8
fix(ci): restore locked Brev test dependencies
ericksoa 697020b
test(e2e): refresh rebuild compatibility fixtures
ericksoa efbed27
test(e2e): keep Hermes fixture branch-free
ericksoa 5d17758
test(e2e): mark stale fixture as managed
ericksoa 1853ff4
test(e2e): preserve stale fixture dashboard port
ericksoa 3e15388
fix(e2e): isolate composite Brev suite state
ericksoa 6d487bd
Merge origin/main into dep/openshell-v0.0.72
ericksoa 785e6f4
Merge dep/openshell-v0.0.72 into feat/mcp-bridge-vdr-566
ericksoa 8f7b40e
Merge origin/main into dep/openshell-v0.0.72
ericksoa 191193a
Merge dep/openshell-v0.0.72 into feat/mcp-bridge-vdr-566
ericksoa cfda731
fix(ci): preserve MCP artifact scan gating
ericksoa 4f4ad13
fix(ci): lock Brev setup to reviewed checkout
ericksoa cce350a
Merge origin/main into dep/openshell-v0.0.72
ericksoa 8a54292
Merge dep/openshell-v0.0.72 into feat/mcp-bridge-vdr-566
ericksoa 5c3a620
fix(e2e): isolate Brev messaging lifecycles
ericksoa d3f9ff4
fix(e2e): disable unsafe whole-test retries
ericksoa 3b44af7
fix(e2e): bound Brev lifecycle ownership
ericksoa 0d4374a
fix(e2e): make Brev cleanup workflow-owned
ericksoa a39ba0e
fix(ci): harden Brev cleanup finalizer
ericksoa f4cc61e
refactor(cli): isolate MCP display metadata
ericksoa e793c31
fix(mcp): repair exact-head runtime failures
ericksoa 23d0991
fix(e2e): align Brev security suite timeouts
ericksoa 90166bf
fix(e2e): tolerate process-exit scan races
ericksoa 0cd7604
merge: sync main into OpenShell v0.0.72
ericksoa 538e767
merge: sync OpenShell v0.0.72 dependency
ericksoa 4d57978
fix(policy): reject unmarked diagnostic mappings
ericksoa 613ddd0
fix(e2e): stop restarting MCP sandboxes for test CA
ericksoa b039cb5
fix(e2e): prevent messaging token probe self-matches
ericksoa 03f3f6b
merge: sync hardened OpenShell dependency
ericksoa e7b19ae
fix(e2e): require policy roots in live probes
ericksoa 8c548f4
fix(ci): include parser in installer hash bootstrap
ericksoa e3480ce
merge: sync installer bootstrap hardening
ericksoa 7f3ea39
docs(ci): clarify installer verifier trust boundary
ericksoa 7661d8a
Merge remote-tracking branch 'origin/dep/openshell-v0.0.72' into feat…
ericksoa a579f4b
fix(ci): validate MCP compatibility inputs
ericksoa bef8663
Merge branch 'main' into dep/openshell-v0.0.72
ericksoa 0a27f24
Merge branch 'dep/openshell-v0.0.72' into feat/mcp-bridge-vdr-566
ericksoa 5d94e1f
merge: sync current main into OpenShell 0.0.72
ericksoa e3c3232
merge: restack MCP bridge on current OpenShell dependency
ericksoa 490a1b9
merge: sync current main into OpenShell 0.0.72
ericksoa cafcd2a
merge: sync current main into OpenShell 0.0.72
ericksoa 1ca644d
merge: restack MCP bridge on current OpenShell dependency
ericksoa 7ee13d2
merge: sync current main into OpenShell dependency
ericksoa f90f124
merge: restack MCP bridge on current OpenShell dependency
ericksoa 6b918a6
test(e2e): parse Hermes semver before release date
ericksoa 344038e
merge: restack MCP bridge on corrected OpenShell dependency
ericksoa 18f67ef
merge: sync current main into OpenShell dependency
ericksoa 0ed3f40
fix(sandbox): wait for stopped forwards to release
ericksoa 7c701a9
merge: sync current main into OpenShell dependency
ericksoa dde2c62
merge: sync current main into OpenShell dependency
ericksoa 7ed7f40
merge: sync current main into OpenShell dependency
ericksoa c5673f0
merge: restack MCP bridge on current OpenShell dependency
ericksoa 8161c0f
fix(test): remove duplicate Shields timeout
ericksoa 4d4420a
test(sandbox): model stopped forward release
ericksoa 9874913
merge: sync forward recovery proof from OpenShell dependency
ericksoa 982de7c
docs(sandbox): define forward wait removal condition
ericksoa b3284c1
merge: sync forward recovery maintenance contract
ericksoa 8996b9d
test(sandbox): keep forward fixture linear
ericksoa e923ea6
merge: sync forward recovery test guardrail fix
ericksoa 3571f93
merge: sync current main into OpenShell dependency
ericksoa fa90a37
merge: restack MCP bridge on current dependency
ericksoa 6ac008d
test(docs): follow current sandbox hardening route
ericksoa 717b29e
merge: sync dependency CI repair
ericksoa 8264c19
test(e2e): chunk crash-loop proxy restore
ericksoa b6cf67e
merge: sync OpenShell E2E argument fix
ericksoa 97b8a5e
merge: sync current main into OpenShell dependency
ericksoa 261c826
merge: sync current dependency base
ericksoa dec15c7
merge: sync current main into OpenShell dependency
ericksoa 638bf1f
merge: sync current OpenShell dependency base
ericksoa 5e0c0cd
fix(mcp): preserve generated policy DNS pins
ericksoa d3ba882
fix(mcp): recover Hermes gateway before mutation
ericksoa 75ec47f
fix(mcp): recognize wrapped Hermes gateway
ericksoa b434b41
merge: sync current main into OpenShell dependency
ericksoa b83cdb6
merge: sync current OpenShell dependency base
ericksoa b4a0203
merge: sync current main into OpenShell dependency
ericksoa 0a43f3b
merge: sync current OpenShell dependency base
ericksoa 5a73950
fix(mcp): await Hermes public API after reload
ericksoa 201d918
test(mcp): observe Hermes rebuild discovery window
ericksoa e922a92
test(mcp): cover Hermes reload identity race
ericksoa 730e560
test(mcp): honor adapter mutation timeout on cleanup
ericksoa e3a2a5f
test(mcp): honor adapter timeout for rebinding
ericksoa 9b44e5a
test(mcp): centralize adapter mutation budgets
ericksoa d429495
merge: sync current main into OpenShell dependency
ericksoa 466443e
docs(release): retarget OpenShell update to v0.0.74
ericksoa 8bf137f
merge: sync current OpenShell dependency base
ericksoa ce368c3
docs(mcp): retarget accepted design to v0.0.74
ericksoa 673deeb
fix(mcp): retry stalled Hermes gateway reload
ericksoa ff74343
test(blueprint): preserve SSRF exports in policy mock
ericksoa 4cab135
Merge remote-tracking branch 'origin/dep/openshell-v0.0.72' into feat…
ericksoa cb5e9ae
fix(ci): harden trusted installer hash inputs
ericksoa 203f2bc
ci(security): repin hardened installer hash bootstrap
ericksoa 7c5170b
merge: sync hardened OpenShell dependency
ericksoa 0d1bdd1
test(ci): keep installer fixtures branch-free
ericksoa cb9b463
merge: sync current main into OpenShell dependency
ericksoa 2d9a044
merge: sync current main and hardened OpenShell dependency
ericksoa 6e2839d
fix(policy): normalize source and compiled boundary imports
ericksoa 1e6e61f
merge: sync policy boundary import fix
ericksoa d01a7a4
fix(hermes): repair public relay after reload
ericksoa 62d52b9
merge: sync current main into OpenShell dependency
ericksoa d8eef4c
merge: sync current OpenShell dependency
ericksoa ab2b0c4
merge: sync current main into OpenShell dependency
ericksoa 797c1a6
merge: sync current OpenShell dependency
ericksoa 299efb5
fix(mcp): close review correctness gaps
ericksoa 92512c2
merge: sync current main into OpenShell dependency
ericksoa bd18557
merge: sync current OpenShell dependency
ericksoa ec69761
merge: sync current main into OpenShell dependency
ericksoa 7cf3726
merge: sync current OpenShell dependency
ericksoa 2d06fa0
merge: sync current main into OpenShell dependency
ericksoa 8cd4862
merge: sync current OpenShell dependency
ericksoa cfee6e7
merge: sync current main into OpenShell dependency
ericksoa e610f75
merge: sync current OpenShell dependency
ericksoa 7a272f6
merge: sync current main into OpenShell dependency
ericksoa f7886f7
merge: sync current OpenShell dependency
ericksoa 9ab85e7
merge: sync current main into OpenShell dependency
ericksoa e3a527a
merge: sync current OpenShell dependency
ericksoa 4e4e9ac
merge: sync merged OpenShell base and current main
ericksoa f9c6e5d
merge: sync v0.0.74 main into MCP bridge
ericksoa ab13939
fix: remove unused config test import
ericksoa 231296e
merge: sync current main into MCP bridge
ericksoa eb2dc48
merge: integrate DCode rebuild preflight from main
ericksoa c4cb466
merge: preserve MCP rebuild safety with Tavily
ericksoa cd53181
merge: sync contributor setup from main
ericksoa af17227
merge: preserve managed MCP with DCode hardening
ericksoa 4472c28
test(dcode): keep fixture guard linear
ericksoa bf9100f
test(dcode): stub every isolated Python call
ericksoa f9283fe
test(dcode): stub managed MCP identity fixture
ericksoa File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| import { dispatchMcpBridgeCommand } from "../../lib/actions/sandbox/mcp-bridge"; | ||
| import { NemoClawCommand } from "../../lib/cli/nemoclaw-oclif-command"; | ||
|
|
||
| export default class SandboxMcpCommand extends NemoClawCommand { | ||
| static id = "sandbox:mcp"; | ||
| static strict = false; | ||
| static summary = "Manage MCP bridges for a sandbox"; | ||
| static description = | ||
| "Manage host-side stdio MCP server bridges for a sandbox. The proxy runs on the host with host environment credentials; the sandbox reaches it through a generated network policy and a bearer-authenticated local bridge."; | ||
| static usage = ["<name> <add|list|status|restart|remove> [args...]"]; | ||
| static examples = [ | ||
| "<%= config.bin %> sandbox mcp alpha list", | ||
| "<%= config.bin %> sandbox mcp alpha add github --env GITHUB_TOKEN -- npx -y @modelcontextprotocol/server-github", | ||
| "<%= config.bin %> sandbox mcp alpha status github --json", | ||
| "<%= config.bin %> sandbox mcp alpha remove github", | ||
| ]; | ||
|
|
||
| public async run(): Promise<void> { | ||
| this.parsed = true; | ||
| const [sandboxName, ...actionArgs] = this.argv; | ||
| if ( | ||
| !sandboxName || | ||
| sandboxName.trim() === "" || | ||
| sandboxName === "--help" || | ||
| sandboxName === "-h" | ||
| ) { | ||
| this.failWithLines( | ||
| ["Usage: nemoclaw <sandbox> mcp <add|list|status|restart|remove> [args...]"], | ||
| 2, | ||
| ); | ||
| return; | ||
| } | ||
| await dispatchMcpBridgeCommand(sandboxName, actionArgs); | ||
| } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.