mcpField
P
portcheck

portcheck

本地服务
roystondwork-dev.github.io开发工具15 天前更新

关于 portcheck

portcheck 是面向开发者的跨平台工具,可检查和管理端口及其占用进程。其 MCP 模式让 AI 助手检查并释放端口,命令行还提供远程检查和脚本操作。

主要功能

  1. 01显示监听端口及进程信息
  2. 02查找并验证空闲端口
  3. 03安全停止进程
  4. 04通过 TCP 检查远程主机
  5. 05等待服务就绪或端口释放
  6. 06在可用端口上运行命令

适用场景

  1. 01查明阻塞开发服务器的进程
  2. 02在脚本中分配未占用端口
  3. 03在 CI 中等待服务就绪
  4. 04检查与获授权远程主机的连通性

MCP 相关

`portcheck mcp` 命令可让 Claude Code、Cursor、Copilot 等 AI 助手检查并释放端口。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"roystondwork-dev-portcheck": {
"command": "npx",
"args": [
"-y",
"portcheck-cli"
]
}
}
}
启动命令npx -y portcheck-cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmportcheck-cli0.11.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

portcheck

查看哪些程序正在使用端口、查找空闲端口、释放端口并检查远程主机。
一个静态二进制文件,适用于 macOS、Linux 和 Windows。

持续集成 CodeQL 覆盖率 发布版本 OpenSSF 安全评分卡 OpenSSF 最佳实践 M8ven 评分 Go 参考文档 许可证:MIT

portcheck 演示

端口已被占用?

npx portcheck-cli kill 3000

portcheck 会显示占用端口的程序及其启动者,征求你的许可后再温和地停止它 (绝不会触碰系统进程)。它是更安全的 kill-port, 无需事先安装任何东西。

针对你遇到的错误提供解决方案:Node.js、Next.js、Vite · Python、Django、Flask · Docker · Rails、Spring Boot、Go、.NET、PHP · macOS · Windows · Linux

功能

命令
🔍portcheck list -l列出所有监听套接字及其进程、PID 和用户
✅portcheck 3000端口是否空闲?如果不是,哪个进程占用了它?脚本可使用退出码 0 或 1
🆓portcheck free 3000-3999 -n 3查找空闲端口,并通过实际绑定进行验证
🛑portcheck kill 8080先发送 SIGTERM,再发送 SIGKILL;拒绝终止 PID 1、你的 Shell 和系统进程
🧹portcheck servers --older-than 1d找出你忘记关闭的开发服务器:按运行时间从长到短列出监听进程及其项目和运行时长;使用 --stop 清理
📡portcheck scan db.internal -p 5432对远程主机进行限速 TCP 连接检查。无需 root 权限
⏳portcheck wait db:5432 -t 60s阻塞等待服务接受连接,或等待端口空闲。专为 CI 打造
▶️portcheck run --port 3000 --next -- npm run dev在空闲端口上启动命令($PORT、{port});使用下一个空闲端口,或停止占用端口的进程
🩺portcheck doctor检查 .portcheck.yaml 中列出的端口,并为每个问题提供修复方案
🖥️portcheck实时、可排序、可筛选的 TUI。无需退出即可停止进程
🌐浏览器扩展Edge(以及 Chrome):查看哪个进程为 localhost 标签页提供服务;无人监听时显示 off;可从弹出窗口停止进程(指南)
🧩VS Code 扩展将终端中的“端口已被占用”错误变为一键修复;在侧边栏查看监听端口(指南)
🤖portcheck mcpAI 助手(Claude Code、Cursor、Copilot……)可自行检查和释放端口(指南)
⌨️Raycast从 Mac 启动器搜索端口、检查端口、终止占用端口的进程并查找空闲端口
✍️Neovim:Portcheck 选择器,可检查/终止进程/查找空闲端口;在 :terminal 中遇到“端口已被占用”时可停止占用进程
🔌菜单栏/托盘应用在 macOS 菜单栏或 Windows/Linux 系统托盘中查看监听端口:两次点击即可停止进程、打开或复制
🧠JetBrains 插件IntelliJ IDEA、WebStorm、PyCharm、GoLand……:“运行/调试”中遇到“端口已被占用”时,可选择 停止并重新运行;另有“端口”工具窗口
VS Code 扩展

当开发服务器因端口被占用而启动失败时,扩展会指出占用端口的进程并提供修复方式:停止该进程后重新运行,或改用下一个空闲端口重新运行。

portcheck 在 VS Code 中的演示:npm run dev 因 EADDRINUSE 失败,扩展指出占用 3000 端口的进程,并停止该进程后重新运行命令

