code-bridge
An MCP server that bridges Claude Desktop with Claude Code, allowing users to delegate tasks to Claude Code directly from Claude Desktop conversations, supporting both synchronous and background execution with session reuse.
README
code-bridge
Server MCP che espone Claude Code a Claude Desktop, per lavorare su un progetto senza copiare e incollare prompt tra le due applicazioni.
Si ragiona su un problema nella chat di Claude Desktop, e da lì si delega l'esecuzione a Claude Code sul progetto reale. I lavori lunghi girano in background: si avviano, si continua a fare altro, si recupera il risultato quando è pronto.
⚠️ Prima di installarlo
Questo server permette a un modello di eseguire Claude Code sulla tua macchina, con accesso al filesystem. È una superficie di rischio reale e va capita prima di usarlo.
Cosa fa e cosa non fa:
- Gira solo in locale. Il trasporto è stdio: Claude Desktop lancia il server come processo figlio e ci parla via stdin/stdout. Nessuna porta in ascolto, nessun endpoint pubblico, niente che entri dal firewall.
- Non limita cosa Claude Code può fare. Il server passa il prompt e basta. I veri freni sono i permessi in
.claude/settings.jsondel progetto: se lì è consentita la scrittura, l'agente scrive. - Non c'è allowlist di directory. Qualunque percorso esistente passato come
cwdviene accettato. Se ti serve un vincolo più stretto, aggiungi il controllo inavviaClaudeedeseguiClaude. - Ogni chiamata a strumento passa dalla conferma di Claude Desktop. Il client chiede l'approvazione prima di invocare il server — a meno che non l'abbia disattivata.
La raccomandazione: configura permessi restrittivi nei progetti su cui lo usi, in particolare per le operazioni irreversibili (migration, cancellazioni, deploy). Un agente che deve chiedere prima di fare danni è più utile di uno veloce.
Requisiti
- Windows (usa
claude.cmdetaskkill; su Linux/macOS vanno adattati) - Node.js 18+ — testato su 22
- Claude Code installato e autenticato
- Claude Desktop
Installazione
git clone https://github.com/<utente>/code-bridge.git
cd code-bridge
npm install
Verifica che parta:
node server.js
Deve restare appeso in silenzio, senza stampare nulla: sta aspettando input su stdin. È il comportamento corretto. Esci con Ctrl+C.
Configurazione
Aggiungi il server a %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"code-bridge": {
"command": "C:\\percorso\\a\\node.exe",
"args": ["C:\\percorso\\a\\code-bridge\\server.js"]
}
}
}
Tre punti dove si sbaglia facilmente:
- Percorso assoluto a
node.exe, non la parolanode. Claude Desktop non eredita il PATH della shell. Se usi nvm, punta all'eseguibile della versione specifica (es.C:\nvm4w\v22.20.0\node.exe), non alla junctionnodejs\, che cambia a ogninvm use. - Backslash raddoppiati nel JSON, oppure slash normali (
C:/percorso/...), che Node accetta anche su Windows. - Percorso assoluto anche in
args: il processo viene avviato con una working directory indefinita, quindi./server.jsnon risolve.
Poi chiudi Claude Desktop completamente — anche dall'area di notifica — e riavvialo. La configurazione si legge solo all'avvio.
Se non compare nulla, il sospetto numero uno è il JSON: una virgola di troppo disattiva silenziosamente tutti i server, senza messaggi. Passalo da un validatore.
Strumenti
| Strumento | Uso |
|---|---|
claude_run |
Esegue un prompt e attende la risposta. Per compiti brevi. |
claude_start |
Avvia un lavoro in background, ritorna subito un job_id. |
claude_wait |
Attende un job avviato; se non è pronto entro hold_ms riporta "in corso". |
claude_kill |
Termina un job e tutti i suoi processi figli. |
Quale usare
Il discriminante è il tempo. Una domanda circoscritta — "leggi questi file e spiegami come funziona X" — sta bene in claude_run. Un lavoro vero — refactoring, implementazione, esplorazione di un'area sconosciuta — va con claude_start, poi claude_wait finché non è pronto.
claude_run ha un timeout (default 120s) perché una chiamata sincrona che non ritorna blocca la conversazione. claude_start non ne ha: il tetto sta sull'attesa, non sul lavoro.
Il session_id conta
Ogni risposta restituisce un session_id. Ripassarlo alla chiamata successiva fa riprendere la sessione con il contesto già caricato, invece di riesplorare il progetto da zero.
Non è un dettaglio: la prima invocazione su un progetto di medie dimensioni può costare qualche decina di centesimi. Riusare la sessione riduce il costo dei giri successivi di un ordine di grandezza.
Limiti noti
- Lo stato vive in memoria. Riavviando Claude Desktop mentre un lavoro gira, il processo continua ma il
job_iddiventa irraggiungibile. Non riavviare durante i lavori lunghi. - Solo Windows. Per portarlo altrove:
claudeal posto diclaude.cmd,shell: truenon più necessario, ekill(-pid)condetached: trueal posto ditaskkill. - La prima invocazione su un progetto è la più lenta. Sembra un blocco, non lo è.
- Nessun limite di spesa. Il server non impone tetti di costo o di turni. Se servono, si passano a Claude Code con
--max-turns.
Come funziona
Un server MCP stdio non è un servizio in ascolto: è un processo figlio. Claude Desktop lo lancia e ci scambia messaggi JSON-RPC via stdin/stdout.
Da qui discende la regola più importante per chi mette mano al codice: mai console.log(). Ogni byte su stdout finisce nel canale del protocollo e corrompe il messaggio. Per il debug si usa console.error(), che scrive su stderr.
L'asincronia è gestita con Promise.race tra la fine del lavoro e un timer: nessun polling, nessuna euristica sul "sembra fermo". I job vivono in una Map con pulizia opportunistica dei conclusi da oltre dieci minuti.
Il prompt viaggia su stdin, non come argomento della riga di comando: è testo lungo e pieno di caratteri speciali, e qualunque escaping per la shell sarebbe fragile.
Il codice è commentato in dettaglio, con il perché di ogni scelta non ovvia.
Licenza
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。