@getmarrow/mcp 3.9.101 → 3.9.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -8
- package/dist/cli.js +23 -995
- package/dist/cli.js.map +1 -1
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +229 -39
- package/dist/env.js.map +1 -1
- package/dist/hook-contract.d.ts +41 -3
- package/dist/hook-contract.d.ts.map +1 -1
- package/dist/hook-contract.js +119 -16
- package/dist/hook-contract.js.map +1 -1
- package/dist/hook-pre-action.d.ts.map +1 -1
- package/dist/hook-pre-action.js +4 -1
- package/dist/hook-pre-action.js.map +1 -1
- package/dist/hook-tool-policy.d.ts +3 -3
- package/dist/hook-tool-policy.d.ts.map +1 -1
- package/dist/hook-tool-policy.js +6 -22
- package/dist/hook-tool-policy.js.map +1 -1
- package/dist/hook.d.ts +1 -1
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +1 -0
- package/dist/hook.js.map +1 -1
- package/dist/host-approval-state.d.ts +9 -0
- package/dist/host-approval-state.d.ts.map +1 -1
- package/dist/host-approval-state.js +4 -0
- package/dist/host-approval-state.js.map +1 -1
- package/dist/host-approval.d.ts +6 -0
- package/dist/host-approval.d.ts.map +1 -1
- package/dist/host-approval.js +3 -1
- package/dist/host-approval.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -9
- package/dist/index.js.map +1 -1
- package/dist/normalized-action.d.ts.map +1 -1
- package/dist/normalized-action.js +6 -2
- package/dist/normalized-action.js.map +1 -1
- package/dist/own-tool.d.ts +83 -0
- package/dist/own-tool.d.ts.map +1 -0
- package/dist/own-tool.js +165 -0
- package/dist/own-tool.js.map +1 -0
- package/dist/tool-catalog.d.ts +6852 -0
- package/dist/tool-catalog.d.ts.map +1 -0
- package/dist/tool-catalog.js +999 -0
- package/dist/tool-catalog.js.map +1 -0
- package/package.json +1 -1
- package/server.json +9 -2
package/README.md
CHANGED
|
@@ -97,7 +97,7 @@ Hooks-only setup (`marrow-mcp setup` writes hooks and `CLAUDE.md` instructions,
|
|
|
97
97
|
npx -y --package=@getmarrow/mcp@latest marrow-mcp setup
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
The MCP server and Claude Code's cooperative pre-action hook read the key only from the process environment or an owner-controlled `~/.marrow/env` (or `~/.marrow/env.local`) with owner-only permissions (`chmod 600`). An owner file that is a symlink, readable or writable by others, owned by another user, or in a directory others can write supplies nothing, key included; the missing-key message names it with the `chmod` fix. Repository-local files (`.env`, `.env.local`, `.marrow/env*` in the working directory or its parents) are never read for `MARROW_API_KEY` or any other `MARROW_*` setting, whatever their permissions, so project content cannot replace the account, agent, or API endpoint. If one holds a key, the missing-key message names that file and the fix: run `npx @getmarrow/install doctor`, or move the line to `~/.marrow/env`, then `chmod 600 ~/.marrow/env`. The public hook callback is still a client self-report, not certified host provenance or an external enforcement boundary.
|
|
101
101
|
|
|
102
102
|
Then configure the MCP server:
|
|
103
103
|
|
|
@@ -165,15 +165,23 @@ These behaviors shipped in 3.9.100 and still apply.
|
|
|
165
165
|
- **Deploy text only word for word:** the exact command text is sent only for `sst deploy --stage <stage>` (optionally `--verbose`, optionally after one `npx` or `bunx`), with a stage of lower-case letters, digits and dashes, in a single clause with nothing else in it, so Marrow can judge the stage itself. Every other command, including other deploy tools, sends only the hash; no free-text word leaves the machine.
|
|
166
166
|
- **No lifecycle event id with two payloads:** an event id names its payload, so a later run is a new record and a resend carries the same bytes.
|
|
167
167
|
|
|
168
|
-
##
|
|
168
|
+
## Setup and key handling
|
|
169
169
|
|
|
170
|
-
|
|
171
|
-
- **Keys are read from trusted places only:** setup reads a key only from the environment or an owner-only `~/.marrow/env`.
|
|
172
|
-
- **Key-file steps are safer:** they now include `chmod 700 ~/.marrow` before `chmod 600 ~/.marrow/env`.
|
|
173
|
-
- **Hold messages say where to approve:** a held action now says how to approve it where your host really asks.
|
|
174
|
-
- **One enforcement sentence:** the "what is enforced" wording now matches the public site.
|
|
170
|
+
These behaviors shipped in 3.9.101 and still apply.
|
|
175
171
|
|
|
176
|
-
|
|
172
|
+
- **Setup with no key stops:** `marrow-mcp setup` with no key, or with a key only in an untrusted place such as a project `.env`, stops, writes nothing and tells you how to get a key.
|
|
173
|
+
- **Keys are read from trusted places only:** the key comes from the environment or an owner-only `~/.marrow/env`.
|
|
174
|
+
- **Key-file steps include `chmod 700 ~/.marrow`** before `chmod 600 ~/.marrow/env`.
|
|
175
|
+
- **Hold messages say where to approve:** a held action says how to approve it where your host really asks.
|
|
176
|
+
- **One enforcement sentence:** the "what is enforced" wording matches the public site.
|
|
177
|
+
|
|
178
|
+
## What's New in v3.9.102
|
|
179
|
+
|
|
180
|
+
- **A cloned project's `.env` cannot redirect the MCP server:** repository-local `.env`, `.env.local` and `.marrow/env*` files are never read for `MARROW_API_KEY` or any other `MARROW_*` setting, so project content cannot point the server at another account, agent or API endpoint.
|
|
181
|
+
- **Safer key-file advice:** an owner file that is a symlink, readable or writable by others, owned by another user, or in a directory others can write supplies nothing, and the missing-key message names the file with the `chmod` fix.
|
|
182
|
+
- **Only Marrow's own tools skip the gate, by exact name:** a tool is Marrow's own only when its server is exactly `marrow` and its tool name is exactly one this package registers. Look-alike servers, other cases, extra spaces or suffixes go through the pre-action gate like any other MCP tool. Re-run `marrow-mcp setup` to refresh hooks written with the old matcher.
|
|
183
|
+
|
|
184
|
+
Earlier behaviors are kept under [Setup and key handling](#setup-and-key-handling) and [Hook behavior details](#hook-behavior-details). v3.9.99 brought approvals in the host prompt; see [Approvals in the Host Prompt](#approvals-in-the-host-prompt).
|
|
177
185
|
|
|
178
186
|
Earlier release notes moved from this README to [CHANGELOG.md](https://github.com/getmarrow/marrow-mcp/blob/master/CHANGELOG.md).
|
|
179
187
|
|