{"_id":"@2434addy/mcp-forge","_rev":"5-91815ed1870523d9d360844584f9cf11","name":"@2434addy/mcp-forge","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@2434addy/mcp-forge","version":"0.1.0","keywords":["mcp","model-context-protocol","cli","tui","ink"],"license":"MIT","_id":"@2434addy/mcp-forge@0.1.0","maintainers":[{"name":"2434addy","email":"adityapandey20043@gmail.com"}],"bin":{"mcp-forge":"dist/index.js"},"dist":{"shasum":"8135d110feb59be3cd4c69eb9864e84561f19278","tarball":"https://registry.npmjs.org/@2434addy/mcp-forge/-/mcp-forge-0.1.0.tgz","fileCount":26,"integrity":"sha512-8sU9djUKHC0Sl8lrR0UxclYfV1VY9YBRdTe7Kx+LmNphXObFzf1o4nK7ByWl4+Aj9L7f0Psko5Fq1cKsQs3bUA==","signatures":[{"sig":"MEUCIHV7ZKk/WWeKt0fA9dVR+ufgxWHysG3lAUmI7MwTuyYvAiEAhaz/q3cs/GC/yhs8oqCn3C2AQ8NM3LySKqtDS7fBy9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50606},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"scripts":{"dev":"tsc --watch","test":"npm run build && node tests/e2e-clients.test.mjs","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"2434addy","email":"adityapandey20043@gmail.com"},"_npmVersion":"11.6.2","description":"Install, run and manage MCP servers from one cross-platform CLI","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ink":"^7.1.0","ora":"^9.4.1","chalk":"^5.6.2","react":"^19.2.0","commander":"^15.0.0","configstore":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@types/react":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-forge_0.1.0_1782974022421_0.15687033947874762","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@2434addy/mcp-forge","version":"0.1.1","keywords":["mcp","model-context-protocol","cli","tui","ink"],"license":"MIT","_id":"@2434addy/mcp-forge@0.1.1","maintainers":[{"name":"2434addy","email":"adityapandey20043@gmail.com"}],"bin":{"mcp-forge":"dist/index.js"},"dist":{"shasum":"d144bf7ffb0b463c50407946ec01af9558a0151b","tarball":"https://registry.npmjs.org/@2434addy/mcp-forge/-/mcp-forge-0.1.1.tgz","fileCount":26,"integrity":"sha512-ZtXCgQ5QBwCgv0YolG3DrGjRZP0A+qRdH1ll5jD3i4qoUolO28VyRscNu6sAwNZGh+A7QPZbuyudJbdvSKz/Kw==","signatures":[{"sig":"MEQCIGEY2BEFi9O4Nxuk4Rgk/faOFcDXYBHU6xHMAnwFz6LqAiBpsq3rO2kfFDyDgzm+BrnytPiI6sWlLF1HmEC0lVH02w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55764},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"gitHead":"98f943c69b210b36928e723cb7119e9b36464928","scripts":{"dev":"tsc --watch","test":"npm run build && node tests/e2e-clients.test.mjs","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"2434addy","email":"adityapandey20043@gmail.com"},"_npmVersion":"11.6.2","description":"Install, run and manage MCP servers from one cross-platform CLI","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ink":"^7.1.0","ora":"^9.4.1","chalk":"^5.6.2","react":"^19.2.0","commander":"^15.0.0","configstore":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@types/react":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-forge_0.1.1_1782976597461_0.6120939210641352","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@2434addy/mcp-forge","version":"0.2.0","keywords":["mcp","model-context-protocol","cli","tui","ink"],"license":"MIT","_id":"@2434addy/mcp-forge@0.2.0","maintainers":[{"name":"2434addy","email":"adityapandey20043@gmail.com"}],"bin":{"mcp-forge":"dist/index.js"},"dist":{"shasum":"eaac155ad6c33d2c4d5535b17d081a041c27d532","tarball":"https://registry.npmjs.org/@2434addy/mcp-forge/-/mcp-forge-0.2.0.tgz","fileCount":27,"integrity":"sha512-NmTz9b7Nx/PCc1T7Chqgaa1f5sZz//WtrXCyRrgC/XXb8fxacnaY3G2AftRrBIevGaTYfpcY8OvKST/ZrOVQNg==","signatures":[{"sig":"MEUCIF1Yfbrj0AMC/jJUptYTfBJNcfCu3tHrKTOLzmWa9cTaAiEA6/Mig4nteVC8QR8MExbHBm/jPKsPAwpg2YEsw4oodMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124015},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"gitHead":"850c3b62e3c90e08cdca8d1caeab432f4f51358f","scripts":{"dev":"tsc --watch","test":"npm run build && node tests/e2e-clients.test.mjs","build":"tsc && node -e \"require('node:fs').cpSync('src/lib/registry.json','dist/lib/registry.json')\"","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"2434addy","email":"adityapandey20043@gmail.com"},"_npmVersion":"11.6.2","description":"Install, run and manage MCP servers from one cross-platform CLI","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ink":"^7.1.0","ora":"^9.4.1","chalk":"^5.6.2","react":"^19.2.0","commander":"^15.0.0","configstore":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@types/react":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-forge_0.2.0_1783002663464_0.4337480736895698","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@2434addy/mcp-forge","version":"0.3.0","keywords":["mcp","model-context-protocol","cli","tui","ink"],"license":"MIT","_id":"@2434addy/mcp-forge@0.3.0","maintainers":[{"name":"2434addy","email":"adityapandey20043@gmail.com"}],"bin":{"mcp-forge":"dist/index.js"},"dist":{"shasum":"f2e12bf167a98c5c9686f2fda27874fad954aec8","tarball":"https://registry.npmjs.org/@2434addy/mcp-forge/-/mcp-forge-0.3.0.tgz","fileCount":27,"integrity":"sha512-zRKXAaOI65lWuxSHc/vg0NXOC9mVBRjRBFAw9anbB55cFPkdJhIG/TH0mjnvgepUqZd7DU619DADJogwD/WGPw==","signatures":[{"sig":"MEUCIQCxuV1eFtZMhk210CG9pWn0NTIFqAHL3+TzSbYnD332tAIgQE6X3sOfWpbDDumkiobu0hDDvqMlQGW8mmrt29Utj7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140352},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"gitHead":"d5e0461758df782f49d992b33f49de6a833e3ac1","scripts":{"dev":"tsc --watch","test":"npm run build && node tests/e2e-clients.test.mjs","build":"tsc && node -e \"require('node:fs').cpSync('src/lib/registry.json','dist/lib/registry.json')\"","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"2434addy","email":"adityapandey20043@gmail.com"},"_npmVersion":"11.6.2","description":"Install, run and manage MCP servers from one cross-platform CLI","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ink":"^7.1.0","ora":"^9.4.1","chalk":"^5.6.2","react":"^19.2.0","commander":"^15.0.0","configstore":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.0","@types/node":"^24.0.0","@types/react":"^19.2.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-forge_0.3.0_1783008406931_0.6763790197017749","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@2434addy/mcp-forge","version":"0.3.1","description":"Install, run and manage MCP servers from one cross-platform CLI","type":"module","license":"MIT","bin":{"mcp-forge":"dist/index.js"},"main":"dist/index.js","engines":{"node":">=22.12.0"},"scripts":{"build":"tsc && node -e \"require('node:fs').cpSync('src/lib/registry.json','dist/lib/registry.json')\"","dev":"tsc --watch","typecheck":"tsc --noEmit","start":"node dist/index.js","prepublishOnly":"npm run build","test":"npm run build && node tests/e2e-clients.test.mjs"},"keywords":["mcp","model-context-protocol","cli","tui","ink"],"dependencies":{"chalk":"^5.6.2","commander":"^15.0.0","configstore":"^8.0.0","ink":"^7.1.0","ora":"^9.4.1","react":"^19.2.0"},"devDependencies":{"@types/node":"^24.0.0","@types/react":"^19.2.0","typescript":"^5.9.0"},"gitHead":"d113af0d353955935fb163dc2834d8f07118deb3","_id":"@2434addy/mcp-forge@0.3.1","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-w8yg/+jmHGcK3yVRwUovdLLvCicj7eDecavisKcZM4WQmUNGb2hN9dDGGmg74Pr60/T/R/u9AMBshOpDdyO4kA==","shasum":"e2001f5f2e5933b15eba1a9a7e7fb3c12bf44fbb","tarball":"https://registry.npmjs.org/@2434addy/mcp-forge/-/mcp-forge-0.3.1.tgz","fileCount":27,"unpackedSize":141242,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF3C0/RRmiu/B2FWt3Z+KkPiY3Bsqp10fkYjUC5orx2CAiEA7UuL/DZ68GNvdMmjtmfO+NKqak5fULq7G/zNPBR679U="}]},"_npmUser":{"name":"2434addy","email":"adityapandey20043@gmail.com"},"directories":{},"maintainers":[{"name":"2434addy","email":"adityapandey20043@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-forge_0.3.1_1783011277399_0.8082301522604609"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-02T06:33:42.245Z","modified":"2026-07-02T16:54:37.688Z","0.1.0":"2026-07-02T06:33:42.562Z","0.1.1":"2026-07-02T07:16:37.592Z","0.2.0":"2026-07-02T14:31:03.595Z","0.3.0":"2026-07-02T16:06:47.113Z","0.3.1":"2026-07-02T16:54:37.575Z"},"license":"MIT","keywords":["mcp","model-context-protocol","cli","tui","ink"],"description":"Install, run and manage MCP servers from one cross-platform CLI","maintainers":[{"name":"2434addy","email":"adityapandey20043@gmail.com"}],"readme":"# mcp-forge\n\nInstall, run and manage [MCP](https://modelcontextprotocol.io) servers from one cross-platform CLI.\nWorks on Windows, macOS and Linux.\n\n## Requirements\n\n- Node.js >= 22.12\n\n## Install\n\n```sh\nnpm install\nnpm run build\nnpm link        # exposes the `mcp-forge` binary globally\n```\n\n## Commands\n\n| Command | Description |\n| --- | --- |\n| `mcp-forge install [server-name]` | Install an MCP server from the registry, or a custom source via `--npm` / `--github` |\n| `mcp-forge remove <server-name>` | Stop and remove an installed server |\n| `mcp-forge list` | List installed servers and the full registry catalog |\n| `mcp-forge update` | Refresh installed server definitions from the registry |\n| `mcp-forge status` | Show which installed servers are running |\n| `mcp-forge ui` | Launch the interactive TUI dashboard (Ink) |\n\n### Example\n\n```sh\nmcp-forge install filesystem                      # from the bundled registry\nmcp-forge install --npm mcp-server-kubernetes     # any npm package\nmcp-forge install --github acme/cool-mcp-server   # any GitHub repo (runs via npx github:)\nmcp-forge install mytool --npm some-mcp-package   # custom server name\nmcp-forge status\nmcp-forge ui        # ↑/↓ move · s start/stop · r refresh · q quit\n```\n\n## Configuration\n\nState is stored in your home directory — `~/.mcp-forge/config.json`\n(`C:\\Users\\<you>\\.mcp-forge\\config.json` on Windows). Paths are always built\nwith `path.join`, never hardcoded separators.\n\nThe catalog ships with the CLI: `src/lib/registry.json` (copied to `dist/lib`\nby the build) lists 267 servers across 34 categories, each entry pointing at an\nnpm package and/or a GitHub repo. The CLI works fully offline.\n\nA custom registry can be supplied via an environment variable pointing at JSON\nwith the same schema (a bare array or `{ \"servers\": [...] }`); the bundled\ncatalog is the fallback when the remote is unreachable:\n\n```sh\nMCP_FORGE_REGISTRY_URL=https://example.com/registry.json mcp-forge list\n```\n\n## Client auto-configuration\n\n`mcp-forge install` also registers the server with detected MCP clients:\n\n- **Claude Code** — `~/.claude.json`, entries written as\n  `{\"type\": \"stdio\", \"command\": \"npx\", \"args\": [...]}`. All other keys in the\n  file are preserved; only `mcpServers` is touched. Created if missing.\n- **Claude Desktop** — `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows),\n  `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS),\n  `~/.config/Claude/claude_desktop_config.json` (Linux). Created if missing.\n- **Cursor** — `~/.cursor/mcp.json`, configured only when `~/.cursor` exists.\n\nExisting config keys and other `mcpServers` entries are preserved. A config\nfile containing invalid JSON is reported and left untouched.\n\n## Windows notes\n\n`src/lib/windows.ts` centralizes the platform fixes, applied automatically by\ndetecting `process.platform === 'win32'`:\n\n- npm launchers (`npx`, `npm`, ...) are `.cmd` shims, so commands are spawned\n  through the shell (Node >= 18.20 refuses to spawn `.cmd` directly).\n- Stopping a server uses `taskkill /pid <pid> /t /f` to kill the whole process\n  tree; POSIX systems signal the detached process group instead.\n\n## Development\n\n```sh\nnpm run typecheck   # tsc --noEmit\nnpm run build       # compile to dist/\nnpm run dev         # tsc --watch\n```\n\n### Project structure\n\n```\nsrc/\n  commands/   one file per CLI command (install, remove, list, update, status, ui)\n  lib/\n    config.ts    config at ~/.mcp-forge/config.json (Configstore)\n    registry.ts    loads registry.json (bundled catalog + optional remote override)\n    registry.json  server catalog: 267 servers, 34 categories\n    runner.ts    start/stop server processes, PID tracking\n    windows.ts   Windows-specific spawning and kill fixes\n  index.ts    commander entry point\n```\n","readmeFilename":"README.md"}