进程管理器扩展

MCP ACS Process Manager for VS Code 是一个专为AI代理设计的进程管理扩展,提供进程启动、监控、终止及安全边界控制功能,适用于开发环境中的进程管理需求。

  • by Digital-Defiance
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Digital-Defiance/vscode-mcp-acs-process

使用说明

MCP ACS VS代码流程管理器

具有MCP集成和安全边界的AI代理的流程管理。通过全面的安全实施,直接从VS Code启动、监控和控制流程。

🔗 仓库

此套餐是 AI功能套件 在GitHub上。

特性

🚀 进程管理

  • 启动流程:使用自定义参数和环境变量启动进程
  • 监控资源:实时CPU、内存和I/O监控
  • 终止进程:优雅(SIGTERM)或强制(SIGKILL)终止
  • 进程列表:在树视图中查看所有正在运行的进程
  • 进程统计:webview中的详细资源使用统计信息

🔍 语言服务器协议(LSP)集成

17个增强开发的LSP功能:

  • 增强型编码镜头:7种内联操作(启动、终止、发送、获取输出、启动服务、监视)
  • 语义令牌:流程函数、变量和属性的语法突出显示
  • 内联提示:参数名称和类型提示(%,MB单位)
  • 签名帮助:带有参数文档的函数签名
  • 重命名支持:过程变量的安全重构
  • 调用层次结构:导航流程调用链
  • 悬停信息:流程相关代码的上下文帮助
  • 诊断:实时安全警告和最佳实践
  • 代码补全:流程配置的智能建议
  • 代码操作:快速修复和重构建议
  • 定义提供者:转到流程定义
  • 文件符号:流程概览
  • 11自定义命令:AI代理可以完全访问MCP工具

🛡️ 安全边界

  • 可执行许可列表:只能启动预先批准的可执行文件
  • 资源限制:强制执行CPU、内存和时间限制
  • 安全仪表版:在树状图中查看所有安全边界
  • 审计日志:完整的操作跟踪
  • 多层验证:6层安全检查

📊 可视化界面

  • 流程树视图:一目了然地查看所有正在运行的进程
  • 安全树视图:了解安全边界
  • 统计网络视图:精美的图表和指标
  • 实时更新:自动刷新进程列表

🤖 人工智能集成

  • MCP协议:与Kiro、Claude Desktop等人工智能代理合作
  • GitHub复制品就绪:副驾驶可以通过LSP管理流程
  • 代码镜头集成:AI代理看到内联流程管理操作
  • 诊断集成:AI代理看到安全警告和建议
  • 上下文提供程序:AI代理可以完全了解正在运行的流程
  • 缺省巩固安全:AI代理无法绕过安全

安装

来自VS代码市场

  1. 打开VS代码
  2. 转到扩展(Ctrl+Shift+X/Cmd+Shift+X)
  3. 搜索“MCP ACS过程管理器”
  4. 单击安装

安装MCP ACS进程服务器

该扩展需要MCP进程服务器。全局安装:

npm install -g @ai-capabilities-suite/mcp-process

或者使用Docker:

docker pull digitaldefiance/mcp-process:latest

从VSIX文件

code --install-extension mcp-process-manager-1.0.0.vsix

快速开始

1.配置服务器

创建配置文件 mcp-process-config.json:

{
  "allowedExecutables": ["node", "python3", "npm", "git"],
  "defaultResourceLimits": {
    "maxCpuPercent": 80,
    "maxMemoryMB": 1024,
    "maxCpuTime": 300
  },
  "maxConcurrentProcesses": 10,
  "maxProcessLifetime": 3600,
  "enableAuditLog": true,
  "blockShellInterpreters": true,
  "blockSetuidExecutables": true
}

2.配置VS代码设置

打开VS代码设置(Ctrl+、/Cmd+、)并设置:

{
  "mcp-process.configPath": "/path/to/mcp-process-config.json",
  "mcp-process.autoStart": true,
  "mcp-process.refreshInterval": 2000,
  "mcp-process.showResourceUsage": true
}

3.打开流程管理器

  1. 单击活动栏(左侧边栏)中的MCP ACS Process Manager图标
  2. 在“运行进程”面板中查看正在运行的进程
  3. 在“安全边界”面板中查看安全边界

4.启动流程

选项A:使用命令选项板

  1. 按 Ctrl+Shift+P (Mac上的Cmd+Shift+P)
  2. 类型“MCP ACS流程:启动流程”
  3. 输入可执行文件名(例如“节点”)
  4. 输入参数(例如,“--version”)

选项B:使用树视图

  1. 单击“正在运行的进程”面板标题中的播放图标
  2. 按照提示操作

使用示例

示例1:运行Node.js脚本

  1. 打开命令面板(Ctrl+Shift+P)
  2. 选择“MCP ACS流程:启动流程”
  3. 输入可执行文件: node
  4. 输入参数: script.js arg1 arg2
  5. 在树状图中查看流程
  6. 点击图表图标查看统计数据

示例2:监控资源使用情况

  1. 启动一个流程(见示例1)
  2. 单击流程旁边的图形图标
  3. 查看实时CPU、内存和I/O统计信息
  4. 注意违反资源限制

示例3:终止进程

  1. 在树状图中查找流程
  2. 单击进程旁边的停止图标
  3. 选择“优雅(SIGTERM)”或“强制(SIGKILL)”
  4. 进程将终止

示例4:查看安全边界

  1. 打开“安全边界”面板
  2. 展开“允许的可执行文件”查看可以启动的内容
  3. 展开“资源限制”以查看限制
  4. 展开“安全功能”以查看保护措施

示例5:配置允许列表

  1. 打开命令面板(Ctrl+Shift+P)
  2. 选择“MCP ACS进程:配置可执行允许列表”
  3. 编辑配置文件
  4. 保存并重新启动服务器

