开发服务器管理协议

一个用于管理LLM辅助工作流开发服务器的模型上下文协议(MCP)服务器,提供通过统一接口对多个开发服务器进行程序化控制的功能,包括简单的TUI界面和实验性的浏览器自动化。

  • by Uninen
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Uninen/devserver-mcp

使用说明

DevServer MCP

管理LLM辅助工作流开发服务器的模型上下文协议(MCP)服务器。通过具有简单TUI的统一界面提供对多个开发服务器的编程控制,以及通过Playwright实现的实验性浏览器自动化。

您还可以通过TUI单击打开和关闭服务器。

项目状态

这两者都是 阿尔法 软件和vibe编码练习;这个代码库的大部分是在LLM工具的帮助下编写的。

测试验证了一些功能,如果你碰巧需要YMMV的功能,服务器已经很有用了。

特性

  • 🚀 流程管理:启动、停止和监视多个开发服务器
  • 📊 富途:具有实时日志流的交互式终端界面
  • 🌐 浏览器自动化:用于web测试和自动化的实验性Playwright集成
  • 🔧 LLM集成:完全支持人工智能辅助开发工作流程的MCP协议

安装

uv add --dev git+https://github.com/Uninen/devserver-mcp.git --tag v0.6.0

剧作家(可选)

如果你想使用实验性的Playwright浏览器自动化功能,你必须手动安装Playwright:

# Install Playwright
uv add playwright

# Install browser drivers
playwright install

快速开始

创建一个 devservers.yml 项目根目录中的文件:

servers:
  backend:
    command: 'python manage.py runserver'
    working_dir: '.'
    port: 8000

  frontend:
    command: 'npm run dev'
    working_dir: './frontend'
    port: 3000
    autostart: true

  worker:
    command: 'celery -A myproject worker -l info'
    working_dir: '.'
    port: 5555
    prefix_logs: false

# Optional: Enable experimental Playwright browser automation
experimental:
  playwright: true

配置

VS Code

添加到 .vscode/mcp.json:

{
  "servers": {
    "devserver": {
      "url": "http://localhost:3001/mcp/",
      "type": "http"
    }
  }
}

然后在单独的终端中运行TUI: devservers

克劳德代码

在本地安装服务器:

claude mcp add --transport http devservers http://localhost:3001/mcp/

..或用于项目(将其保存到 .mcp.json 在项目中):

claude mcp add -s project --transport http devservers http://localhost:3001/mcp/

然后在单独的终端中运行TUI: devservers

双子星命令行工具

在中添加服务器配置 settings.json (~/.gemini/settings.json 全球或 .gemini/settings.json 每个项目, 请参阅文档):

...
  "mcpServers": {
    "devservers": {
      "httpUrl": "http://localhost:3001/mcp",
      "timeout": 5000,
      "trust": true
    }
  },
...

然后在单独的终端中运行TUI: devservers

泽德

Zed尚未原生支持远程MCP服务器,因此您需要使用类似的代理 mcp代理.

您可以在助手设置->上下文服务器->添加自定义服务器中使用UI,并添加名称“Devservers”和 命令 uvx mcp-proxy --transport streamablehttp http://localhost:3001/mcp/,或者,您可以手动将其添加到Zed配置中:

  "context_servers": {
    "devservers": {
      "command": {
        "path": "uvx",
        "args": ["mcp-proxy", "--transport", "streamablehttp", "http://localhost:3001/mcp/"]
      }
    }
  },

然后在单独的终端中运行TUI: devservers

用法

运行MCP服务器TUI

在终端中启动TUI:

devservers

现在,您可以监视和控制devserver并查看日志,同时还可以让LLM完全访问服务器及其日志。

MCP工具可用

服务器为LLM交互提供了以下工具:

服务器管理

  1. start_server(名称) -启动已配置的服务器
  2. stop_server(名称) -停止服务器(托管或外部)
  3. get_devserver_statuses() -获取所有服务器状态
  4. get_devserver_logs(名称、偏移量、限制、反向) -获取支持分页的日志
    • offset:起始位置(默认值:0,负值从末尾开始计数)
    • limit:要返回的最大日志数(默认值:100)
    • reverse:最新优先为True,最旧优先为False(默认值:True)

浏览器自动化(实验)

当 experimental.playwright 在配置中设置:

  1. 浏览器导航(url,等待) -将浏览器导航到具有等待条件的URL
  2. 浏览器快照() -捕获当前页面的可访问性快照
  3. browser_console_message(清除、偏移、限制、反转) -获取带有分页的控制台消息
    • clear:检索后清除消息(默认值:False)
    • offset:起始位置(默认值:0,负值从末尾开始计数)
    • limit:要返回的最大消息数(默认值:100)
    • reverse:最新优先为True,最旧优先为False(默认值:True)
  4. 浏览器链接(ref) -使用CSS选择器或元素引用单击页面上的元素
  5. browser_type(ref、text、submit、slow) -使用可选的提交(Enter键)和慢速键入模式在元素中键入文本
  6. browser_resize(宽度、高度) -将浏览器视口调整为指定尺寸
  7. browser_screenshot(完整页面,名称) -截取当前页面的屏幕截图
    • full_page:捕获整页而不是视口(默认值:False)
    • name:屏幕截图的可选文件名(默认:带时间戳的名称)

开发中

使用MCP检查器

  1. 启动服务器: devservers
  2. 启动MCP检查器: npx @modelcontextprotocol/inspector http://localhost:3001

编写MCP检查器脚本

  1. 启动服务器: devservers
  2. 在CLI模式下使用MCP检查器,例如: npx @modelcontextprotocol/inspector --cli http://localhost:3001 --method tools/call --tool-name start_server --tool-arg name=frontend

别处

贡献

欢迎投稿!请遵循 行为准则 当与他人互动时。