From b4f3a323435bb028db88f21495686e80ad8d6e3f Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Wed, 26 Aug 2026 15:54:50 -0600 Subject: [PATCH] docs: Added documentation on the updated mcp.json location for bundles --- Sharing-Configurations.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Sharing-Configurations.md b/Sharing-Configurations.md index f27fa2d..8a66f24 100644 --- a/Sharing-Configurations.md +++ b/Sharing-Configurations.md @@ -117,13 +117,13 @@ Restrict an install to a single asset category with `--filter`: | Filter | Installs | |--------------|------------------------------------------------------------------------------------------------| -| *(omitted)* | `agents/`, `roles/`, `skills/`, `macros/`, `functions/tools/`, and merges `functions/mcp.json` | +| *(omitted)* | `agents/`, `roles/`, `skills/`, `macros/`, `functions/tools/`, and merges `mcp.json` | | `agents` | `agents/` only | | `roles` | `roles/` only | | `skills` | `skills/` only | | `macros` | `macros/` only | | `functions` | `functions/tools/` only (does **not** include `mcp.json`) | -| `mcp_config` | `functions/mcp.json` only (merged) | +| `mcp_config` | `mcp.json` only (merged) | ```sh coyote --install --filter agents @@ -165,10 +165,11 @@ Coyote recognizes these top-level directories. Anything outside them is ignored. │ └── SKILL.md # YAML frontmatter + body ├── macros/ │ └── .yaml # Positional/rest variables + REPL command steps -└── functions/ - ├── tools/ - │ └── *.sh / *.py / *.ts # Global tools (auto chmod +x on install) - └── mcp.json # MCP server config (merged with local, not overwritten) +├── functions/ +│ ├── tools/ +│ │ └── *.sh / *.py / *.ts # Global tools (auto chmod +x on install) +│ └── mcp.json # Historical MCP config location (still supported) +└── mcp.json # MCP server config (merged with local, not overwritten) ``` A few things to note: @@ -177,6 +178,8 @@ A few things to note: do not need to use `--filter` for partial repos. - **`.git/` is excluded** from the scan automatically. - **Symlinks are rejected** by the install walker as a defense-in-depth measure. +- **`mcp.json` may live at the bundle root or at the historical `functions/mcp.json`.** If both exist, the root-level + file wins, mirroring how Coyote resolves the user-scope config location. - **`functions/bin/` and `functions/utils/` are not recognized** (compiled at runtime / not in scope for sharing). - **The whole `config.yaml`** (global Coyote config) is **not** shared (see [What is not shared](#what-is-not-shared)). @@ -364,8 +367,9 @@ Scripts written into `functions/tools/` are automatically marked executable base ## MCP configuration merge -`functions/mcp.json` is the exception to the per-file conflict model. Instead of replacing your local file outright, -Coyote **merges** the remote `mcp.json` into your existing one. +The bundle's `mcp.json` (at the repo root, or the historical `functions/mcp.json` location) is the exception to +the per-file conflict model. Instead of replacing your local file outright, Coyote **merges** the remote `mcp.json` +into your existing one. ### Merge behavior