Perforce MCP服务器

一个为Perforce (p4)设计的Model Context Protocol服务器,提供结构化JSON响应和安全默认设置,适用于AI助手和IDE集成。

  • by iPraBhu
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 iPraBhu/mcp-perforce-server

使用说明

MCP性能服务器

mcp-perforce-server 是Perforce的模型上下文协议服务器(p4)具有安全的默认值、结构化的JSON响应以及本机风格和MCP优化的工作流。

它专为需要Perforce访问的AI助手和IDE集成而设计,不依赖于脆弱的shell脚本。

它提供了什么

  • 59个MCP工具,涵盖存储库检查、文件操作、更改列表、审查、作业、标签、流、分析和合规性。
  • 双传输支持:stdio(IDE/CLI)和SSE(用于web客户端的HTTP服务器)。
  • 默认运行时行为安全:
    • P4_READONLY_MODE=true
    • P4_DISABLE_DELETE=true
  • 工具表面的批处理输入,其中本地 p4 支持多目标使用。
  • MCP特定的复合助手,可减少常见查看和搜索工作流程的往返次数。
  • 结构化响应 ok, result,可选 error,可选 warnings,以及 configUsed.
  • MCP客户端看到下划线安全工具名称,例如 p4_changes.
  • 例如,来电也接受历史虚线名称 p4.changes.

突出显示的工作流

服务器在原始数据之上包含更高级别的帮助程序 p4 命令。

  • p4.review.bundle:待定的审核更改列表,其中包含可选的详细信息和审核者
  • p4.change.inspect: describe + fixes + reviews +可选diff+可选文件历史记录
  • p4.path.synccheck:两个仓库路径之间的漂移和同步状态分析
  • p4.file.inspect:每个文件的元数据、历史记录、可选内容和可选责任
  • p4.workspace.snapshot:工作区信息、状态、可选配置、打开的文件和最近的更改
  • p4.search.inspect:使用可选的文件元数据和内容预览对搜索结果进行分组
  • p4.review.prepare:将明确或发现的变更列表准备成可供审查的捆绑包

安装

npm install -g mcp-perforce-server

要求:

  • Node.js 18+
  • Perforce CLI可用作 p4 或 p4.exe
  • 通过有效的Perforce环境 .p4config 或MCP env

快速开始

  1. 安装Perforce CLI并确保 p4 正在打开 PATH.
  2. 在中配置Perforce凭据 .p4config 或通过MCP env.
  3. 将服务器添加到MCP客户端。
  4. 在启用任何可写工具之前,请先在默认的安全配置文件中启动。

示例 .p4config:

P4PORT=ssl:perforce.example.com:1666
P4USER=your-username
P4CLIENT=your-workspace-name
P4PASSWD=your-password-or-ticket

使用全局安装的服务器的MCP配置示例:

{
  "mcpServers": {
    "perforce": {
      "command": "mcp-perforce-server"
    }
  }
}

具有显式凭据的MCP配置示例:

{
  "mcpServers": {
    "perforce": {
      "command": "mcp-perforce-server",
      "env": {
        "P4PORT": "ssl:perforce.example.com:1666",
        "P4USER": "your-username",
        "P4CLIENT": "your-workspace-name",
        "P4PASSWD": "your-password-or-ticket",
        "P4_READONLY_MODE": "true",
        "P4_DISABLE_DELETE": "true"
      }
    }
  }
}

Windows本地仓库示例:

{
  "mcpServers": {
    "perforce": {
      "command": "node",
      "args": ["C:\\Tools\\git-projects\\mcp-perforce-server\\dist\\server.js"]
    }
  }
}

运输方式

服务器支持两种传输模式:

标准传输(默认)

IDE和CLI集成的标准输入/输出传输。每个MCP客户端都会生成自己的服务器进程。

最适合:

  • VS代码、光标、Claude桌面集成
  • CLI工具和本地自动化
  • 单用户工作流
  • 进程隔离安全模型
# Default mode (no flag needed)
mcp-perforce-server

SSE传输(HTTP服务器)