配置

MCP ACS Process Manager通过VS Code的原生设置UI提供全面的配置。所有50多个设置都分为9个逻辑类别,便于发现和管理。

快速配置

推荐方法: 使用VS代码设置UI(Ctrl+、/Cmd+、)并搜索“mcp进程”以直观地配置所有设置。

备选方案: 编辑 settings.json 直接用于高级配置。

配置类别

1.服务器设置(mcp-process.server.*)

控制服务器连接和启动行为。

设置 类型 默认值 描述
serverPath string “” 服务器可执行文件的路径(空=捆绑)
useConfigFile boolean false 使用外部配置文件(仅限高级用户)
configPath string “” 配置文件的路径(当useConfigFile=true时)
autoStart boolean true VS Code启动时自动启动服务器
logLevel enum “info” 日志级别:调试、信息、警告、错误

例子:

{
  "mcp-process.server.autoStart": true,
  "mcp-process.server.logLevel": "info"
}

2.超时和连接设置(mcp-process.timeout.*, mcp-process.reconnect.*)

控制超时行为和自动重新连接。这些设置使用共享 @ai-capabilities-suite/mcp-client-base 用于跨所有MCP扩展进行一致超时处理的包。

设置 类型 默认值 描述
timeout.initialization number 60000 初始化超时(毫秒)(10-300秒)
timeout.standardRequest number 30000 标准请求超时(毫秒)(5-120秒)
reconnect.maxRetries number 3 最大重新连接尝试次数(0-10)
reconnect.retryDelay number 2000 初始重试延迟(毫秒)(1-10秒)

超时管理的工作原理:

扩展对不同的操作使用不同的超时值:

  • 初始化超时 (默认60秒):启动服务器和初始握手时使用。服务器启动可能很慢,尤其是在第一次运行时。
  • 标准请求超时 (默认30秒):用于正常的流程管理操作,如启动、终止或监控流程。

自动重新同步:

当初始化过程中发生超时但服务器进程仍在运行时,扩展会自动尝试使用指数回退重新同步:

  1. 2秒后首次重试
  2. 3秒后第二次重试(2s×1.5)
  3. 4.5秒后第三次重试(3s×1.5)

这可以防止服务器启动缓慢但仍能正常工作时出现错误故障。

示例-快速地方发展:

{
  "mcp-process.timeout.initialization": 30000,
  "mcp-process.timeout.standardRequest": 15000,
  "mcp-process.reconnect.maxRetries": 2,
  "mcp-process.reconnect.retryDelay": 1000
}

示例-慢速系统或远程服务器:

{
  "mcp-process.timeout.initialization": 120000,
  "mcp-process.timeout.standardRequest": 60000,
  "mcp-process.reconnect.maxRetries": 5,
  "mcp-process.reconnect.retryDelay": 3000
}

示例-CI/CD环境:

{
  "mcp-process.timeout.initialization": 90000,
  "mcp-process.timeout.standardRequest": 45000,
  "mcp-process.reconnect.maxRetries": 3,
  "mcp-process.reconnect.retryDelay": 2000
}

何时调整超时:

  • 增加初始化超时时间 如果您看到“服务器初始化超时”错误,但服务器最终会启动
  • 增加标准请求超时 如果进程操作失败并出现超时错误
  • 增加重试次数 如果服务器间歇性地变慢,但最终会做出响应
  • 减少超时 如果你想在真正损坏的服务器上更快地检测故障

连接状态指示器:

该扩展在树状图中显示连接状态:

  • “正在连接到服务器…” -初始连接正在进行中
  • “连接超时-重试(1/3)” -发生超时,尝试重试
  • “已连接” -已成功连接并准备就绪
  • “已断开连接” -未连接到服务器
  • “错误:[消息]” -发生不可恢复的错误

技术细节:

超时和重新连接逻辑由共享提供 @ai-capabilities-suite/mcp-client-base 包,确保所有MCP扩展(进程、屏幕截图、调试器、文件系统)的行为一致。看 mcp客户端基础文档 了解更多详情。

3.可执行控制(mcp-process.executable.*)

控制可以启动哪些可执行文件以及如何验证参数。

设置 类型 默认值 描述
allowedExecutables string[] [] 允许的可执行文件(路径或模式)
blockSetuidExecutables boolean true 阻止setuid/setgid可执行文件
blockShellInterpreters boolean false 块shell解释器(bash、sh等)
additionalBlockedExecutables string[] [] 其他被阻止的可执行文件
maxArgumentCount number 100 最大参数数
maxArgumentLength number 4096 任何参数的最大长度(字节)
blockedArgumentPatterns string[] [] 参数中要阻止的正则表达式模式

示例-开发环境:

{
  "mcp-process.executable.allowedExecutables": [
    "node",
    "npm",
    "yarn",
    "python3",
    "git"
  ],
  "mcp-process.executable.blockShellInterpreters": false,
  "mcp-process.executable.blockSetuidExecutables": true
}

示例-生产环境:

{
  "mcp-process.executable.allowedExecutables": [
    "/usr/bin/node",
    "/usr/bin/python3"
  ],
  "mcp-process.executable.blockShellInterpreters": true,
  "mcp-process.executable.blockSetuidExecutables": true,
  "mcp-process.executable.blockedArgumentPatterns": [
    ".*\\|.*",
    ".*>.*",
    ".*\\$\\(.*\\).*"
  ]
}

4.资源限制(mcp-process.resources.*)

控制生成进程的CPU、内存和其他资源限制。