从 VS Code Marketplace 安装 Portcheck - Port in Use Fixer(在 VS Code 中搜索“portcheck”),或从 Open VSX 安装(适用于 VSCodium、Cursor、Windsurf)。portcheck 内置其中。

JetBrains 插件

在 IntelliJ IDEA、WebStorm、PyCharm、GoLand 及其他 JetBrains IDE 中,当运行配置因端口被占用而失败时,通知会指出占用端口的进程,并提供 停止并重新运行 选项;端口 工具窗口会列出所有监听端口。

▶ 观看 20 秒演示

portcheck 在 IntelliJ IDEA 中的演示:运行因“地址已被占用”而失败,通知指出占用 3000 端口的 Python 进程,并提供“停止 Python 并重新运行”选项

从最新版本下载并安装 portcheck-jetbrains-<version>.zip(Settings → Plugins → ⚙ → Install Plugin from Disk…);该插件正在 JetBrains Marketplace 审核中(指南)。

浏览器扩展

在每个 localhost 标签页上,徽章会显示为其提供服务的进程名称;如果没有进程监听,则显示 off;弹出窗口会显示启动该进程的人,并安全地停止它。

portcheck 浏览器弹出窗口,显示 localhost:3000 的状态:正在运行、node 及其 pid、启动者、命令和用户、停止进程,以及本机正在监听的端口

从 Microsoft Edge Add-ons 安装 Portcheck - Localhost Port Inspector,然后运行一次 portcheck browser install。 对于 Chrome、Brave 和 Chromium,请从 最新版本 下载 zip 并加载(指南)。

亮点
  • 在所有操作系统上使用相同的命令和输出。 它取代 lsof -i、netstat -ano、ss -ltnp 和 kill。
  • 专为脚本设计。 --json 遵循版本化架构,退出代码稳定,结果输出到 stdout,消息输出到 stderr。
  • 支持容器和 WSL。 Docker/Podman 发布的端口或从 WSL 转发的端口会显示容器或发行版;kill 会告诉你如何在那里停止进程,而不是杀掉代理。
  • 如实说明权限限制。 对于隐藏的进程所有者,会标记为隐藏,并提示如何查看。
  • 也是一个 Go 库。 请参阅 pkg/。

安装

# Homebrew (macOS, Linux)
brew install roystondwork-dev/tap/portcheck

# winget (Windows; the package is waiting for Microsoft's review)
winget install roystondwork-dev.portcheck

# Scoop (Windows)
scoop bucket add portcheck https://github.com/roystondwork-dev/scoop-bucket
scoop install portcheck

# npm (any OS): run it without installing
npx portcheck-cli 3000

# PyPI (any OS)
pipx install portcheck-tool

# Go 1.26+
go install github.com/roystondwork-dev/portcheck/cmd/portcheck@latest

amd64/arm64 的 .deb、.rpm、.apk 和压缩包可在发布页面获取。涵盖所有制品的校验和文件使用 cosign(无密钥)签名,发布包还附带 SBOM 和 SLSA 来源证明;请参阅验证下载文件。

快速入门

$ portcheck 3000
PORT  PROTO  STATUS  PID    PROCESS  USER
3000  tcp    in-use  42379  node     alice

$ portcheck kill 3000
About to terminate:
  PID 42379  node  (port 3000)
Proceed? [y/N] y
PID    PROCESS  RESULT      DETAIL
42379  node     terminated

$ portcheck free 3000-3999 -n 2 -o plain
PORT
3000
3001

$ portcheck list -l --json | jq '.data.sockets[] | {port: .localPort, name: .process.name}'

📖 文档: https://roystondwork-dev.github.io/portcheck/ (快速入门 · 指南 · CLI 参考 · 各操作系统的权限 · 常见问题)

用作 Go 库

res, err := inspect.NewSystem().List(ctx, inspect.Filter{Ports: portspec.Single(3000), ListeningOnly: true})
if err != nil {
	log.Fatal(err)
}
for _, s := range res.Sockets {
	if s.Process != nil { // nil when the owner is hidden from your user
		fmt.Println(s.PID, s.Process.Name)
	}
}

请参阅库指南,了解 portspec、inspect、freeport、killer、scan、waitfor 和 containers。

负责任地使用

portcheck scan 会建立普通的 TCP 连接,不具备隐蔽功能。只能扫描你拥有或获准测试的主机和网络。

参与贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解设置和标准(每项更改都会在 Linux、macOS 和 Windows 上进行测试,且库的覆盖率门槛为 100%),并查看 TASKS.md 了解路线图和状态。 请遵守行为准则,并按照 SECURITY.md 中的说明私下报告漏洞。

许可证

MIT © 2026 Royston D 和 portcheck 贡献者

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。