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代码市场
- 打开VS代码
- 转到扩展(Ctrl+Shift+X/Cmd+Shift+X)
- 搜索“MCP ACS过程管理器”
- 单击安装
安装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.打开流程管理器
- 单击活动栏(左侧边栏)中的MCP ACS Process Manager图标
- 在“运行进程”面板中查看正在运行的进程
- 在“安全边界”面板中查看安全边界
4.启动流程
选项A:使用命令选项板
- 按
Ctrl+Shift+P(Mac上的Cmd+Shift+P) - 类型“MCP ACS流程:启动流程”
- 输入可执行文件名(例如“节点”)
- 输入参数(例如,“--version”)
选项B:使用树视图
- 单击“正在运行的进程”面板标题中的播放图标
- 按照提示操作
使用示例
示例1:运行Node.js脚本
- 打开命令面板(Ctrl+Shift+P)
- 选择“MCP ACS流程:启动流程”
- 输入可执行文件:
node - 输入参数:
script.js arg1 arg2 - 在树状图中查看流程
- 点击图表图标查看统计数据
示例2:监控资源使用情况
- 启动一个流程(见示例1)
- 单击流程旁边的图形图标
- 查看实时CPU、内存和I/O统计信息
- 注意违反资源限制
示例3:终止进程
- 在树状图中查找流程
- 单击进程旁边的停止图标
- 选择“优雅(SIGTERM)”或“强制(SIGKILL)”
- 进程将终止
示例4:查看安全边界
- 打开“安全边界”面板
- 展开“允许的可执行文件”查看可以启动的内容
- 展开“资源限制”以查看限制
- 展开“安全功能”以查看保护措施
示例5:配置允许列表
- 打开命令面板(Ctrl+Shift+P)
- 选择“MCP ACS进程:配置可执行允许列表”
- 编辑配置文件
- 保存并重新启动服务器
配置
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秒):用于正常的流程管理操作,如启动、终止或监控流程。
自动重新同步:
当初始化过程中发生超时但服务器进程仍在运行时,扩展会自动尝试使用指数回退重新同步:
- 2秒后首次重试
- 3秒后第二次重试(2s×1.5)
- 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过程:应用配置预设”→ “高安全性”
导入/导出配置
导出配置:
- 打开命令面板(Ctrl+Shift+P/Cmd+Shift+P)
- 运行“MCP ACS流程:导出配置”
- 选择保存位置
- 配置保存为带有元数据的JSON格式
导入配置:
- 打开命令选项板
- 运行“MCP ACS流程:导入配置”
- 选择配置JSON文件
- 审查变更并确认
- 应用于VS代码的设置
注: 导出的配置包括平台元数据。导入跨平台配置将显示平台特定设置的警告。
验证配置
要检查配置是否存在错误和冲突,请执行以下操作:
- 打开命令选项板
- 运行“MCP ACS流程:验证配置”
- 在输出面板中查看验证结果
- 修复任何错误或警告
- 重新验证,直至清洁
服务器配置
重要提示: 使用扩展时,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输入
- 监控资源使用情况
- 终止他们创建的进程
- 创建流程组
- 设置资源限制(在配置的最大值内)
安全层
- 可执行许可列表:仅预先批准的可执行文件
- 参数验证:注射攻击预防
- 环境消毒:危险变量已删除
- 资源限制:CPU、内存、时间限制
- 特权预防:无特权升级
- 审计日志:完整的操作跟踪
故障排除
本节介绍常见问题及其解决方案。有关连接和超时问题,请参阅 连接和恢复命令 部分。
连接和超时问题
服务器初始化超时
问题:扩展显示“服务器初始化超时”或“连接超时-重试”
症状:
- 树视图显示“连接超时-重试(X/3)”
- 重试后,扩展最终显示“服务器未运行”
- 服务器进程实际正在运行(检查任务管理器/活动监视器)
解决方案:
- 增加初始化超时时间 (建议用于慢速系统):
{
"mcp-process.timeout.initialization": 120000 // 2 minutes
}- 检查服务器日志 在输出面板中:
- 打开输出面板(视图→ 输出) - 从下拉菜单中选择“MCP ACS流程管理器” - 在初始化过程中查找错误消息
- 验证服务器是否可以手动启动:
npx -y @ai-capabilities-suite/mcp-process如果此操作挂起或失败,则服务器本身存在问题。
- 使用“重新连接”命令:
- 打开命令面板(Ctrl+Shift+P/Cmd+Shift+P) - 运行“MCP ACS进程:重新连接到服务器” - 检查重新连接是否成功
- 检查系统资源:
- 高CPU/内存使用率会减缓服务器启动速度 - 关闭不必要的应用程序 - 重新启动VS代码
何时增加超时时间:
- 首次运行(服务器需要下载依赖项)
- 系统速度慢(硬件较旧,资源有限)
- 远程开发(网络延迟)
- CI/CD环境(共享资源)
请求超时
问题:操作失败,出现“请求超时”错误
症状:
- 启动进程失败,超时
- 获取流程统计数据超时
- 其他操作有效,但特定操作失败
解决方案:
- 增加标准请求超时:
{
"mcp-process.timeout.standardRequest": 60000 // 1 minute
}- 检查服务器是否过载:
- 运行“MCP ACS进程:显示服务器诊断” - 查看待处理请求计数 - 如果有许多未决请求,服务器可能会不堪重负
- 减少并发操作:
- 不要一次启动太多进程 - 等待操作完成后再开始新的操作
- 检查进程资源限制:
- 如果监视资源密集型进程,可能会减慢服务器的速度 - 增加资源限制或降低监控频率
自动重新连接失败
问题:扩展程序不断重试,但从未连接
症状:
- 树视图显示“连接超时-重试(3/3)”
- 最终显示“已断开连接”或错误消息
- 重试没有帮助
解决方案:
- 检查服务器进程是否实际运行:
- 运行“MCP ACS进程:显示服务器诊断” - 查看“服务器进程正在运行”状态 - 如果为false,则服务器崩溃或从未启动
- 重新启动服务器 (不仅仅是重新连接):
- 运行“MCP ACS进程:重新启动服务器” - 这会终止并重新启动服务器进程 - 检查输出面板是否有启动错误
- 增加重试次数和延迟:
{
"mcp-process.reconnect.maxRetries": 5,
"mcp-process.reconnect.retryDelay": 3000
}- 检查端口冲突:
- 如果使用stdio传输,则不应该发生这种情况 - 但请检查输出面板中的“地址已在使用中”错误
- 验证Node.js安装:
node --version # Should be 18.x or higher
npm --version服务器进程崩溃
问题:服务器启动但立即崩溃
症状:
- 输出面板中的“服务器进程已退出,代码为X”
- 扩展名在“正在连接”后立即显示“已断开连接”
- 诊断显示“服务器进程正在运行:false”
解决方案:
- 检查服务器日志 在“输出”面板中显示错误消息
- 验证服务器安装:
npm install -g @ai-capabilities-suite/mcp-process- 检查是否存在冲突的全局包:
npm list -g @ai-capabilities-suite/mcp-process- 尝试使用捆绑服务器 (如有):
{
"mcp-process.server.serverPath": "" // Empty = use bundled
}- 检查Node.js版本兼容性:
- 服务器需要Node.js 18.x或更高版本 - 如果需要,更新Node.js
服务器未启动
问题:扩展显示“服务器未运行”
解决方案:
- 检查是否安装了Node.js:
node --version - 安装MCP服务器:
npm install -g @ai-capabilities-suite/mcp-process - 集
mcp-process.server.serverPath如果需要,在设置中 - 检查输出面板是否有错误
- 重新启动VS代码
可执行文件不在允许列表中
问题:“可执行文件不在列表中”错误
解决方案:
- 打开VS代码设置(Ctrl+、/Cmd+、)
- 搜索“mcp进程.可执行文件.allowed可执行文件”
- 将可执行文件添加到数组中
- 服务器将自动重新加载新设置
备选方案:
- 打开命令选项板
- 运行“MCP ACS进程:配置可执行允许列表”
- 将可执行文件添加到
allowedExecutables - 保存并重新启动服务器
进程未出现
问题:已启动的进程未显示在树视图中
解决方案:
- 单击树状图中的刷新图标
- 检查进程是否立即退出
- 检查输出面板是否有错误
- 验证可执行文件是否在列表中
超出资源限度
问题:进程终止,显示“超出CPU/内存限制”
解决方案:
- 打开VS代码设置
- 搜索“mcp-process.resources”
- 增加
defaultMaxCpuPercent或defaultMaxMemoryMB - 检查流程统计数据以查看实际使用情况
- 考虑流程是否合理地需要更多资源
设置未生效
问题:设置已更改,但行为未更改
解决方案:
- 检查设置是否需要重新启动服务器(在描述中查找“注意:更改需要重新启动server”)
- 如果需要重新启动,请单击通知按钮或运行“MCP ACS进程:重新启动服务器”
- 检查输出面板是否存在配置错误
- 运行“MCP ACS流程:验证配置”以检查问题
配置验证错误
问题:验证显示错误或警告
解决方案:
- 仔细阅读错误消息-它解释了问题所在
- 常见问题:
- enableChroot 需要 chrootDirectory 待定 - enableSecurityAlerts 需要 securityAlertWebhook 待定 - 特定于平台的设置(命名空间、chroot)仅适用于Linux/Unix
- 修复VS代码设置界面中的设置
- 重新运行验证以确认修复
导入配置失败
问题:无法导入配置文件
解决方案:
- 验证JSON文件是否有效(使用JSON验证器)
- 检查文件是否包含有效的设置名称
- 查看有关平台特定设置的警告
- 如果从不同平台导入,某些设置可能不适用
- 检查输出面板以获取详细的错误消息
平台特定功能不起作用
问题:Linux命名空间、chroot或其他平台功能不起作用
解决方案:
- 验证您使用的平台是否正确(命名空间使用Linux,chroot使用Unix/Linux)
- 检查您是否具有所需的权限(root或功能)
- 验证内核对该功能的支持
- 检查输出面板是否有特定的错误消息
- 考虑使用Docker实现一致的跨平台行为
未找到配置文件
问题:“找不到配置文件”错误(使用时 useConfigFile: true)
解决方案:
- 集
mcp-process.server.configPath在VS代码设置中 - 使用配置文件的绝对路径
- 验证文件是否存在并且可读
- 检查文件权限
- 推荐: 通过设置来使用VS代码设置
useConfigFile: false
设置UI不显示所有设置
问题:在VS代码设置UI中找不到某些设置
解决方案:
- 确保您正在搜索“mcp进程”(带连字符)
- 尝试搜索特定类别:“mcp-process.enable”、“mcp-process.security”等。
- 检查设置是否因平台而隐藏(某些仅限Linux的设置在Windows/Mac上不会显示)
- 如果刚刚安装了设置,请重新启动VS Code
- 检查扩展是否已激活(在活动栏中查找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
// ^^^^^^^^^^^^^^^^^^^^^^
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() // ← Suggested10.代码操作
快速修复和重构建议:
// 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辅助
- 编码镜头感知:AI可以看到所有7种类型的内联操作,并可以调用它们
- 语义令牌:AI通过语法高亮显示识别与流程相关的代码
- 内联提示:AI在没有明确文档的情况下理解参数类型和单位
- 签名帮助:AI知道确切的函数签名和参数类型
- 诊断意识:AI看到安全警告并自动建议修复
- 调用层次结构:AI可以跨文件跟踪进程创建和使用情况
- 重命名支持:AI可以安全地重构流程变量
- 代码补全:AI获得流程配置的准确建议
- 流程上下文:人工智能可以完全了解正在运行的流程
- 安全意识:AI了解安全边界和限制
- 命令访问: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 processesLSP的AI功能
通过全面的LSP集成,AI助手可以:
- 理解 通过语义标记和悬停信息处理代码
- 导航 使用调用层次结构和定义的流程
- 建议 使用诊断和代码操作进行改进
- 完成 借助签名帮助和补全功能准确编码
- 重构 安全地使用重命名支持
- 执行 使用所有11个MCP命令的操作
- 监视器 通过代码镜头操作获取资源
- 执行 通过理解边界实现安全
自主操作
AI助手可以自主管理流程:
- 启动流程 配置得当
- 监控资源 并检测问题
- 终止进程 需要时
- 管理流程组 适用于复杂的工作流程
- 处理I/O 具有stdin/stdout操作
- 启动服务 用于长时间运行的任务
- 应用安全最佳实践 自动地
需求
- VS Code:1.85.0或更高版本
- Node.js:版本18.x或更高
- MCP ACS过程服务器:全局安装或在设置中指定
- 操作系统:Windows、macOS或Linux
已知问题
- 在慢速网络上,WebSocket连接可能会超时
- CPU负载过高时,进程统计可能会延迟
- 某些进程可能无法报告准确的I/O统计数据
发布说明
1.0.0
初始版本:
- MCP集成过程管理
- 实时资源监控
- 安全边界可视化
- 流程和安全树视图
- 统计网络视图
- GitHub Copilot集成
- 全面的安全执法
贡献
发现错误或有功能请求?请打开一个问题 .
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
详细信息
______________________________________________________________________
为AI代理提供安全的流程管理! 🛡️