设置 类型 默认值 描述
defaultMaxCpuPercent number 50 默认最大CPU使用率(0-100)
defaultMaxMemoryMB number 512 默认最大内存(MB)
defaultMaxFileDescriptors number 1024 默认最大文件描述符
defaultMaxCpuTime number 300 默认最大CPU时间(秒)
defaultMaxProcesses number 10 树中的默认最大进程数
maximumMaxCpuPercent number 100 CPU使用的硬限制
maximumMaxMemoryMB number 2048 内存使用的硬限制
strictResourceEnforcement boolean false 违反限制时立即终止

示例-慷慨的限制:

{
  "mcp-process.resources.defaultMaxCpuPercent": 80,
  "mcp-process.resources.defaultMaxMemoryMB": 2048,
  "mcp-process.resources.defaultMaxCpuTime": 600,
  "mcp-process.resources.strictResourceEnforcement": false
}

示例-严格限制:

{
  "mcp-process.resources.defaultMaxCpuPercent": 25,
  "mcp-process.resources.defaultMaxMemoryMB": 256,
  "mcp-process.resources.defaultMaxCpuTime": 60,
  "mcp-process.resources.strictResourceEnforcement": true
}

5.工艺限制(mcp-process.process.*)

控制进程并发性和速率限制。

设置 类型 默认值 描述
maxConcurrentProcesses number 10 最大并发进程数(全局)
maxConcurrentProcessesPerAgent number 5 每个代理的最大并发进程数
maxProcessLifetime number 3600 最大进程生存期(秒)
maxTotalProcesses number 1000 最大总进程数(服务器生存期)
maxLaunchesPerMinute number 10 每个代理每分钟的最大启动次数
maxLaunchesPerHour number 100 每个代理每小时的最大启动次数
rateLimitCooldownSeconds number 60 达到速率限制后的冷却

例子:

{
  "mcp-process.process.maxConcurrentProcesses": 20,
  "mcp-process.process.maxConcurrentProcessesPerAgent": 10,
  "mcp-process.process.maxProcessLifetime": 7200,
  "mcp-process.process.maxLaunchesPerMinute": 20
}

6.I/O控制(mcp-process.io.*)

控制stdin/stdout行为和缓冲区大小。

设置 类型 默认值 描述
allowStdinInput boolean true 允许向进程输入stdin
allowOutputCapture boolean true 允许捕获stdout/stderr
maxOutputBufferSize number 1048576 每个流的最大缓冲区大小(字节)
blockBinaryStdin boolean true 阻止stdin中的二进制数据

例子:

{
  "mcp-process.io.allowStdinInput": true,
  "mcp-process.io.allowOutputCapture": true,
  "mcp-process.io.maxOutputBufferSize": 2097152,
  "mcp-process.io.blockBinaryStdin": true
}

7.安全设置(mcp-process.security.*)

控制流程终止、确认和访问控制。

设置 类型 默认值 描述
allowProcessTermination boolean true 允许代理终止进程
allowGroupTermination boolean true 允许代理终止组
allowForcedTermination boolean false 允许强制终止(SIGKILL)
requireTerminationConfirmation boolean false 需要确认终止
requireConfirmation boolean false 所有启动都需要确认
requireConfirmationFor string[] [] 需要确认的可执行文件
autoApproveAfterCount number 0 N次成功启动后自动批准
allowedWorkingDirectories string[] [] 允许的工作目录
blockedWorkingDirectories string[] [] 已阻止的工作目录
additionalBlockedEnvVars string[] [] 其他被阻止的环境变量
allowedEnvVars string[] [] 允许的环境变量(白名单)
maxEnvVarCount number 100 环境变量的最大数量

示例-高安全性:

{
  "mcp-process.security.allowForcedTermination": false,
  "mcp-process.security.requireConfirmation": true,
  "mcp-process.security.requireConfirmationFor": ["rm", "dd", "mkfs"],
  "mcp-process.security.blockedWorkingDirectories": ["/etc", "/root"],
  "mcp-process.security.allowedEnvVars": ["PATH", "HOME", "USER"]
}

8.高级安全(mcp-process.security.advanced.*)

高级隔离功能(特定于Linux)。

设置 类型 默认值 描述
enableChroot boolean false 启用chroot jail(Unix/Linux)
chrootDirectory string “” Chroot目录路径
enableNamespaces boolean false 启用Linux命名空间
namespacesPid boolean false 启用PID命名空间
namespacesNetwork boolean false 启用网络命名空间
namespacesMount boolean false 启用装载命名空间
namespacesUts boolean false 启用UTS命名空间
namespacesIpc boolean false 启用IPC命名空间
namespacesUser boolean false 启用用户命名空间
enableSeccomp boolean false 启用seccomp过滤
seccompProfile enum “中等” Seccomp配置文件:严格、中等、允许
blockNetworkAccess boolean false 阻止网络访问
allowedNetworkDestinations string[] [] 允许的网络目标
blockedNetworkDestinations string[] [] 已阻止的网络目标
enableMAC boolean false 启用强制访问控制
macProfile string “” SELinux上下文或AppArmor配置文件
dropCapabilities string[] [] Linux功能要删除
readOnlyFilesystem boolean false 将文件系统挂载为只读
tmpfsSize number 64 临时文件系统大小(MB)

示例-最大隔离(Linux):

{
  "mcp-process.security.advanced.enableNamespaces": true,
  "mcp-process.security.advanced.namespacesPid": true,
  "mcp-process.security.advanced.namespacesNetwork": true,
  "mcp-process.security.advanced.namespacesMount": true,
  "mcp-process.security.advanced.enableSeccomp": true,
  "mcp-process.security.advanced.seccompProfile": "strict",
  "mcp-process.security.advanced.dropCapabilities": [
    "CAP_NET_RAW",
    "CAP_SYS_ADMIN"
  ]
}

9.审计与监控(mcp-process.audit.*)

控制审计日志记录和安全警报。

