Installs into .claude/skills of the current project.
Are you the author of Mcp Configurator?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/holaboss-ai-mcp-configurator)
---
name: mcp-configurator
description: Add or update workspace MCP servers using holaOS mcp_registry syntax.
---
# MCP Configurator
Use this skill when the task is to add, remove, or update MCP access in a holaOS workspace.
## Core Rules
1. Edit `workspace.yaml` at the workspace root. Do not create `mcp.json`, `.cursor/mcp.json`, `claude_desktop_config.json`, or another generic MCP config unless the user explicitly asks for that format.
2. Workspace-level MCP lives under `mcp_registry`.
3. Tool ids in `mcp_registry.allowlist.tool_ids` must use strict `server.tool` syntax.
4. Omitting `mcp_registry.allowlist.tool_ids` or setting it to `[]` means all discovered tools from enabled configured servers stay available for that run.
5. Mixed mode is valid: some servers can be constrained by explicit allowlisted tool ids while other enabled servers stay discover-all.
6. This embedded skill is guidance only. When the user asks to add MCP to a workspace, update the target workspace config instead of writing new files under `runtime/harnesses/src/embedded-skills/`.
## Remote Server Shape
Use this shape for remote HTTP MCP servers:
```yaml
mcp_registry:
servers:
context7:
type: remote
url: https://mcp.context7.com/mcp
enabled: true
timeout_ms: 30000
headers:
CONTEXT7_API_KEY: "{env:CONTEXT7_API_KEY}"
allowlist:
tool_ids:
- context7.lookup
- context7.search
```
Header values must be either:
- a literal secret value
- or `{env:ENV_VAR_NAME}`
This is invalid:
```yaml
headers:
CONTEXT7_API_KEY: "{env:ctx7sk-live-abc123}"
```
That is a placeholder-shaped literal secret, not an environment-variable reference.
## Local Server Shape
Use this shape for local stdio MCP servers:
```yaml
mcp_registry:
servers:
my_server:
type: local
command:
- npx
- -y
- "@acme/my-mcp"
enabled: true
timeout_ms: 30000
environment:
MY_SERVER_API_KEY: "{env:MY_SERVER_API_KEY}"
```
Local MCP commands must be a non-empty list of command tokens.
## Workspace Tool Catalog Shape
Use `mcp_registry.catalog` for workspace-local tools implemented inside the repo:
```yaml
mcp_registry:
servers:
workspace:
type: local
catalog:
workspace.echo:
module_path: tools.echo
symbol: echo_tool
allowlist:
tool_ids:
- workspace.echo
```
Notes:
- `mcp_registry.servers.workspace` must stay `local`.
- The runtime owns the actual workspace MCP host command, so do not try to wire a custom `command` for `workspace`.
- Each `workspace.<tool>` allowlist entry must have a matching `mcp_registry.catalog` entry.
## App-Managed MCP
If the MCP tools come from a workspace app's `app.runtime.yaml` `mcp.tools`, prefer the app-managed flow:
- keep the app manifest correct
- let the runtime reconcile `mcp_registry.servers.<app_id>` and `mcp_registry.allowlist.tool_ids`
- do not hand-maintain those generated entries unless the task explicitly requires it
## Verification
1. Re-open `workspace.yaml` and confirm the final shape is `mcp_registry`, not a generic MCP config format.
2. Confirm every allowlisted tool id is `server.tool`.
3. Confirm every referenced server id exists under `mcp_registry.servers`.
4. Confirm placeholder syntax is `{env:ENV_VAR_NAME}` when environment indirection is intended.
5. Remember that MCP config changes take effect on the next run, not retroactively inside the already running harness session.