项目简介
'vscode-internal-command-mcp-server' 是一个创新的VSCode扩展,它将你的Visual Studio Code环境转变为一个Model Context Protocol (MCP) 服务器。这意味着你可以通过LLM(大型语言模型)客户端,以标准化的方式远程与VSCode进行交互。它允许LLM调用VSCode的内部命令,查询当前工作区的信息,从而为LLM提供更深入的开发环境上下文和自动化能力。
主要功能点
- 远程执行VSCode命令:通过MCP协议,LLM可以调用VSCode的任何内部命令,实现远程自动化操作,例如保存文件、打开终端、执行代码操作等。
- 获取工作区上下文:LLM可以查询当前VSCode工作区的详细信息,包括项目名称、打开的文件夹、活动编辑器文件等,帮助其理解代码环境。
- HTTP Streaming支持:服务器通过HTTP Streaming (Server-Sent Events) 协议进行通信,确保LLM客户端与VSCode之间的高效实时交互。
- 异步命令执行:支持将耗时命令提交到后台异步执行,避免阻塞,并提供任务状态管理。
- 安全控制:支持配置命令白名单,增强安全性,只允许执行经过授权的VSCode命令。
- 健康检查:内置健康检查端点,方便监控服务器状态。
- MCP协议合规:完全遵循Model Context Protocol标准,易于与各种LLM客户端集成。
安装步骤
- 下载扩展:访问项目的 下载页面,下载最新版本的'.zip'文件。
- 解压文件:将下载的'.zip'文件解压到您选择的文件夹中。
- 运行应用程序:打开解压后的文件夹,并双击其中的可执行文件以启动VSCode扩展。
- VSCode设置:在VSCode中,打开设置('Ctrl+,' 或 'Cmd+,'),搜索 "vscode-internal-command-mcp-server",根据需要调整以下配置:
- Port: 服务器监听的端口号,默认为'8080'。
- Host: 服务器监听的主机地址,默认为'localhost'。
- Command Whitelist: 允许远程执行的VSCode命令列表。如果为空,则允许所有命令。
- AutoStart: 是否在VSCode启动时自动启动MCP服务器,默认为'true'。
- Async Execution: 是否启用异步命令执行(命令立即返回,在后台执行),默认为'true'。
- Execution Delay: 异步命令执行前的延迟(毫秒),默认为'0'。
服务器配置(供MCP客户端使用)
MCP客户端需要以下配置信息来连接到此服务器:
{ "serverName": "VSCodeCommandServer", "transport": { "type": "httpStream", "url": "http://localhost:8080/mcp" }, "description": "连接到运行在VSCode中的MCP服务器,用于远程执行VSCode命令和查询工作区信息。" }
参数说明:
- 'serverName': 服务器的标识名称,可自定义。
- 'transport.type': 传输协议类型,固定为 'httpStream'。
- 'transport.url': MCP服务器的完整URL,通常为 'http://[主机地址]:[端口号]/mcp'。请根据您在VSCode中配置的实际主机和端口进行修改,例如:'http://127.0.0.1:8080/mcp'。
基本使用方法
- 启动服务器:
- 安装并配置完成后,服务器通常会自动启动。
- 您也可以通过VSCode的命令面板('Ctrl+Shift+P' 或 'Cmd+Shift+P'),搜索并执行 'vscode-internal-command-mcp-server.startServer' 来手动启动。
- 查看服务器状态:
- 在VSCode命令面板中执行 'vscode-internal-command-mcp-server.showStatus',将打开一个Webview面板,显示详细的服务器运行状态、配置和可用工具列表。
- 连接LLM客户端:
- 使用支持Model Context Protocol的LLM客户端,根据上述“服务器配置”部分提供的信息连接到VSCode MCP服务器。
- 调用工具:
- LLM客户端可以通过标准MCP协议调用服务器上注册的工具,例如:
- 'execute_vscode_command':执行一个VSCode命令,如 'workbench.action.files.save'。
- 'list_vscode_commands':获取当前可用的VSCode命令列表。
- 'get_workspace_info':获取当前VSCode工作区的信息。
- LLM客户端可以通过标准MCP协议调用服务器上注册的工具,例如:
- 测试MCP工具(VSCode内部):
- 在VSCode命令面板中执行 'vscode-internal-command-mcp-server.testMcpTools',可以从VSCode内部选择并测试这些工具的功能。
信息
分类
开发者工具