设置 类型 默认值 描述
enableAuditLog boolean true 启用审核日志记录
auditLogPath string “” 审核日志文件路径
auditLogLevel enum “info” 日志级别:错误、警告、信息、调试
enableSecurityAlerts boolean false 启用实时安全警报
securityAlertWebhook string “” 警报webhook URL
allowedTimeWindows string[] [] 允许的时间窗口(cron语法)
blockedTimeWindows string[] [] 被阻塞的时间窗口(cron语法)

例子:

{
  "mcp-process.audit.enableAuditLog": true,
  "mcp-process.audit.auditLogLevel": "info",
  "mcp-process.audit.enableSecurityAlerts": true,
  "mcp-process.audit.securityAlertWebhook": "https://hooks.slack.com/services/YOUR/WEBHOOK",
  "mcp-process.audit.allowedTimeWindows": ["0 9-17 * * 1-5"]
}

10.用户界面首选项(mcp-process.ui.*)

控制UI行为和显示选项。

设置 类型 默认值 描述
refreshInterval number 2000 进程列表刷新间隔(ms)
showResourceUsage boolean true 在进程列表中显示CPU/内存
showSecurityWarnings boolean true 在UI中显示安全警告
confirmDangerousOperations boolean true 危险操作需要确认

例子:

{
  "mcp-process.ui.refreshInterval": 1000,
  "mcp-process.ui.showResourceUsage": true,
  "mcp-process.ui.showSecurityWarnings": true
}

共享MCP客户端基础包

超时和连接管理功能由共享提供 @ai-capabilities-suite/mcp-client-base 包裹。AI能力套件中的所有MCP扩展(进程、屏幕截图、调试器、文件系统)都使用此包来提供一致的行为。

共享套餐的好处:

  • 一致的超时处理 跨所有MCP扩展
  • 自动重新同步 指数回退
  • 连接状态管理 带有监听器通知
  • 诊断命令 用于故障排除
  • 综合录井 带有时间戳和请求ID
  • 经过充分测试 包括单元测试和基于属性的测试

更多信息:

Process扩展如何使用mcp客户端库:

流程扩展 MCPProcessClient 扩展 BaseMCPClient 从共享包中继承所有超时和连接管理功能。特定于扩展的设置(mcp-process.timeout.* 和 mcp-process.reconnect.*)在初始化期间传递给基本客户端。

// Simplified example of how the Process extension uses BaseMCPClient
import { BaseMCPClient } from "@ai-capabilities-suite/mcp-client-base";

export class MCPProcessClient extends BaseMCPClient {
  constructor(outputChannel: vscode.LogOutputChannel, config: MCPClientConfig) {
    super(outputChannel, {
      timeout: {
        initializationTimeoutMs: config.timeout.initialization,
        standardRequestTimeoutMs: config.timeout.standardRequest,
        toolsListTimeoutMs: config.timeout.initialization,
      },
      reSync: {
        maxRetries: config.reconnect.maxRetries,
        retryDelayMs: config.reconnect.retryDelay,
        backoffMultiplier: 1.5,
      },
      logging: {
        logLevel: config.server.logLevel,
        logCommunication: true,
      },
    });
  }

  // Extension-specific methods...
}

这种架构确保了超时处理和连接管理的改进会自动使所有MCP扩展受益。

配置预设

该扩展为常见用例提供了三个内置配置预设:

开发预设

允许当地发展,限制最小。

在以下情况下使用: 在本地开发,需要灵活性,信任所有代码

申请: 命令面板→ “MCP ACS过程:应用配置预设”→ “发展”

生产预设

生产使用的平衡设置具有合理的安全性。

在以下情况下使用: 在生产环境中运行,需要安全性而不破坏功能

申请: 命令面板→ “MCP ACS过程:应用配置预设”→ “生产”

高安全预设

严格的设置,具有强大的隔离性,可实现最大的安全性。

在以下情况下使用: 处理不受信任的代码,需要最大的安全性

申请: 命令面板→ “MCP ACS过程:应用配置预设”→ “高安全性”

导入/导出配置

导出配置:

  1. 打开命令面板(Ctrl+Shift+P/Cmd+Shift+P)
  2. 运行“MCP ACS流程:导出配置”
  3. 选择保存位置
  4. 配置保存为带有元数据的JSON格式

导入配置:

  1. 打开命令选项板
  2. 运行“MCP ACS流程:导入配置”
  3. 选择配置JSON文件
  4. 审查变更并确认
  5. 应用于VS代码的设置

注: 导出的配置包括平台元数据。导入跨平台配置将显示平台特定设置的警告。

验证配置

要检查配置是否存在错误和冲突,请执行以下操作:

  1. 打开命令选项板
  2. 运行“MCP ACS流程:验证配置”
  3. 在输出面板中查看验证结果
  4. 修复任何错误或警告
  5. 重新验证,直至清洁

服务器配置

重要提示: 使用扩展时,VS Code设置是主要的配置方法。外部配置文件(mcp-process-config.json)仅需要用于:

  • 独立运行服务器(无VS代码)
  • 喜欢基于文件的配置的高级用户
  • 以编程方式覆盖特定设置

要使用外部配置文件,请设置:

{
  "mcp-process.server.useConfigFile": true,
  "mcp-process.server.configPath": "/path/to/mcp-process-config.json"
}

看 MCP ACS过程服务器文档 用于配置文件格式。

最低配置:

{
  "allowedExecutables": ["node", "python3"],
  "defaultResourceLimits": {
    "maxCpuPercent": 80,
    "maxMemoryMB": 1024
  },
  "maxConcurrentProcesses": 10,
  "enableAuditLog": true
}

开发配置:

