使用说明
🔥 点火MCP
声明性地构建MCP工具并将其提交到您的存储库中。
在中定义工具 tasks.json 和 launch.json你的AI助手可以访问构建、测试、部署、调试会话——任何你可以打包在脚本中的东西。版本受控,与您的团队共享,不需要MCP服务器代码。
适用于: 光标、VS代码+复制副本、克劳德代码、克劳德桌面和任何兼容MCP的客户端。
💡 为什么不使用终端命令?
AI代理通常运行 npm run build 在一个壳。但VS Code任务提供了更多:
| 端子 | 点火MCP |
|---|---|
| 原始输出文本 | 错误通过问题匹配器填充“问题”面板 |
| 一次一个命令 | dependsOn 链条自动运行 |
| AI必须知道所有参数 | 输入变量提示用户或接受AI值 |
| 无调试支持 | 带有断点和变量检查的完整调试会话 |
你的 tasks.json 已经定义了项目的构建和运行方式。点火MCP将其暴露给您的AI。
🚀 快速开始
- 定义任务 在
.vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Deploy Staging",
"type": "shell",
"command": "python scripts/deploy.py --env ${input:environment}",
"detail": "Deploy to staging or production with zero-downtime rollout"
}
],
"inputs": [
{
"id": "environment",
"type": "pickString",
"options": ["staging", "production"]
}
]
}
-
扩展自动配置 您的MCP客户端启动时。
-
问你的AI:
- “部署到暂存”
- “运行构建并显示任何错误”
- “开始调试并在第42行设置断点”
- “什么是价值
user.permissions?"
该任务成为一个名为的MCP工具 task_deploy_staging。AI可以提供环境输入,也可以省略它来提示您。
🔌 MCP工具
每个VS Code任务和启动配置都作为自己的工具公开,还有用于管理的实用工具。
⚡ 动态任务工具
在工作区中定义的每个任务都将成为一个名为 task_<sanitized_name>例如:
- 任务“构建”->工具
task_build - 任务“npm:测试”->工具
task_npm_test
基于任务类型的行为:
- 后台任务 (
isBackground: true):立即开始并返回executionId。稍后检查进度get_task_status或get_task_output. - 前沿任务 (
isBackground: false):等待完成并返回带有退出代码和输出的结果。
任务输入 自动暴露为 可选的 刀具参数:
- 如果AI提供 所有输入 (或者它们有默认值),任务立即使用这些值运行
- 如果 缺少任何输入,VS Code提示用户输入缺失的值
- 这允许人工智能提供它所知道的,并在剩下的时间里尊重用户
🐛 动态启动工具
在工作区中定义的每个启动配置都将成为一个名为 launch_<sanitized_name>例如:
- 配置“启动程序”->工具
launch_launch_program - 配置“附加到Chrome”->工具
launch_attach_to_chrome
所有启动工具都是后台的 (调试会话长时间运行):
- 立即返回
sessionId - 使用
get_debug_status检查活动会话 - 使用
stop_debug_session停止调试
启动输入 工作方式与任务输入相同:
- 所有输入均为可选参数
- 省略任何输入,让VS Code提示用户
预启动任务 当调试会话开始时,由VS Code自动处理。
⚙️ MCP选项
任务支持MCP选项 options 块。启动配置在顶层使用它们(您将看到一个架构警告,但它工作正常)。将鼠标悬停在编辑器中的选项上以查看完整文档。
任务示例:
{
"label": "Build",
"type": "shell",
"command": "npm run build",
"options": {
"mcp": { "returnOutput": "onFailure", "interactive": true }
}
}
启动示例:
{
"name": "Debug",
"type": "node",
"request": "launch",
"mcp": { "preserveConsole": true }
}
| 选项 | 默认值 | 描述 |
|---|---|---|
returnOutput |
onFailure |
何时包括输出: always, onFailure, never |
outputLimit |
20480 |
要捕获的最大字符数(空=无限制) |
interactive |
false |
(任务)在本机终端中运行sudo/交互式输入 |
preserveConsole |
false |
(启动)保持原始控制台设置 |
⏱️ 扩展设置
在VS代码设置中配置(ignition-mcp.*):
| 设置 | 默认值 | 说明 |
|---|---|---|
outputLimit |
20480 |
输出捕获的默认最大字符数(每次任务/启动可重写) |
awaitTimeout |
300000 |
默认超时时间(毫秒) await_task 和 await_debug_event (5分钟) |
📋 任务实用工具
| 工具 | 说明 | 参数 |
|---|---|---|
list_tasks |
列出所有可用的VS Code任务及其元数据 | 无 |
get_task_status |
获取任务执行的状态(正在运行/已完成/失败/已取消) | executionId |
get_task_output |
从任务中获取捕获的终端输出 | executionId |
cancel_task |
取消正在运行的任务 | executionId |
await_task |
等待任务完成(或超时) | executionId, timeoutMs (可选) |
🎯 调试实用工具
| 工具 | 说明 | 参数 |
|---|---|---|
list_launch_configs |
列出所有可用的启动配置及其元数据 | 无 |
get_debug_status |
获取活动调试会话的状态(运行/暂停/终止) | 无 |
get_debug_output |
获取捕获的调试控制台输出 | sessionId (可选) |
get_stack_trace |
从暂停的会话中获取调用堆栈 | sessionId (可选) |
stop_debug_session |
停止调试会话 | sessionId (可选) |
await_debug_event |
等待状态更改(断点、异常、终止) | sessionId (可选), timeoutMs (可选) |
🔴 断点工具
| 工具 | 说明 | 参数 |
|---|---|---|
add_breakpoint |
设置断点(在VS代码槽中可见) | file, line, condition (可选) |
remove_breakpoint |
删除断点 | file, line |
list_breakpoints |
列出所有当前断点 | 无 |
🔍 检测工具
| 工具 | 说明 | 参数 |
|---|---|---|
get_variables |
暂停时从当前作用域获取变量 | sessionId (可选), frameId (可选) |
evaluate |
在调试上下文中计算表达式 | expression, sessionId (可选), frameId (可选) |
continue_execution |
恢复暂停的调试会话 | sessionId (可选), threadId (可选) |
🎮 可用命令
| 命令 | 描述 |
|---|---|
| 点火MCP:配置MCP客户端 | 添加到全局配置(光标、克劳德、自定义) |
| 点火MCP:显示状态 | 显示服务器状态和选项 |
| Ignition MCP:接管服务器 | 从运行相同工作区的另一个窗口接管MCP服务器 |
📊 状态栏
扩展程序在VS Code状态栏中显示一个火焰图标。悬停以查看端口,单击以查看选项。
🛠️ 发展
从源代码安装
- 克隆或下载此存储库
- 安装依赖项:
npm install - 构建扩展:
npm run build - 打包扩展:
npx vsce package - 在VS代码/光标中安装:
- 打开“扩展”视图
- 点击“…”菜单->“从VSIX安装…”
- 选择生成的
.vsix文件
扩展开发主机
-
安装依赖项:
npm install -
在VS代码/光标中打开此文件夹
-
按F5启动扩展开发主机
- 这将自动运行手表构建任务
- 一个新的VS Code窗口打开,加载了扩展名
-
对源文件进行更改-它们会自动重建
-
按Ctrl+Shift+F5(或Mac上的Cmd+Shift+F5)重新加载扩展
🔧 故障排除
状态栏显示“由另一个窗口提供服务”
具有相同工作区的另一个VS Code窗口已在运行MCP服务器。如果您希望此窗口处理MCP请求,请使用状态栏菜单中的“接管服务器”。
任务未出现
- 确保在中定义了任务
.vscode/tasks.json - 检查任务定义是否没有语法错误
- 跑 点火MCP:重新启动服务器 从“命令选项板”刷新工具列表
- 在光标中:打开 光标设置>MCP 并验证服务器是否已启用(关闭/打开以重新连接)
- 在VS代码中:检查副驾驶或MCP客户端配置中的等效MCP设置
- 检查状态栏图标-单击它以查看服务器状态和选项
- 作为最后手段重新加载VS Code窗口
⚠️ 已知限制
任务执行选项
为了捕获任务输出,Ignition MCP使用自己的进程生成而不是VS Code的本机任务执行来运行任务。这意味着:
- 支持的选项:
cwd,env,shell.executable,shell.args受到尊重 - 不支持:其他
ShellExecutionOptions(比如shellQuoting)可以忽略 - 未来VS代码选项:不会自动支持VS Code添加的新任务选项
变通方案:对于需要完全兼容VS代码执行的任务,请使用 "mcp": { "interactive": true } 在任务选项中。这将在VS Code的本机终端中运行任务(尽管不会捕获输出)。
启动配置输入
当启动配置具有 preLaunchTask 使用输入变量(${input:...}):
- 简单的任务:输入被替换,任务在没有提示的情况下运行
- 后台任务 (
isBackground: true):VS代码处理执行-可能会提示用户输入 - 具有依赖关系的任务 (
dependsOn):VS代码处理执行-可能会提示用户输入
这是因为后台任务和任务依赖关系需要VS Code的本机任务编排。
转到调试输出捕获
Go调试适配器(Delve)将测试输出直接写入stdout/stderr,而不是通过调试适配器协议路由。当点火MCP超控时 console: "integratedTerminal" 到 "internalConsole" 对于输出捕获,此输出丢失,因为没有终端可以接收它。
症状:调试会话成功运行,但调试控制台或 get_debug_output 结果,即使手动运行相同的配置也会显示输出。
变通方案:禁用Go启动配置的控制台覆盖:
{
"name": "Run Tests",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceFolder}/...",
"console": "integratedTerminal",
"mcp": {
"preserveConsole": true
}
}
随着 preserveConsole: true,终端已创建,输出可见,但Ignition MCP无法以编程方式捕获它。
📄 许可证
麻省理工学院