Claude Merkezi MCP Server
by CeyDrew
README.md
# Claude Merkezi
**A toolkit for running [Claude Code](https://claude.com/claude-code) across multiple machines and projects — without ever pasting a server password into the chat.**
[Türkçe README](README.tr.md) · Node.js ≥ 18.17 · Windows & macOS · MIT
Claude Merkezi ("Claude Hub" in Turkish) has three parts:
| Part | What it does |
|---|---|
| **Launcher** | Pick a project folder from a menu and start Claude Code there. Sessions are named `MACHINE - project`. |
| **Vault + MCP server** | Store FTP / FTPS / SFTP / SSH credentials once, encrypted. Claude deploys files and runs commands through MCP tools and never sees the passwords. |
| **Hub dashboard** | A web panel that shows every Claude Code session on the local network live: what it is doing, whether it is waiting for approval, its todo list and last reply. Includes a task board per project. |
> The user interface and messages are in Turkish.
## Highlights
- **MCP server written from scratch** — JSON-RPC 2.0 over stdio, no SDK. 10 tools:
| Tool | Purpose |
|---|---|
| `sunucular` | List the servers linked to the current project (no secrets) |
| `listele`, `indir` | List a remote folder, download a file |
| `yukle` | Upload to a test server. Only changed files are sent; `onizleme` shows the plan first |
| `ssh_komut` | Run a command on a test server |
| `canli_yukle`, `canli_ssh_komut` | Same for production — **requires user approval on every call** |
| `isler`, `is_ekle`, `is_guncelle` | Read and update the hub's task board |
- **Encrypted vault** — AES-256-GCM. The key is protected by Windows DPAPI or the macOS Keychain. Password-protected backups use scrypt key derivation.
- **SSH host key pinning** — the server's identity is stored on first connect; a changed key is rejected.
- **Live session tracking** — 12 Claude Code hooks (`SessionStart`, `PreToolUse`, `PostToolUse`, `Notification`, `Stop`, …) report to the hub. Prompts and commands are truncated and password-like values are masked before they leave the machine; file contents and tool outputs are never sent.
- **Zero-config networking** — the hub is discovered over UDP broadcast; machines pair with a 6-digit code; the dashboard is password protected.
- **One-step install / uninstall** — registers the MCP server, adds hooks to `~/.claude/settings.json` (with a backup), sets up auto-start and a desktop shortcut. Re-running is safe.
- **Tests** — unit, integration and vault tests with the built-in `node:test` runner.
- **Two runtime dependencies** only: [`ssh2`](https://github.com/mscdex/ssh2) and [`basic-ftp`](https://github.com/patrickjuchli/basic-ftp).
## Architecture
```
Machine A Machine B (hub)
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Claude Code │ │ Hub server (Node HTTP) │
│ ├─ hooks ─────────────────────── HTTP ──▶ sessions · task board │
│ └─ MCP server (stdio) │ │ web dashboard :7380 │
│ └─ vault (AES-256-GCM) │ └──────────────────────────────┘
│ └─ SSH / SFTP / FTP ──▶ your servers
└──────────────────────────────┘
```
## Getting started
```bash
git clone https://github.com/CeyDrew/claude-merkezi.git
cd claude-merkezi
node kur.js # interactive install (or Kur.bat / Kur.command)
```
1. On the first machine, answer **E** (yes) to "make this machine the hub", then open `http://127.0.0.1:7380` and set a dashboard password.
2. On other machines, choose **Makineler > Yeni bilgisayar ekle** in the dashboard to get a 6-digit code, copy the folder over and run the installer. It finds the hub on the network automatically.
3. Start Claude with the **Claude Başlatıcı** shortcut (or `node baslatici.js`).
Now you can simply tell Claude *"deploy this project to the test server"* and it will use the vault tools.
Uninstall hooks, MCP registration and auto-start with `node kur.js --kaldir` (your data is kept).
## Security model
- The vault lives in `~/.claude-merkezi/kasa.json`, outside the app folder.
- Claude runs as the same OS user, so this is **not** a hard security boundary. The goal is to keep credentials out of the conversation, logs and Claude's normal workflow. Use least-privilege server accounts.
- `.git`, `node_modules`, `.claude` and `.env*` files are never uploaded.
- The hub uses plain HTTP on the local network. Do not use it on untrusted networks.
## Development
```bash
npm install
npm test
```
## License
[MIT](LICENSE) © 2026 Abdurrahman Bilici
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues