vsc_tasks_json
此包是一个MCP服务器,使AI代理能够执行VSCode中定义的任务 .vscode/tasks.json.
概述
通过添加 options.mcp 中的属性到任务定义 tasks.json,这些任务被注册为单独的MCP工具。每个任务都可以被称为一个独立的工具,所需的变量被自动定义为输入模式。
先决条件
使用此MCP服务器需要以下环境:
- tasks.json:任务必须在中定义
.vscode/tasks.json
光标MCP配置
MCP服务器注册
将以下内容添加到Cursor的配置文件中(.cursor/mcp.json):
{
"mcpServers": {
"vsc_tasks_json": {
"command": "dart",
"args": ["run", "vsc_tasks_json"],
"env": {}
}
}
}安装
使用 dart pub global activate
要全局安装,请执行以下操作:
dart pub global activate vsc_tasks_mcp使用此方法安装时,Cursor配置文件(.cursor/mcp.json)应如下:
{
"mcpServers": {
"vsc_tasks_json": {
"command": "dart",
"args": [
"pub",
"global",
"run",
"vsc_tasks_mcp"
],
"env": {}
}
}
}增加 pubspec.yaml
要添加为项目依赖项,请将以下内容添加到 pubspec.yaml:
dependencies:
vsc_tasks_mcp: ^1.0.0然后安装依赖项:
dart pub get使用此方法安装时,Cursor配置文件(.cursor/mcp.json)应如下:
{
"mcpServers": {
"vsc_tasks_json": {
"command": "dart",
"args": ["run", "vsc_tasks_mcp"],
"env": {}
}
}
}项目根检测
MCP服务器使用以下方法检测项目根:
- 检查是否存在
.vscode/tasks.json从当前目录 - 如果未找到,则最多搜索10个父目录级别
- 将找到的目录用作项目根目录
启动服务器
您可以使用以下命令从项目根目录启动MCP服务器:
dart run vsc_tasks_jsontasks.json配置
此MCP服务器仅在任务具有以下功能时将其注册为单独的工具 options.mcp 在任务定义中设置的属性 tasks.json.
配置示例
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "dart",
"args": [
"run",
"grinder",
"build",
"--${input:platform}",
"--release",
"--flavor=${input:flavor}"
],
"options": {
"mcp": {
"tool": "app_build",
"description": "Execute Flutter app build"
}
}
}
],
"inputs": [
{
"id": "platform",
"type": "pickString",
"description": "Target platform for build",
"options": ["android", "ios"]
},
{
"id": "flavor",
"type": "pickString",
"description": "Build flavor",
"options": ["development", "staging", "production"]
}
]
}通过上述配置,一个名为 app_build 将被注册。
options.mcp配置字段
tool:MCP工具名称(必填)description:工具说明(可选)
提供的工具
工具输入模式
从任务中自动检测所需变量 command 和 args,并生成输入模式:
${input:platform}→platform参数(必填)${input:flavor}→flavor参数(必填)${file}→file参数(必填)
可变支持
支持以下变量格式:
${input:variable_name}:tasks.json输入中定义的变量${file}:文件路径
日志记录
日志文件位置
MCP服务器将执行日志输出到以下位置:
- 服务器日志:
build/vsc_tasks_mcp/mcp_server.log
- 记录服务器启动、初始化和错误
- 工具日志:
build/vsc_tasks_mcp/{tool_name}.log
- 为每个工具执行创建单独的日志文件 - 记录执行命令、标准输出、标准错误输出和退出代码
查看日志
查看服务器日志
cat build/vsc_tasks_json/mcp_server.log查看工具日志
# View app_build tool log
cat build/vsc_tasks_mcp/app_build.log故障排除
未找到任务
症状:任务未被识别为MCP工具
原因和解决方案:
- 确认
options.mcp属性已设置 - 确认
options.mcp.tool字段存在
任务执行错误
症状:调用工具时返回错误
解决方案:
- 从以下位置获取日志文件路径
logFile响应中的字段 - 检查日志文件以获取详细的错误信息
- 检查
command实际执行的命令字段
# Example of checking log file
cat /path/to/project/build/vsc_tasks_mcp/app_build.log未检测到项目根
症状:错误指示 .vscode/tasks.json 未找到
解决方案:
- 从项目根目录(或子目录)启动MCP服务器
- 核实一下
.vscode/tasks.json存在 - 检查服务器日志中检测到的项目根目录
cat build/vsc_tasks_mcp/mcp_server.log未替换的变量
症状: ${input:xxx} 在命令中保持不变
解决方案:
- 验证调用工具时是否传递了所有必需的参数
- 验证参数名称是否与tasks.json中的变量名称匹配(
input:前缀不是必需的)
