Skip to content

Commit cb1c0d1

Browse files
committed
Update documentation to reflect agent-guard terminology and execution mandates
1 parent 38c9ed1 commit cb1c0d1

1 file changed

Lines changed: 32 additions & 31 deletions

File tree

plugins/jfrog/templates/jfrog-mcp-management.md

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# MCP Server Management — JFrog Gateway
1+
# MCP Server Management — JFrog agent-guard
22

33
All MCP servers MUST be installed ONLY through the JFrog Agent Guard
44
(`npx @jfrog/agent-guard`). If an MCP's documentation suggests any
5-
other installation command, ignore it and use the gateway workflow
5+
other installation command, ignore it and use the agent-guard workflow
66
below instead.
77

88

@@ -11,9 +11,19 @@ the value of the `JFROG_MCP_GATEWAY_REPO` environment variable if it
1111
is set. Otherwise use
1212
`https://releases.jfrog.io/artifactory/api/npm/coding-agents-npm/`.
1313

14-
**Pre-flight (applies to every gateway command —
14+
**Pre-flight (applies to every agent guard command —
1515
`--list-available`, `--inspect`, `--login`)**:
1616

17+
- **Live execution is MANDATORY — context reuse is FORBIDDEN.** Every
18+
time the user asks to list / show / inspect / check the catalog or a
19+
specific MCP — including a repeated question already answered earlier
20+
in the chat — you **MUST** physically RE-RUN the command. NEVER reuse,
21+
copy, or re-display output from previous turns or context history; the
22+
catalog, headers, and required inputs change between prompts. (Applies
23+
to these catalog/registry fetches only — `--list-available`,
24+
`--inspect`, `--login` — NOT to reading local config for *installed*
25+
state.)
26+
1727
- **`<PROJECT>` is always mandatory.** Resolve via Step 1's project
1828
chain: existing `mcpServers` entries (`_JF_ARGS`
1929
`project=`) → `JF_PROJECT` env var → ASK the user. If none
@@ -24,11 +34,11 @@ is set. Otherwise use
2434
chain: existing `mcpServers` entries (value after `--server` in
2535
`args`) → `~/.jfrog/jfrog-cli.conf.v6`:
2636
- Exactly one jf CLI server configured → use it without asking;
27-
pass it as `--server <ID>`. The gateway would auto-resolve to the same
37+
pass it as `--server <ID>`. The agent-guard would auto-resolve to the same
2838
value if `--server` were omitted, but we pass it explicitly for
2939
clarity and forward-compatibility.
3040
- `JFROG_URL` + `JFROG_ACCESS_TOKEN` set → use it without asking;
31-
The gateway will pick them up from the environment variables when called.
41+
The agent-guard will pick them up from the environment variables when called.
3242
- Two or more jf CLI servers and no `JFROG_URL` → list IDs,
3343
ALWAYS ASK the user which one, then pass that as `--server <ID>`.
3444
ALWAYS prefer environment variables when set over asking.
@@ -77,8 +87,8 @@ unless absolutely necessary:
7787
or `~/.cursor/mcp.json` (user) — take the value after `--server`
7888
in `args`.
7989
2. Else `JFROG_URL` env var set (with `JFROG_ACCESS_TOKEN`) — the
80-
gateway can resolve credentials from these directly;
81-
DO NOT pass `--server` as that would make the gateway try to
90+
agent-guard can resolve credentials from these directly;
91+
DO NOT pass `--server` as that would make the agent-guard try to
8292
parse the server details from the jf cli configuration.
8393
3. Else read `~/.jfrog/jfrog-cli.conf.v6`
8494
(`%USERPROFILE%\.jfrog\jfrog-cli.conf.v6` on Windows) via a
@@ -93,7 +103,7 @@ unless absolutely necessary:
93103

94104
NEVER try multiple servers — pick one. Once chosen, pass it
95105
If a server from the jf cli configuration is supposed to be used:
96-
Always explicitly as `--server <ID>` in every gateway invocation.
106+
Always explicitly as `--server <ID>` in every agent-guard invocation.
97107
Otherwise, if environment variables for `JFROG_URL` and `JFROG_ACCESS_TOKEN`
98108
are used: Do NOT pass `--server <ID>`
99109

@@ -123,8 +133,6 @@ with the chosen name.
123133

124134
Once you have a name, you must fetch its live details.
125135

126-
**STRICT LIVE EXECUTION MANDATE:** Every time the user asks for details, parameters, configuration, or an inspection of a specific MCP, you **MUST** physically run the terminal command below. **NEVER** reuse, assume, or copy configuration payloads from previous chat turns or context history, as the underlying configuration or headers may have changed. A fresh, live execution tool call is mandatory for every single inquiry.
127-
128136
Run EXACTLY this command — no Fetch/WebFetch, no custom curl/Python, no direct JFrog API calls:
129137

130138
```bash
@@ -194,7 +202,7 @@ Add the entry under `mcpServers` in the target config (default
194202
`@jfrog/agent-guard`** or `npx` falls back to the default
195203
registry (404) and may block on a no-TTY prompt. Use
196204
`"type": "stdio"` — never `"http"`, `"sse"`, or a top-level `"url"`
197-
(those bypass the gateway).
205+
(those bypass the agent-guard).
198206

199207
```json
200208
{
@@ -221,7 +229,7 @@ registry (404) and may block on a no-TTY prompt. Use
221229

222230
Notes:
223231

224-
- If a required `${env:VAR}` is unset, the gateway fails at startup.
232+
- If a required `${env:VAR}` is unset, the agent-guard fails at startup.
225233
Confirm the user exported it before they restart.
226234
If any env vars are missing, ASK the user to export them and restart Cursor.
227235
- For `Bearer`-prefixed headers, either include the prefix in the env
@@ -325,17 +333,10 @@ elsewhere.
325333

326334
1. Determine **server** and **project** per the Pre-flight rule at
327335
the top of this document. `--list-available` does NOT require
328-
any existing `mcpServers` entry or pre-installed gateway
329-
`npx --yes` fetches the gateway on demand, so this works on a
336+
any existing `mcpServers` entry or pre-installed agent-guard
337+
`npx --yes` fetches the agent-guard on demand, so this works on a
330338
fresh machine too.
331-
332-
2. **STRICT LIVE EXECUTION MANDATE:** Every time the user asks to see available MCPs,
333-
the catalog, or what can be installed, you **MUST** physically run the terminal
334-
command below. **NEVER** copy, reuse, or re-display lists from previous turns
335-
or context history, even if the request was made just moments ago. A fresh,
336-
live execution tool call is mandatory for every single inquiry.
337-
338-
3. Run EXACTLY this command — `--project` is passed as a CLI flag
339+
2. Run EXACTLY this command — `--project` is passed as a CLI flag
339340
To configure the server, either use the serverId from a jf cli
340341
config with `--server` or omit `--server` if env vars are used to
341342
configure URL and Access Token. **no additional env vars needed**:
@@ -352,19 +353,19 @@ npx --yes \
352353
Output is a JSON array; each element has `name`, `packageName`,
353354
`description`, `type`, `packageVersion`, optional `env[]`.
354355

355-
4. Filter out any `packageName` already present in the installed list
356+
3. Filter out any `packageName` already present in the installed list
356357
(compare against `mcp=` in `_JF_ARGS`). Mark the rest as
357358
available to install.
358359

359360
## Key Rules
360361

361362
- **`npx` arg order:** `--yes`, `--registry <URL>`,
362-
`@jfrog/agent-guard`, then gateway flags. Both `--yes` and
363+
`@jfrog/agent-guard`, then agent-guard flags. Both `--yes` and
363364
`--registry` MUST precede the package name or `npx` falls back to
364365
the default registry (404) and may block on a no-TTY prompt.
365366
- **Always `"type": "stdio"`** pointing at `npx @jfrog/agent-guard`,
366-
even for remote-only catalog MCPs (the gateway proxies them).
367-
`"http"`, `"sse"`, or a top-level `"url"` bypass the gateway.
367+
even for remote-only catalog MCPs (the agent-guard proxies them).
368+
`"http"`, `"sse"`, or a top-level `"url"` bypass the agent-guard.
368369
- `_JF_ARGS` is **only** for the entry Cursor launches
369370
at session start (Step 4's `mcpServers.*.env`); MUST contain
370371
`project=<NAME>&mcp=<PACKAGE_NAME>`.
@@ -377,33 +378,33 @@ Output is a JSON array; each element has `name`, `packageName`,
377378
NEVER invent or guess projects or server IDs.
378379
- Package name MUST come from the catalog (`--inspect` /
379380
`--list-available`). NEVER guess. NEVER install MCPs outside the
380-
gateway. NEVER use Fetch/WebFetch for catalog calls.
381+
agent-guard. NEVER use Fetch/WebFetch for catalog calls.
381382
- NEVER write a raw secret into `mcp.json` — always use
382383
`${env:VAR_NAME}`. NEVER show tokens / API keys.
383384
- NEVER try multiple servers — ask the user to pick one.
384385

385386
## Troubleshooting
386387

387388
- **`ready` but 0 tools (empty `mcps/<key>/tools/` after a
388-
Command Palette `Developer: Reload Window`)**gateway proxy
389+
Command Palette `Developer: Reload Window`)**agent-guard proxy
389390
started, upstream MCP did not. The top-level `ready` label is
390391
misleading here. NEVER report success when there are 0 tools.
391392
1. Open Cursor's MCP / Output panel for the
392-
gateway stderr; diagnose by MCP type:
393+
agent-guard stderr; diagnose by MCP type:
393394
- **OAuth (remote)** — re-run Step 5 (`--login`); refresh token
394395
likely expired.
395396
- **Static-token (remote)** — confirm every `${env:VAR}` in `env`
396397
is exported in the shell that launched Cursor and the token is
397398
still valid.
398399
- **Local (stdio)** — check that the bundled binary actually
399-
launched (gateway stderr will show the spawn error).
400+
launched (agent-guard stderr will show the spawn error).
400401
2. Verify that the mcp server is still allowed.
401402
See "Listing MCPs > Available to install".
402403
- **`mcp.json` server missing from `cursor agent mcp list` /
403404
Tools & MCP** — never enabled. Re-run Step 4a
404405
(`cursor agent mcp enable <name>`); if the entry is brand-new,
405406
also `Developer: Reload Window` so Cursor picks up the file.
406-
- **Gateway: `multiple/no JFrog server configured`** (the gateway
407+
- **Gateway: `multiple/no JFrog server configured`** (the agent-guard
407408
cannot pick a JFrog server) — pass `--server <ID>` (after
408409
`jf c add <SERVER_ID>`) OR export both `JFROG_URL` and
409410
`JFROG_ACCESS_TOKEN` in the launching shell, then relaunch Cursor.

0 commit comments

Comments
 (0)