MCP Installer
Overview
Install MCP server configurations across multiple clients and OSes with a CLI-first workflow and a safe manual fallback.
Workflow
1) Collect inputs
- Identify the target client ID and OS; use
references/clients.md for the supported list and known paths.
- Gather MCP server definitions (name -> config object) and decide whether to override existing entries.
- If any provided MCP config includes secrets (for example fields like
key, token, apiKey, accessToken, secret, password, or Authorization, or env vars like *_KEY, *_TOKEN), pause the install and ask the user to obtain/provide those values first. Only proceed once the user confirms they have the required credentials (or requests installing a placeholder and will fill it in later).
2) Prefer @smithery/cli (when supported)
- Run
npx @smithery/cli --help and npx @smithery/cli install --help to confirm the exact syntax.
- Use the CLI install flow for the client ID; if the CLI rejects the client or fails, fall back to manual edits.
3) Manual install (JSON config fallback)
- Locate the config file path (see
references/clients.md). If unknown, search standard config dirs for files like mcp.json, mcp_config.json, claude_desktop_config.json, or cline_mcp_settings.json.
- Read existing JSON and ensure a top-level
mcpServers object exists.
- Merge servers: add new names; replace existing when override is true; preserve all other keys.
- Write JSON with 2-space indentation.
Example shape:
{
"mcpServers": {
"example-server": {
"command": "npx",
"args": ["-y", "example-mcp@latest"],
"env": {}
}
}
}
4) Verify and troubleshoot
- Restart the client and confirm the MCP servers appear.
- If writes fail on macOS, prompt for Full Disk Access and ensure the client app is closed before writing.
- For CLI-only clients (for example
claude-code), use the client CLI help to locate its MCP install/config command.
- If Trae/Trae-CN installs fail due to permissions or other errors, generate a deep link and return it as a fallback.
5) Trae deep-link fallback
If trae or trae-cn cannot write to disk, generate a schema link for the user to open in Trae:
trae: trae://trae.ai-ide/mcp-import?type=${TYPE}&name=${NAME}&config=${BASE64_ENCODED_CONFIG}
trae-cn: trae-cn://trae.ai-ide/mcp-import?type=${TYPE}&name=${NAME}&config=${BASE64_ENCODED_CONFIG}
Rules:
TYPE is the MCP transport type (for example streamable-http).
NAME is the server name shown in Trae.
config is the base64-encoded JSON config object for that server (no whitespace, UTF-8 bytes).
References
- Use
references/clients.md for client IDs, aliases, and known config paths.
Source: wangpenghan/TrackingPage — distributed by TomeVault.
1---2name: mcp-installer3description: Install and configure MCP servers across desktop and CLI clients (Claude, Cline, Windsurf, Cursor, VSCode, Gemini CLI, Codex, Trae, Antigravity, etc.) on macOS/Windows/Linux, preferring @smithery/cli when supported and otherwise performing manual JSON config updates and path discovery. Use when this capability is needed.4---56# MCP Installer78## Overview910Install MCP server configurations across multiple clients and OSes with a CLI-first workflow and a safe manual fallback.1112## Workflow1314### 1) Collect inputs1516- Identify the target client ID and OS; use `references/clients.md` for the supported list and known paths.17- Gather MCP server definitions (name -> config object) and decide whether to override existing entries.18- If any provided MCP config includes secrets (for example fields like `key`, `token`, `apiKey`, `accessToken`, `secret`, `password`, or `Authorization`, or env vars like `*_KEY`, `*_TOKEN`), pause the install and ask the user to obtain/provide those values first. Only proceed once the user confirms they have the required credentials (or requests installing a placeholder and will fill it in later).1920### 2) Prefer @smithery/cli (when supported)2122- Run `npx @smithery/cli --help` and `npx @smithery/cli install --help` to confirm the exact syntax.23- Use the CLI install flow for the client ID; if the CLI rejects the client or fails, fall back to manual edits.2425### 3) Manual install (JSON config fallback)2627- Locate the config file path (see `references/clients.md`). If unknown, search standard config dirs for files like `mcp.json`, `mcp_config.json`, `claude_desktop_config.json`, or `cline_mcp_settings.json`.28- Read existing JSON and ensure a top-level `mcpServers` object exists.29- Merge servers: add new names; replace existing when override is true; preserve all other keys.30- Write JSON with 2-space indentation.3132Example shape:3334```json35{36 "mcpServers": {37 "example-server": {38 "command": "npx",39 "args": ["-y", "example-mcp@latest"],40 "env": {}41 }42 }43}44```4546### 4) Verify and troubleshoot4748- Restart the client and confirm the MCP servers appear.49- If writes fail on macOS, prompt for Full Disk Access and ensure the client app is closed before writing.50- For CLI-only clients (for example `claude-code`), use the client CLI help to locate its MCP install/config command.51- If Trae/Trae-CN installs fail due to permissions or other errors, generate a deep link and return it as a fallback.5253### 5) Trae deep-link fallback5455If `trae` or `trae-cn` cannot write to disk, generate a schema link for the user to open in Trae:5657- `trae`: `trae://trae.ai-ide/mcp-import?type=${TYPE}&name=${NAME}&config=${BASE64_ENCODED_CONFIG}`58- `trae-cn`: `trae-cn://trae.ai-ide/mcp-import?type=${TYPE}&name=${NAME}&config=${BASE64_ENCODED_CONFIG}`5960Rules:61- `TYPE` is the MCP transport type (for example `streamable-http`).62- `NAME` is the server name shown in Trae.63- `config` is the base64-encoded JSON config object for that server (no whitespace, UTF-8 bytes).6465## References6667- Use `references/clients.md` for client IDs, aliases, and known config paths.6869---70> Source: [wangpenghan/TrackingPage](https://github.com/wangpenghan/TrackingPage) — distributed by [TomeVault](https://tomevault.io).71<!-- tomevault:4.0:skill_md:2026-06-16 -->