{
  "allowedExecutables": [
    "node",
    "npm",
    "yarn",
    "python3",
    "pip3",
    "git",
    "jest",
    "eslint",
    "tsc"
  ],
  "defaultResourceLimits": {
    "maxCpuPercent": 90,
    "maxMemoryMB": 2048,
    "maxCpuTime": 600
  },
  "maxConcurrentProcesses": 20,
  "maxProcessLifetime": 7200,
  "enableAuditLog": true,
  "blockShellInterpreters": false,
  "blockSetuidExecutables": true
}

命令

该扩展提供用于进程管理和故障排除的命令。通过命令面板(Ctrl+Shift+P/Cmd+Shift+P)访问命令。

流程管理命令

命令 描述 快捷方式
MCP ACS Process: Start Process 启动新流程 -
MCP ACS Process: Terminate Process 停止正在运行的进程 -
MCP ACS Process: View All Processes 显示进程列表 -
MCP ACS Process: View Process Statistics 显示详细统计数据 -
MCP ACS Process: Refresh Process List 刷新树状图 -
MCP ACS Process: Show Security Boundaries 查看安全配置 -
MCP ACS Process: Configure Executable Allowlist 编辑列表 -

连接和恢复命令

这些命令有助于解决连接问题并从中恢复:

命令 描述 何时使用
MCP ACS Process: Reconnect to Server 尝试重新连接而不重新启动服务器 服务器正在运行但无响应
MCP ACS Process: Restart Server 停止并重新启动MCP服务器进程 服务器状态不佳或崩溃
MCP ACS Process: Show Server Diagnostics 显示详细的服务器连接诊断 排除连接问题

重新连接到服务器:

  • 尝试在不终止进程的情况下重新建立与服务器的通信
  • 使用与自动超时恢复相同的重新同步逻辑
  • 当服务器正在运行但扩展失去连接时很有用
  • 显示带有详细信息的成功/失败通知

重新启动服务器:

  • 终止现有服务器进程并启动新进程
  • 清除所有挂起的请求并重置连接状态
  • 当服务器真正卡住或处于不可恢复状态时使用
  • 旧服务器管理的所有正在运行的进程都将成为孤立进程

显示服务器诊断:

  • 显示全面的诊断信息,包括:
    • 服务器进程状态(运行/停止,PID)
    • 连接状态(连接、已连接、超时、错误)
    • 待处理请求计数和详细信息
    • 最近的通信事件(请求、响应、错误)
    • 最后一条错误消息和时间戳
  • 帮助确定连接问题的根本原因
  • 报告错误时应包含的有用信息

安全

此扩展强制执行严格的安全边界:

AI代理不能做什么

  • 启动不在列表中的可执行文件
  • 如果被阻止,启动shell解释器(bash、sh、cmd.exe)
  • 启动危险的可执行文件(sudo、rm、dd等)
  • 启动setuid/setgid可执行文件
  • 修改PATH或危险环境变量
  • 向他们没有创建的进程发送信号
  • 升级特权
  • 绕过资源限制
  • 启动无限并发进程
  • 使进程无限期运行

AI代理可以做什么(在允许范围内)

  • 启动带有参数的已批准可执行文件
  • 设置安全环境变量
  • 捕获stdout/stderr
  • 发送stdin输入
  • 监控资源使用情况
  • 终止他们创建的进程
  • 创建流程组
  • 设置资源限制(在配置的最大值内)

安全层

  1. 可执行许可列表:仅预先批准的可执行文件
  2. 参数验证:注射攻击预防
  3. 环境消毒:危险变量已删除
  4. 资源限制:CPU、内存、时间限制
  5. 特权预防:无特权升级
  6. 审计日志:完整的操作跟踪

故障排除

本节介绍常见问题及其解决方案。有关连接和超时问题,请参阅 连接和恢复命令 部分。

连接和超时问题

服务器初始化超时

问题:扩展显示“服务器初始化超时”或“连接超时-重试”

症状:

  • 树视图显示“连接超时-重试(X/3)”
  • 重试后,扩展最终显示“服务器未运行”
  • 服务器进程实际正在运行(检查任务管理器/活动监视器)

解决方案:

  1. 增加初始化超时时间 (建议用于慢速系统):

    {
      "mcp-process.timeout.initialization": 120000 // 2 minutes
    }
    
  2. 检查服务器日志 在输出面板中:

    • 打开输出面板(视图→ 输出)
    • 从下拉菜单中选择“MCP ACS流程管理器”
    • 在初始化过程中查找错误消息
  3. 验证服务器是否可以手动启动:

    npx -y @ai-capabilities-suite/mcp-process
    

    如果此操作挂起或失败,则服务器本身存在问题。

  4. 使用“重新连接”命令:

    • 打开命令面板(Ctrl+Shift+P/Cmd+Shift+P)
    • 运行“MCP ACS进程:重新连接到服务器”
    • 检查重新连接是否成功
  5. 检查系统资源:

    • 高CPU/内存使用率会减缓服务器启动速度
    • 关闭不必要的应用程序
    • 重新启动VS代码

何时增加超时时间:

  • 首次运行(服务器需要下载依赖项)
  • 系统速度慢(硬件较旧,资源有限)
  • 远程开发(网络延迟)
  • CI/CD环境(共享资源)

请求超时

问题:操作失败,出现“请求超时”错误

症状:

  • 启动进程失败,超时
  • 获取流程统计数据超时
  • 其他操作有效,但特定操作失败

解决方案:

  1. 增加标准请求超时:

    {
      "mcp-process.timeout.standardRequest": 60000 // 1 minute
    }
    
  2. 检查服务器是否过载:

    • 运行“MCP ACS进程:显示服务器诊断”
    • 查看待处理请求计数
    • 如果有许多未决请求,服务器可能会不堪重负
  3. 减少并发操作:

    • 不要一次启动太多进程
    • 等待操作完成后再开始新的操作
  4. 检查进程资源限制:

    • 如果监视资源密集型进程,可能会减慢服务器的速度
    • 增加资源限制或降低监控频率

