使用说明
赢得任务人mcp
一个轻量级的MCP(模型上下文协议)服务器,为AI代理提供Windows进程和端口管理工具。不再脆弱 tasklist | findstr 或 netstat -ano 管道——只是可靠工作的结构化跨shell工具。
为什么?
人工智能代理在开发过程中经常需要管理进程——杀死卡住的开发服务器,找出阻塞端口的原因,或列出正在运行的服务。通过Windows上的Bash执行此操作是脆弱的: tasklist 输出解析中断, netstat 需要管道穿过 findstr,PowerShell命令存在引用问题。此MCP服务器提供干净、结构化的工具,无论shell如何,这些工具都能正常工作。
需求
- Windows 10或更高版本 (使用Windows 10以来可用的Win32 API)
- 转到1.25+(仅从源代码构建)
快速开始
下载二进制文件
预构建的二进制文件可在 发布 页面。
从源代码构建
git clone https://github.com/lexandro/win-taskman-mcp.git
cd win-taskman-mcp
go build -trimpath -ldflags="-s -w" -o win-taskman-mcp.exe .
在克劳德代码中注册
这 register 子命令会自动将服务器添加到Claude Code的配置中,无需手动编辑JSON。
# Register for a project (creates .mcp.json in the project root)
./win-taskman-mcp.exe register project /path/to/your/project
# Or register globally for all projects (updates ~/.claude.json)
./win-taskman-mcp.exe register user
就是这样——Claude Code将自动发现并使用流程管理工具。
手动配置
您也可以直接编辑配置文件:
{
"mcpServers": {
"win-taskman-mcp": {
"command": "C:\\path\\to\\win-taskman-mcp.exe"
}
}
}
MCP工具
list_processes
列出正在运行的Windows进程。可选择按名称过滤。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
filter |
string | no | 进程名称上不区分大小写的子字符串匹配 |
{ "filter": "node" }
答复:
pid:1234 name:node.exe ppid:5678
pid:2345 name:node.exe ppid:5678
结果以100个条目为限。使用 filter 缩小范围。
kill_process
通过PID终止Windows进程。随着 tree: true 整个进程树都死了——在Windows上, TerminateProcess 不会杀死儿童,因此开发服务器的孤儿工人将继续持有该端口。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pid |
number | yes | 要终止的进程ID |
tree |
boolean | no | 同时杀死所有子进程 |
{ "pid": 1234, "tree": true }
答复:
Killed process tree of 1234 (3 processes)
pid:1234 name:cmd.exe
pid:5678 name:node.exe
pid:9012 name:esbuild.exe
get_process_info
获取一个进程的详细信息:名称、父PID、线程、内存使用情况、可执行路径和命令行。命令行告诉具有相同名称的多个进程(例如 node.exe).用途 ProcessCommandLineInformation (Windows 8.1+)--无需读取进程内存。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pid |
number | yes | 要检查的进程ID |
{ "pid": 1234 }
答复:
pid:1234 name:node.exe ppid:880 threads:14 working_set_mb:120.3 private_mb:98.1
path:C:\Program Files\nodejs\node.exe
cmdline:"C:\Program Files\nodejs\node.exe" server.js --port 3000
无法读取的字段(受保护的系统进程)显示 (unavailable).
find_process_by_port
查找哪个进程正在使用TCP或UDP端口。扫描IPv4和IPv6表——仅绑定的开发服务器 [::] (在Windows上与Node.js/Bun常见)也可以找到。返回PID、进程名称、协议和连接状态。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
port |
number | yes | 要查找的TCP或UDP端口号 |
{ "port": 3000 }
答复:
pid:1234 name:node.exe port:3000 proto:TCP state:LISTEN local:0.0.0.0 remote:0.0.0.0:0
pid:1234 name:node.exe port:3000 proto:TCP state:LISTEN local:::
UDP行没有状态或远程地址(无连接):
pid:5678 name:dnsmasq.exe port:5353 proto:UDP local:0.0.0.0
kill_process_by_port
使用TCP或UDP端口(IPv4和IPv6)终止进程。单步:找到进程并杀死它 tree: true 每个端口所有者的子进程也会死亡。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
port |
number | yes | TCP或UDP端口号--使用此端口终止进程 |
tree |
boolean | no | 同时杀死每个端口所有者的所有子进程 |
{ "port": 3000, "tree": true }
答复:
Killed pid:1234 name:node.exe (was on port 3000)
Killed pid:5678 name:esbuild.exe (tree child)
代币效率
所有输出都旨在最大限度地减少上下文窗口的使用:
- 紧凑键:值格式 —
pid:1234 name:node.exe而不是冗长的表格 - 无装饰铬 --无方框图、横幅或冗余标题
- 有限的结果 --最多100个进程,报告截断
- 文本错误 —
Error: access denied不是堆栈跟踪 - 工具注释 —
list_processes,get_process_info,以及find_process_by_port声明readOnlyHint,因此像Claude Code这样的MCP客户端可以在没有权限提示的情况下运行它们;kill工具声明destructiveHint
建筑
main.go--入口点,CLI子命令调度server/--MCP服务器设置、工具注册(stdio传输)tools/--MCP工具处理程序(进程列表/终止/信息、端口查找/终止)taskman/-Windows任务管理核心(Win32 API调用通过golang.org/x/sys/windows)register/—registerClaude Code配置自动注册的子命令
沟通
- 仅限标准MCP传输(无HTTP,无开放端口)
- 记录到stderr,从不记录到stdout
- 所有输出AI优化:紧凑按键:值格式,无装饰铬
发展
# Build
go build -trimpath -ldflags="-s -w" -o win-taskman-mcp.exe .
# Test
go test ./...
# Vet
go vet ./...
许可证
麻省理工学院
