docs: Added documentation on the updated mcp.json location for bundles

2026-08-26 15:54:50 -06:00
parent fcab6ac583
commit b4f3a32343
+12 -8
@@ -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 <source> --filter agents
@@ -165,10 +165,11 @@ Coyote recognizes these top-level directories. Anything outside them is ignored.
│ └── SKILL.md # YAML frontmatter + body
├── macros/
│ └── <macro-name>.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