Tutorial | 集成 Claude Code 到 IDE¶
难度:⭐⭐ 时间:~2h 前置:了解 Bridge 协议 产物:IDE ↔ Claude Code 双向集成
1. IDE 集成是什么¶
IDE 集成 = Claude Code 与 IDE 双向通信 - IDE 选中文本 → Claude Code 接收 - Claude Code 输出 → IDE 显示 - 命令面板 / 快捷键 - 文件 diff 预览
2 种集成方式: - MCP server —— 通用 - Bridge 协议 —— Claude Code 特有
2. 3 种 IDE 集成模式¶
2.1 通用 MCP¶
MCP —— 任何 IDE。
2.2 Bridge 协议¶
Bridge —— Claude Code IDE 模式。
2.3 嵌入式¶
嵌入 —— VSCode extension。
3. Bridge 模式详解¶
3.1 启动¶
server 模式。
3.2 协议¶
JSON-RPC over WebSocket(推测): - IDE → Claude Code: file_selected / selection_changed / file_saved - Claude Code → IDE: open_file / show_diff / display_message
双向。
3.3 IDE 集成例子¶
VSCode: - 装 extension - 启动 Claude Code in bridge - Extension 自动连
JetBrains: - 装 plugin - 配置 Claude Code 路径 - 配 bridge URL
3 IDE。
4. MCP IDE Server 实战¶
4.1 server 框架¶
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
const server = new Server(
{ name: 'ide-mcp', version: '1.0.0' },
{ capabilities: { tools: {} } }
)
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: 'read_file',
description: 'Read the current file in IDE',
inputSchema: {
type: 'object',
properties: { path: { type: 'string' } },
required: ['path'],
},
},
{
name: 'insert_text',
description: 'Insert text at cursor',
inputSchema: {
type: 'object',
properties: {
text: { type: 'string' },
position: { type: 'number' },
},
required: ['text', 'position'],
},
},
{
name: 'get_diagnostics',
description: 'Get diagnostics (errors/warnings) for current file',
inputSchema: { type: 'object', properties: {} },
},
],
}))
server.setRequestHandler(CallToolRequestSchema, async (request) => {
// IDE RPC
})
3 工具。
4.2 接入 Claude Code¶
添加 MCP。
5. 实战:VSCode 集成¶
5.1 安装¶
扩展。
5.2 配置¶
配置。
5.3 使用¶
# 1. 在 VSCode 中打开文件
# 2. 选中文本
# 3. Cmd+Shift+P → "Claude Code: Add Selection"
# 4. 选中文本会作为 @ 提及传给 Claude Code
4 步。
6. 实战:JetBrains 集成¶
6.1 安装¶
plugin。
6.2 配置¶
配置。
6.3 使用¶
3 步。
7. 8 个 IDE 集成特性¶
7.1 选中 → @ 提及¶
自动。
7.2 文件 diff 预览¶
diff。
7.3 错误高亮¶
高亮。
7.4 跳转定义¶
跳转。
7.5 文档悬浮¶
hover。
7.6 自动补全¶
补全。
7.7 终端集成¶
终端。
7.8 调试器集成¶
debug。
8. Bridge 协议详解¶
8.1 消息类型¶
// IDE → Claude Code
type IDEToCC =
| { type: 'selection_changed', file: string, line: number, text: string }
| { type: 'file_saved', file: string }
| { type: 'file_opened', file: string }
| { type: 'diagnostics', file: string, errors: Diagnostic[] }
// Claude Code → IDE
type CCToIDE =
| { type: 'open_file', file: string }
| { type: 'show_diff', file: string, before: string, after: string }
| { type: 'display_message', severity: 'info' | 'warn' | 'error', text: string }
| { type: 'apply_edit', file: string, range: Range, text: string }
8 类型。
8.2 WebSocket / JSON-RPC¶
// 推测
const ws = new WebSocket('ws://localhost:port')
ws.on('message', (data) => {
const msg: IDEToCC | CCToIDE = JSON.parse(data)
handle(msg)
})
WS。
8.3 安全¶
- localhost only
- auth token
- TLS(推测)
3 措施。
9. 5 个配置选项¶
9.1 autoConnect¶
自动连。
9.2 autoSend¶
自动发送。
9.3 IDE 工具白名单¶
白名单。
9.4 桥接端口¶
端口。
9.5 认证 token¶
token。
10. 4 步调试 IDE 集成¶
10.1 看连接¶
状态。
10.2 重启¶
重连。
10.3 debug¶
debug。
10.4 检查防火墙¶
防火墙。
11. 安全考虑¶
11.1 不在 IDE 中存 secrets¶
secrets 隔离。
11.2 工具白名单¶
白名单。
11.3 不自动执行¶
手动确认。
12. 完整示例:VSCode Bridge 配置¶
// settings.json
{
"ide": {
"autoConnect": true,
"selection": {
"autoSend": true,
"prefix": "@"
},
"allowedTools": [
"mcp__ide__executeCode",
"mcp__ide__getDiagnostics"
]
}
}
完整。
13. 下一步¶
- 装 VSCode extension
- 配置 bridge
- 测试 @ 提及