自动重新连接失败

问题:扩展程序不断重试,但从未连接

症状:

  • 树视图显示“连接超时-重试(3/3)”
  • 最终显示“已断开连接”或错误消息
  • 重试没有帮助

解决方案:

  1. 检查服务器进程是否实际运行:

    • 运行“MCP ACS进程:显示服务器诊断”
    • 查看“服务器进程正在运行”状态
    • 如果为false,则服务器崩溃或从未启动
  2. 重新启动服务器 (不仅仅是重新连接):

    • 运行“MCP ACS进程:重新启动服务器”
    • 这会终止并重新启动服务器进程
    • 检查输出面板是否有启动错误
  3. 增加重试次数和延迟:

    {
      "mcp-process.reconnect.maxRetries": 5,
      "mcp-process.reconnect.retryDelay": 3000
    }
    
  4. 检查端口冲突:

    • 如果使用stdio传输,则不应该发生这种情况
    • 但请检查输出面板中的“地址已在使用中”错误
  5. 验证Node.js安装:

    node --version  # Should be 18.x or higher
    npm --version
    

服务器进程崩溃

问题:服务器启动但立即崩溃

症状:

  • 输出面板中的“服务器进程已退出,代码为X”
  • 扩展名在“正在连接”后立即显示“已断开连接”
  • 诊断显示“服务器进程正在运行:false”

解决方案:

  1. 检查服务器日志 在“输出”面板中显示错误消息

  2. 验证服务器安装:

    npm install -g @ai-capabilities-suite/mcp-process
    
  3. 检查是否存在冲突的全局包:

    npm list -g @ai-capabilities-suite/mcp-process
    
  4. 尝试使用捆绑服务器 (如有):

    {
      "mcp-process.server.serverPath": "" // Empty = use bundled
    }
    
  5. 检查Node.js版本兼容性:

    • 服务器需要Node.js 18.x或更高版本
    • 如果需要,更新Node.js

服务器未启动

问题:扩展显示“服务器未运行”

解决方案:

  1. 检查是否安装了Node.js: node --version
  2. 安装MCP服务器: npm install -g @ai-capabilities-suite/mcp-process
  3. 集 mcp-process.server.serverPath 如果需要,在设置中
  4. 检查输出面板是否有错误
  5. 重新启动VS代码

可执行文件不在允许列表中

问题:“可执行文件不在列表中”错误

解决方案:

  1. 打开VS代码设置(Ctrl+、/Cmd+、)
  2. 搜索“mcp进程.可执行文件.allowed可执行文件”
  3. 将可执行文件添加到数组中
  4. 服务器将自动重新加载新设置

备选方案:

  1. 打开命令选项板
  2. 运行“MCP ACS进程:配置可执行允许列表”
  3. 将可执行文件添加到 allowedExecutables
  4. 保存并重新启动服务器

进程未出现

问题:已启动的进程未显示在树视图中

解决方案:

  1. 单击树状图中的刷新图标
  2. 检查进程是否立即退出
  3. 检查输出面板是否有错误
  4. 验证可执行文件是否在列表中

超出资源限度

问题:进程终止,显示“超出CPU/内存限制”

解决方案:

  1. 打开VS代码设置
  2. 搜索“mcp-process.resources”
  3. 增加 defaultMaxCpuPercent 或 defaultMaxMemoryMB
  4. 检查流程统计数据以查看实际使用情况
  5. 考虑流程是否合理地需要更多资源

设置未生效

问题:设置已更改,但行为未更改

解决方案:

  1. 检查设置是否需要重新启动服务器(在描述中查找“注意:更改需要重新启动server”)
  2. 如果需要重新启动,请单击通知按钮或运行“MCP ACS进程:重新启动服务器”
  3. 检查输出面板是否存在配置错误
  4. 运行“MCP ACS流程:验证配置”以检查问题

配置验证错误

问题:验证显示错误或警告

解决方案:

  1. 仔细阅读错误消息-它解释了问题所在
  2. 常见问题:
    • enableChroot 需要 chrootDirectory 待定
    • enableSecurityAlerts 需要 securityAlertWebhook 待定
    • 特定于平台的设置(命名空间、chroot)仅适用于Linux/Unix
  3. 修复VS代码设置界面中的设置
  4. 重新运行验证以确认修复

导入配置失败

问题:无法导入配置文件

解决方案:

  1. 验证JSON文件是否有效(使用JSON验证器)
  2. 检查文件是否包含有效的设置名称
  3. 查看有关平台特定设置的警告
  4. 如果从不同平台导入,某些设置可能不适用
  5. 检查输出面板以获取详细的错误消息

平台特定功能不起作用

问题:Linux命名空间、chroot或其他平台功能不起作用

解决方案:

  1. 验证您使用的平台是否正确(命名空间使用Linux,chroot使用Unix/Linux)
  2. 检查您是否具有所需的权限(root或功能)
  3. 验证内核对该功能的支持
  4. 检查输出面板是否有特定的错误消息
  5. 考虑使用Docker实现一致的跨平台行为

未找到配置文件

问题:“找不到配置文件”错误(使用时 useConfigFile: true)

解决方案:

  1. 集 mcp-process.server.configPath 在VS代码设置中
  2. 使用配置文件的绝对路径
  3. 验证文件是否存在并且可读
  4. 检查文件权限
  5. 推荐: 通过设置来使用VS代码设置 useConfigFile: false

设置UI不显示所有设置

问题:在VS代码设置UI中找不到某些设置

