docs(rfc): sandbox-local route for host-tool discovery and invocation#1724
docs(rfc): sandbox-local route for host-tool discovery and invocation#1724shiju-nv wants to merge 1 commit into
Conversation
Add RFC 0005 proposing tools.local as a sandbox-local origin for OpenShell host-tool discovery and invocation in OpenShell. Define the /mcp gateway-to-broker relay, broker profile configuration, authentication boundaries, error mapping, audit behavior, risks, alternatives, and implementation plan. Signed-off-by: Shiju <shiju@nvidia.com>
|
Thank you for your submission! We ask that you sign our Developer Certificate of Origin before we can accept your contribution. You can sign the DCO by adding a comment below using this text: I have read the DCO document and I hereby sign the DCO. You can retrigger this bot by commenting recheck in this Pull Request. Posted by the DCO Assistant Lite bot. |
|
I have read the DCO document and I hereby sign the DCO. |
| [openshell.gateway.host_tools.brokers.local] | ||
| kind = "json_rpc_http" | ||
| base_url = "http://127.0.0.1:7901" | ||
| rpc_path = "/" |
|
|
||
| V1 uses MCP over JSON-RPC 2.0 at `POST http://tools.local/mcp` as the host-tool wire contract. It has three protocol boundaries: | ||
|
|
||
| - Sandbox to `tools.local`. The sandbox proxy reserves the `tools.local` host. Root JSON-RPC has no v1 methods and returns `method not found` for valid requests. The proxy serves `POST http://tools.local/mcp` as the broker-backed MCP-over-JSON-RPC 2.0 HTTP path, applies local admission checks, attaches sandbox context, and never exposes broker identity or backend routes to the sandbox. |
There was a problem hiding this comment.
Is there anything preventing us from using the existing host.openshell.internal endpoint to reach host services instead of creating a new convention?
How does this work in Kubernetes based cloud deployments?
|
|
||
| The server-side component behind the sandbox proxy. For host tools it authenticates sandbox context, adds trusted `_meta`, calls the broker, validates response framing, and writes gateway audit. | ||
|
|
||
| ### Host-Tool Broker |
There was a problem hiding this comment.
To clarify, this is completely outside of OpenShell? Does this broker use any OpenShell specific conventions?
|
|
||
| Returned tool content is text-only and must fit the v1 transport envelope. Broker-side result validation is part of the Machine-Readable Tool Contract below. | ||
|
|
||
| ## Machine-Readable Tool Contract |
| ### Provider Calls Host Tools Directly | ||
|
|
||
| The provider receives a remote MCP or tool-server URL. That exposes host routes outside the OpenShell relay, weakens audit, bypasses the sandbox proxy, and needs a separate RFC covering provider-facing schema generation, callback authentication, result adaptation, and audit correlation. |
There was a problem hiding this comment.
I don't fully understand all these points. Can you expand on the points and detail how the proposed solution addresses them.
Summary
This PR adds RFC 0005, which proposes
tools.localas a sandbox-local origin for host-tool discovery and invocation in OpenShell. The design lets sandboxed agents callPOST http://tools.local/mcpwhile keeping backend routes, host credentials, and host-local state outside the sandbox.Related Issue
#1723
Changes
tools.local./mcprelay from sandbox proxy to gateway to host-tools broker.POST http://tools.local/for future OpenShell JSON-RPC methods and keeps it closed in v1.Testing
RFC-only documentation change.
mise run pre-commitpasses, not runChecklist