mcpField
F
finding-dev-server-url

finding-dev-server-url

github.com/revitalb-port开发060 次安装10 周前更新
代码仓库

关于 finding-dev-server-url

面向 Cursor 的技能,通过检查终端输出文件来查找正在运行的开发服务器、提取 URL 和端口,并可在内置浏览器中打开选定服务。

主要功能

  1. 01列出 Cursor 终端输出文件
  2. 02读取进程和命令元数据
  3. 03查找服务器 URL 和端口
  4. 04报告错误和已停止的进程
  5. 05可选在浏览器中打开服务器

适用场景

  1. 01查找运行中开发服务器的 URL
  2. 02检查本地项目使用的端口
  3. 03识别服务器启动冲突
  4. 04打开选定的本地应用进行检查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/revitalb-port/skills-registry-demo --skill finding-dev-server-url

安装后在 Claude Code 中输入/finding-dev-server-url确认已加载。

详细介绍

查找开发服务器 URL

检测正在运行的开发服务器、它们使用的端口,并打开服务器。

工作原理

Cursor 会将实时终端输出存储在文本文件中。每个终端都有一个对应的文件,位于:

<terminals_folder>/<id>.txt

终端文件夹路径由系统上下文提供。每个文件都包含元数据(pid、cwd、last command),后面是完整的终端输出。

工作流

1. 列出所有终端
ls <terminals_folder>/*.txt
2. 读取每个终端的元数据

读取每个终端文件的前约 10 行,查看:

  • pid — 进程 ID
  • cwd — 工作目录
  • last_command — 正在运行的命令(例如 npm run dev、pnpm dev、python manage.py runserver)

跳过最后一条命令明显不是服务器的终端(例如 git status、ls、cd)。

3. 扫描服务器 URL

读取看起来正在运行服务器的终端的完整内容。搜索以下模式:

框架模式
Next.jsLocal: http://localhost:XXXX 或 ▲ Ready
ViteLocal: http://localhost:XXXX/
Create React AppLocal: http://localhost:XXXX
Expresslistening on port XXXX 或 listening at http://...
DjangoStarting development server at http://127.0.0.1:XXXX/
RailsListening on http://127.0.0.1:XXXX
FlaskRunning on http://127.0.0.1:XXXX
GoListening on :XXXX 或 http server started on :XXXX
PHPDevelopment Server (http://localhost:XXXX) started
Remixhttp://localhost:XXXX
Astrohttp://localhost:XXXX
Nuxthttp://localhost:XXXX

用于匹配大多数服务器输出的正则表达式:

https?://(localhost|127\.0\.0\.1|0\.0\.0\.0)(:\d+)

还要检查独立的端口模式:

(listening|started|running|ready|serving).*(port\s*|:)\s*(\d{4,5})
4. 报告

打印摘要:

Dev servers found:
  Terminal 1 (pid 12345) — npm run dev → http://localhost:3000 (cwd: /Users/me/app)
  Terminal 3 (pid 67890) — python manage.py runserver → http://127.0.0.1:8000 (cwd: /Users/me/api)

如果未找到服务器,请说明这一点并建议启动一个服务器。

5. 在浏览器中打开(可选)

如果用户想查看应用,请使用 Cursor 内置的浏览器:

browser_navigate → http://localhost:<port>

然后截取屏幕截图,确认页面正常显示:

browser_take_screenshot

提示

  • 如果找到多个服务器,请询问用户要打开哪一个
  • 如果终端显示错误(例如 EADDRINUSE、address already in use),请报告冲突
  • 如果服务器已崩溃(进程已退出),也请注明 — 检查终端文件末尾的 exit_code
  • 常见默认端口:Next.js(3000)、Vite(5173)、Django(8000)、Rails(3000)、Flask(5000)、Go(8080)

评论

支持 Markdown