解决方案:

  1. 确保您正在搜索“mcp进程”(带连字符)
  2. 尝试搜索特定类别:“mcp-process.enable”、“mcp-process.security”等。
  3. 检查设置是否因平台而隐藏(某些仅限Linux的设置在Windows/Mac上不会显示)
  4. 如果刚刚安装了设置,请重新启动VS Code
  5. 检查扩展是否已激活(在活动栏中查找MCP ACS Process Manager)

语言服务器协议(LSP)功能

该扩展提供了全面的LSP集成,具有17个功能,可增强开发体验和人工智能辅助。

LSP功能概述

功能 描述 AI优势
代码镜头 7种内联操作 AI看到可用操作
悬停 关键字上下文帮助 AI理解流程API
诊断 安全警告 人工智能学习最佳实践
完成 智能建议 AI获得准确的完成
签名帮助 函数签名 AI知道参数类型
语义令牌 语法突出显示 AI识别流程代码
嵌入提示 参数/类型提示 AI看到隐含信息
重命名 重构变量 AI可以安全重命名
呼叫层次结构 导航呼叫链 AI跟踪流程
定义 转到定义 AI查找声明
文档符号 大纲视图 AI理解结构
代码操作 快速修复 AI建议改进

1.增强型编码镜头(7种)

内联操作直接出现在代码中,用于常见的流程操作:

const { spawn } = require("child_process");

// 🚀 Launch with MCP | 📊 Monitor Resources
const child = spawn("node", ["script.js"]);

// 📝 Send via MCP
child.stdin.write("input data\n");

// 📤 Get Output via MCP
child.stdout.on("data", (data) => {
  console.log(data);
});

// 🛑 Terminate via MCP
child.kill("SIGTERM");

// 🔄 Start as Service
const service = spawn("node", ["server.js"], { detached: true });

编码镜头类型:

  • 🚀 使用MCP启动:出现在 spawn() 呼叫-通过MCP启动流程
  • 🛑 通过MCP终止:出现在 .kill() 呼叫-通过MCP终止
  • 📝 通过MCP发送:出现在 .stdin.write() -通过MCP发送输入
  • 📤 通过MCP获取输出:出现在 .stdout/.stderr -通过MCP捕获输出
  • 🔄 以服务形式启动:出现在分离的进程上-作为服务管理
  • 📊 监控资源:出现在进程循环中-跟踪CPU/内存

2.语义标记

流程相关代码的语法高亮显示有助于一目了然地识别流程操作:

// Functions highlighted: spawn, exec, fork, kill
const child = spawn("node", ["script.js"]);
const result = exec("ls -la");
const worker = fork("worker.js");
process.kill(child.pid);

// Variables highlighted: pid
const pid = child.pid;

// Properties highlighted: stdin, stdout, stderr, pid
child.stdin.write("data");
child.stdout.on("data", handler);
child.stderr.pipe(process.stderr);

突出显示的元素:

  • 过程功能: spawn, exec, fork, kill
  • 过程变量: pid, child, process
  • 工艺特性: stdin, stdout, stderr, pid

3.镶嵌提示

参数名和类型提示内联显示,以便更好地理解代码:

// Parameter hints show what each argument is
const child = spawn(executable: "node", args: ["script.js"]);

// Type hints show units for resource limits
const config = {
  maxCpuPercent: 80%,    // Shows % unit
  maxMemoryMB: 1024MB,   // Shows MB unit
  timeout: 30000
};

提示类型:

  • 的参数名称 spawn(), exec(), fork()
  • 资源限制单位(%、MB、秒)
  • 配置对象的类型信息

4.签名帮助

键入时会显示带有参数文档的函数签名:

// Typing spawn( shows:
// spawn(executable: string, args: string[], options?: SpawnOptions)
//       ^^^^^^^^^^^^^^^^^^^
const child = spawn("node", ["script.js"], { cwd: "/tmp" });

// Typing mcpClient.startProcess( shows:
// startProcess(config: ProcessConfig): Promise<number>
//              ^^^^^^^^^^^^^^^^^^^^^^
const pid = await mcpClient.startProcess({
  executable: "node",
  args: ["script.js"],
});

支持的功能:

  • spawn(), exec(), fork() -Node.js子进程
  • startProcess(), terminateProcess() -MCP客户端方法
  • getProcessStats(), listProcesses() -MCP监控

5.增强的重命名支持

在整个文件中安全重命名与流程相关的变量:

// Right-click on 'child' and select Rename
const child = spawn("node", ["script.js"]);
child.stdout.on("data", (data) => console.log(data));
child.on("exit", (code) => console.log(`Exit: ${code}`));
// All instances of 'child' renamed together

// Works for: process, child, pid, worker, etc.

可重命名符号:

  • 过程变量: child, process, worker
  • PID变量: pid, processId
  • 文件中的相关标识符

6.呼叫层次结构

浏览流程调用链,了解流程是如何创建和使用的:

// Right-click on spawn() and select "Show Call Hierarchy"
function startServer() {
  return spawn("node", ["server.js"]); // ← Outgoing call
}

function main() {
  const server = startServer(); // ← Incoming call
}

导航:

  • 来电:查找创建流程的位置
  • 去电:查找流程调用的内容
  • 跨函数和文件工作

7.悬停信息

当鼠标悬停在与流程相关的关键字上时,会出现上下文帮助:

const child = spawn("node", ["script.js"]);
//            ^^^^^ Hover shows:
//            Process Management: spawn
//            MCP ACS Process Manager provides secure process management.

8.诊断

安全问题和最佳实践的实时警告:

// ⚠️ Warning: Consider using child_process.spawn instead of exec for better security
const result = exec("ls -la");

// ⚠️ Warning: Using shell: true can introduce command injection vulnerabilities
const child = spawn("node", ["script.js"], { shell: true });

诊断类型:

  • 安全警告 exec() 用法
  • 命令注入警告 shell: true
  • 最佳实践建议

