Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-mcp

Model Context Protocol server for Pudu language documentation and compiler tools

0.1.1Apache-2.01

InstallClose

ADR-0004-workspace-confinement.md

Markdown33 lines907 B

GitHub ↗

ADR-0004 — Confine file access to one workspace


type: adr status: Accepted tags: [adr]


Context

Tool arguments come from a model and are untrusted. A path argument could name any file on the machine.

Decision

Path arguments are resolved with Fs.resolveInside against the workspace root (PUDU_MCP_ROOT, else the directory the server started in). A path outside it, or one that does not exist, is a tool execution error. Inline source is written to a fresh private directory under the system temporary directory and removed after the command. pudu_run always passes --confined.

Consequences

  • A symbolic link inside the workspace that points outside it is refused.
  • The server never writes into the workspace.

Rejected

  • Trusting the client's roots: the Roots feature is deprecated and roots are advisory.

Referenced by

[[decisions/_MOC]] · [[domain/Workspace]]