服务器发送事件传输为基于web的客户端运行HTTP服务器。

最适合:

  • Web仪表板和分析UI
  • 团队协作工具
  • 集中部署
  • 多用户环境
  • API集成
# Start SSE server
mcp-perforce-server --transport=sse

# With custom configuration
MCP_SSE_PORT=8080 MCP_SSE_ENABLE_AUTH=true mcp-perforce-server --transport=sse

SSE配置:

变量 默认值 描述
MCP_SSE_PORT 3000 HTTP服务器端口
MCP_SSE_HOST 0.0.0.0 服务器绑定地址
MCP_SSE_PATH /mcp SSE端点路径
MCP_SSE_CORS_ORIGIN * CORS允许的来源
MCP_SSE_ENABLE_AUTH false 启用令牌身份验证
MCP_SSE_AUTH_TOKEN (空) 用于身份验证的承载令牌

SSE端点:

  • 主营业务: GET http://localhost:3000/mcp
  • 健康: GET http://localhost:3000/health
  • 职位: POST http://localhost:3000/mcp

生产SSE示例:

export MCP_SSE_ENABLE_AUTH=true
export MCP_SSE_AUTH_TOKEN="your-secret-token"
export MCP_SSE_CORS_ORIGIN="https://your-dashboard.com"
export P4_READONLY_MODE=true
mcp-perforce-server --transport=sse

📘 有关完整的SSE部署指南,请参阅 SSE_SETUP_GUIDE.md

快速参考:

安全模型

默认运行时配置文件是保守的。

设置 默认值 效果
P4_READONLY_MODE true 块编写功能强大的工具。
P4_DISABLE_DELETE true 积木 p4.delete 即使在启用写入模式时也是如此。

可写工具包括:

  • p4.add, p4.edit, p4.delete, p4.revert, p4.sync
  • p4.changelist.create, p4.changelist.update, p4.changelist.submit, p4.submit
  • p4.resolve, p4.shelve, p4.unshelve
  • p4.copy, p4.move, p4.integrate, p4.merge

刀具表面

主要类别:

  • 存储库和工作空间检查
  • 文件操作和差异化
  • 变更清单和提交
  • 合并、搁置和解析流
  • 搜索和发现
  • 审查和工作流程复合
  • 用户、客户端、流、标签、作业和修复
  • 合规性、审计和运营诊断

显著的本地奇偶校验改进:

  • 命令的批处理样式输入,例如 sync, opened, filelog, annotate, grep, files, dirs, print, fstat, sizes, have, users, streams, jobs,以及 fixes
  • 扩展了工具的本机标志覆盖范围,例如 sync, interchanges, fstat, files, dirs, streams, clients, labels, jobs,以及 sizes
  • 通过以下方式支持面向工作区和仓库到仓库的差异化 p4.diff 和 p4.diff2

配置

大多数安装只需要一小部分变量。

变量 默认值 用途
P4_READONLY_MODE true 默认情况下,保持服务器只读。
P4_DISABLE_DELETE true 除非明确启用,否则禁止删除操作。
P4CONFIG .p4config 向上发现期间使用的配置文件名。
P4_PATH p4 / p4.exe Perforce CLI的自定义路径。
P4_PERFORMANCE_MODE fast 预设: fast, balanced, secure.
P4_WORKFLOW_CONCURRENCY 6 复合工具的最大并发子调用数。
P4_RESPONSE_CACHE true 启用读取响应缓存。
P4_RESPONSE_CACHE_TTL_MAP unset 按工具缓存TTL覆盖。
LOG_LEVEL warn 服务器日志级别。

穿孔连接变量:

  • P4PORT
  • P4USER
  • P4CLIENT
  • P4PASSWD
  • P4CHARSET
  • P4COMMANDCHARSET
  • P4LANGUAGE

有关完整的配置表和示例,请参阅:

发展

npm install
npm run build
npm test
npm run test:integration

当前验证基线:

  • npm run build
  • npm test
  • npm run test:integration

文档

许可证

麻省理工学院