9.代码完成

工艺配置和MCP方法的明智建议:

// Typing spawn("node", [], { shows:
const child = spawn("node", ["script.js"], {
  captureOutput: true,        // ← Suggested
  resourceLimits: { ... },    // ← Suggested
  timeout: 30000              // ← Suggested
});

// Typing mcpClient. shows:
mcpClient.startProcess()      // ← Suggested
mcpClient.terminateProcess()  // ← Suggested
mcpClient.getProcessStats()   // ← Suggested

10.代码操作

快速修复和重构建议:

// Diagnostic: "Consider using spawn instead of exec"
// Quick Fix: "Replace exec with spawn"
const result = exec("ls -la"); // ← Click lightbulb for fix

// Refactoring: "Convert to MCP ACS Process Manager"
const child = spawn("node", ["script.js"]); // ← Select and refactor

自定义命令

所有11个MCP命令都可以通过LSP访问:

流程生命周期:

  • mcp.process.start -启动流程
  • mcp.process.terminate -终止进程
  • mcp.process.list -列出所有流程
  • mcp.process.getStats -获取资源统计信息

I/O管理:

  • mcp.process.sendStdin -向流程发送输入
  • mcp.process.getOutput -捕获stdout/stderr

工艺组:

  • mcp.process.createGroup -创建流程组
  • mcp.process.addToGroup -将流程添加到组
  • mcp.process.terminateGroup -终止整个组

服务管理:

  • mcp.process.startService -启动长时间运行的服务
  • mcp.process.stopService -停止服务

看 COPILOT-INTEGRATION.md 获取详细的AI集成文档。

GitHub复制集成

MCP ACS Process Manager通过全面的LSP集成与GitHub Copilot和其他AI助手无缝协作:

LSP功能如何增强AI辅助

  1. 编码镜头感知:AI可以看到所有7种类型的内联操作,并可以调用它们
  2. 语义令牌:AI通过语法高亮显示识别与流程相关的代码
  3. 内联提示:AI在没有明确文档的情况下理解参数类型和单位
  4. 签名帮助:AI知道确切的函数签名和参数类型
  5. 诊断意识:AI看到安全警告并自动建议修复
  6. 调用层次结构:AI可以跨文件跟踪进程创建和使用情况
  7. 重命名支持:AI可以安全地重构流程变量
  8. 代码补全:AI获得流程配置的准确建议
  9. 流程上下文:人工智能可以完全了解正在运行的流程
  10. 安全意识:AI了解安全边界和限制
  11. 命令访问:AI可以通过LSP调用所有11个MCP命令

AI交互示例

流程管理:

You: "Start a Node.js server on port 3000"
AI: [Sees spawn() code lens, uses mcp.process.start command]
    ✓ Launched node server.js with PID 12345

You: "Monitor the server's resource usage"
AI: [Clicks "📊 Monitor Resources" code lens]
    ✓ CPU: 15%, Memory: 256MB, Uptime: 2m 30s

安全协助:

You: "This code has a security warning, how do I fix it?"
AI: [Sees diagnostic: "shell: true can introduce command injection"]
    [Suggests quick fix: "Remove shell: true"]

    Before: spawn("ls", ["-la"], { shell: true })
    After:  spawn("ls", ["-la"])

代码理解:

You: "What does this process code do?"
AI: [Uses semantic tokens to identify spawn, pid, stdout]
    [Uses call hierarchy to trace process flow]
    [Uses hover to understand each operation]

    "This code spawns a Node.js process, captures its PID,
     monitors stdout, and terminates it after 30 seconds."

重构:

You: "Rename this process variable to 'worker'"
AI: [Uses rename support to change all occurrences]
    ✓ Renamed 'child' to 'worker' in 8 locations

You: "Convert this to use MCP ACS Process Manager"
AI: [Uses code action: "Convert to MCP ACS Process Manager"]
    [Wraps spawn() with mcpClient.startProcess()]

工艺组:

You: "Start 3 worker processes and manage them as a group"
AI: [Uses mcp.process.createGroup]
    [Uses mcp.process.start for each worker]
    [Uses mcp.process.addToGroup]
    ✓ Created group 'workers' with 3 processes

LSP的AI功能

通过全面的LSP集成,AI助手可以:

  • 理解 通过语义标记和悬停信息处理代码
  • 导航 使用调用层次结构和定义的流程
  • 建议 使用诊断和代码操作进行改进
  • 完成 借助签名帮助和补全功能准确编码
  • 重构 安全地使用重命名支持
  • 执行 使用所有11个MCP命令的操作
  • 监视器 通过代码镜头操作获取资源
  • 执行 通过理解边界实现安全

自主操作

AI助手可以自主管理流程:

  1. 启动流程 配置得当
  2. 监控资源 并检测问题
  3. 终止进程 需要时
  4. 管理流程组 适用于复杂的工作流程
  5. 处理I/O 具有stdin/stdout操作
  6. 启动服务 用于长时间运行的任务
  7. 应用安全最佳实践 自动地

需求

  • VS Code:1.85.0或更高版本
  • Node.js:版本18.x或更高
  • MCP ACS过程服务器:全局安装或在设置中指定
  • 操作系统:Windows、macOS或Linux

已知问题

  • 在慢速网络上,WebSocket连接可能会超时
  • CPU负载过高时,进程统计可能会延迟
  • 某些进程可能无法报告准确的I/O统计数据

发布说明

1.0.0

初始版本:

  • MCP集成过程管理
  • 实时资源监控
  • 安全边界可视化
  • 流程和安全树视图
  • 统计网络视图
  • GitHub Copilot集成
  • 全面的安全执法

贡献

发现错误或有功能请求?请打开一个问题 GitHub.

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

详细信息


为AI代理提供安全的流程管理! 🛡️