{"_id":"@adsyncs/mcp-install","_rev":"3-341e324a72c357a00c33558ff2ea95c8","name":"@adsyncs/mcp-install","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@adsyncs/mcp-install","version":"0.1.0","keywords":["mcp","claude-desktop","codex","antigravity","adsyncs"],"license":"MIT","_id":"@adsyncs/mcp-install@0.1.0","maintainers":[{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"}],"bin":{"adsyncs-mcp-install":"dist/cli.js"},"dist":{"shasum":"55ae55e352354693faead618e2df331e1d3abd36","tarball":"https://registry.npmjs.org/@adsyncs/mcp-install/-/mcp-install-0.1.0.tgz","fileCount":3,"integrity":"sha512-o8INetzOTC4y1SCrvwp+rGiyiHE9gvKao3x5+0T1ut5v9D92sLCRzs1wZEVIH1cdlgRhI0kczD49YJc8M/+M5Q==","signatures":[{"sig":"MEQCIBVVMt4+/DWUUsQRkb+CVbmiINErEv4KOWsGnfxeieF3AiAJkNBl6VAwNMgVB+yF+udMSJOeU+ChKxMFCBbPAwsr9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14889},"main":"./dist/cli.js","type":"module","engines":{"node":">=18"},"gitHead":"d81e617fc455c94dbd80725d20660dc956718e96","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"},"_npmVersion":"11.8.0","description":"Safely install the AdsSyncs remote MCP server into Claude Desktop, Codex, or Antigravity config files.","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-install_0.1.0_1778175486289_0.9597087596500613","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adsyncs/mcp-install","version":"0.1.1","keywords":["mcp","claude-desktop","codex","antigravity","adsyncs"],"license":"MIT","_id":"@adsyncs/mcp-install@0.1.1","maintainers":[{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"}],"homepage":"https://github.com/PhongNguyen23/ads-mcp/tree/main/packages/mcp-install#readme","bugs":{"url":"https://github.com/PhongNguyen23/ads-mcp/issues"},"bin":{"adsyncs-mcp-install":"dist/cli.js"},"dist":{"shasum":"e924794ce56aea6d4a4088a94c869367ffb08b2d","tarball":"https://registry.npmjs.org/@adsyncs/mcp-install/-/mcp-install-0.1.1.tgz","fileCount":3,"integrity":"sha512-xerDAhvsZsl0aDkzNMzxuxS9OsU2PDxRmcKCwNhZleTrwdYvXwdLHFLzsNJWdGIfZ9ZqEHe8wow/RX2Pl+ciTQ==","signatures":[{"sig":"MEUCIQDkq54skJgOxiKK3fxfMlYGaNHXjSeo14Kb9Bm5InIigAIgDI17q/F4hPW1MC+ZCVHE+irH3qrHxU3RxDfYi4pWzYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15208},"main":"./dist/cli.js","type":"module","engines":{"node":">=18"},"gitHead":"1f3b256c1223fd29b7683b86ef0e813d34ad1145","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"},"repository":{"url":"git+https://github.com/PhongNguyen23/ads-mcp.git","type":"git","directory":"packages/mcp-install"},"_npmVersion":"11.8.0","description":"Safely install the AdsSyncs remote MCP server into Claude Desktop, Codex, or Antigravity config files.","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-install_0.1.1_1778175790834_0.044236553666415546","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adsyncs/mcp-install","version":"0.2.0","description":"Safely install the Adsyncs remote MCP server into Claude Desktop, Codex, or Antigravity config files.","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/PhongNguyen23/ads-mcp.git","directory":"packages/mcp-install"},"homepage":"https://github.com/PhongNguyen23/ads-mcp/tree/main/packages/mcp-install#readme","bugs":{"url":"https://github.com/PhongNguyen23/ads-mcp/issues"},"engines":{"node":">=18"},"bin":{"adsyncs-mcp-install":"dist/cli.js"},"main":"./dist/cli.js","keywords":["mcp","claude-desktop","codex","antigravity","adsyncs"],"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"vitest run"},"dependencies":{"update-notifier":"^7.3.1"},"devDependencies":{"@types/update-notifier":"^6.0.8","tsup":"^8.0.0","typescript":"^5.4.0","vitest":"^1.0.0"},"gitHead":"1ae574b20885a9f5c86141063957ec0e862a74e1","_id":"@adsyncs/mcp-install@0.2.0","_nodeVersion":"22.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-gxX4CUgJ9lr3KNH1vNQwMgT/jWX8pkTVFefYxlqfcuQci2ds8QSs07l0ajPqweQNqo9LJMQCULF8dv333T+5VA==","shasum":"6d1965b3cc58e77106cf9a130d0aec834eb63e7b","tarball":"https://registry.npmjs.org/@adsyncs/mcp-install/-/mcp-install-0.2.0.tgz","fileCount":3,"unpackedSize":17410,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC6SAWH0hBjN5TK+8yADNj/4LIgI3twhr/ZTycQc0AURQIgFjsfaUZczYJrfUsQID8+/FgmSHXlF83htc7xWNfB+6k="}]},"_npmUser":{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"},"directories":{},"maintainers":[{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-install_0.2.0_1779115005250_0.21920344960518157"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T17:38:06.190Z","modified":"2026-05-18T14:36:45.579Z","0.1.0":"2026-05-07T17:38:06.470Z","0.1.1":"2026-05-07T17:43:11.025Z","0.2.0":"2026-05-18T14:36:45.416Z"},"bugs":{"url":"https://github.com/PhongNguyen23/ads-mcp/issues"},"license":"MIT","homepage":"https://github.com/PhongNguyen23/ads-mcp/tree/main/packages/mcp-install#readme","keywords":["mcp","claude-desktop","codex","antigravity","adsyncs"],"repository":{"type":"git","url":"git+https://github.com/PhongNguyen23/ads-mcp.git","directory":"packages/mcp-install"},"description":"Safely install the Adsyncs remote MCP server into Claude Desktop, Codex, or Antigravity config files.","maintainers":[{"name":"nguyenduongphong2312","email":"nguyenduongphongg@gmail.com"}],"readme":"# @adsyncs/mcp-install\n\nOne-shot installer that wires the Adsyncs remote MCP server into your AI client's local config file. Designed for users whose client can't add a custom remote MCP connector through the web UI (e.g. Claude.ai workspaces locked down by company policy).\n\n## Usage\n\n```bash\nnpx -y @adsyncs/mcp-install@latest claude        # Claude Desktop\nnpx -y @adsyncs/mcp-install@latest codex         # Codex CLI (delegates to `codex mcp add`)\nnpx -y @adsyncs/mcp-install@latest antigravity   # Antigravity IDE\n```\n\nThen quit and reopen the client (Antigravity reloads automatically).\n\n## Options\n\n| Flag | Description |\n| --- | --- |\n| `--url <url>` | Remote MCP URL (default: `https://mcp.adsyncs.net/mcp`) |\n| `--name <name>` | Entry key in `mcpServers` (default: `adsyncs`) |\n| `--force`, `-f` | Replace an existing entry with the same name |\n| `--dry-run` | Show what would change, write nothing |\n| `--help`, `-h` | Show usage |\n| `--version`, `-v` | Show version |\n\n## Safety guarantees\n\n- **Never overwrites existing data.** The current JSON config is parsed in-memory; other `mcpServers` entries and unrelated top-level keys are preserved verbatim.\n- **Refuses to touch corrupted files.** If the existing config is invalid JSON or its top-level isn't an object, the installer aborts and prints the file path so you can fix it manually.\n- **Backs up before writing.** A timestamped copy is saved as `<config>.bak.<timestamp>` so you can roll back.\n- **Writes atomically.** The new content goes to a temp file (`<config>.tmp.<pid>.<timestamp>`), is `fsync`ed, then renamed into place — a crash mid-write can't leave a half-written config.\n- **Verifies after write.** The freshly written file is re-parsed; a mismatch fails loud.\n- **Refuses to clobber a different config under the same name.** If the same entry name already exists with a different config, the installer exits and asks you to either pass `--force` (replace) or `--name` (install under a different key).\n- **Follows symlinks correctly.** If your config is symlinked into a dotfiles repo, the real file is updated and the symlink is left intact.\n- **No network calls of its own.** The package downloads via npx; the installer itself only reads/writes local files (or, for `codex`, spawns the `codex` binary already on your PATH).\n\n## What it actually writes\n\nClaude Desktop and Antigravity end up with this entry inside their `mcpServers`:\n\n```json\n{\n  \"command\": \"npx\",\n  \"args\": [\"-y\", \"mcp-remote\", \"https://mcp.adsyncs.net/mcp\"]\n}\n```\n\n`mcp-remote` is the official Anthropic helper that runs locally and walks you through the Adsyncs OAuth flow in your browser the first time it starts. No static tokens are written to disk.\n\nFor Codex, the installer simply runs:\n\n```bash\ncodex mcp add adsyncs -- npx -y mcp-remote https://mcp.adsyncs.net/mcp\n```\n\n— the official Codex CLI command. We don't edit `~/.codex/config.toml` directly because TOML round-tripping with comments and formatting is brittle.\n\n## Rolling back\n\nRestore from the printed `*.bak.*` file:\n\n```bash\nmv ~/Library/Application\\ Support/Claude/claude_desktop_config.json.bak.<timestamp> \\\n   ~/Library/Application\\ Support/Claude/claude_desktop_config.json\n```\n\nOr remove just the entry:\n\n```bash\nnpx -y @adsyncs/mcp-install@latest --help    # see options for manual edits\n```\n\n(Manually delete the `adsyncs` key from `mcpServers` and restart the client.)\n","readmeFilename":"README.md"}