Token导航 LogoToken导航TokenDH.com
Jujutsu MCP logo
开发工具stdio官方级别未说明来源级核验

Jujutsu MCP

MCP Server

Jujutsu MCP服务器为AI代理提供结构化访问Jujutsu版本管理功能的工具集,支持智能操作、冲突检测和安全撤销等功能。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
版本控制PythonCursorCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

solle458

提供方

solle458

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m jujutsu_mcp

详细介绍

Jujutsu MCP服务器

用于Jujutsu(jj)版本控制系统的MCP(Model Context Protocol)服务器。该服务器提供了一套明确定义的工具,AI代理为Jujutsu强大的版本控制功能提供结构化访问。

机能

  • 结构化版本访问:获取修订日志和详细信息作为JSON结构
  • 智能操作:使用revset执行重基、挤压和其他操作
  • 冲突检测:程序性地识别、分析冲突
  • 安全的安东:使用完整的操作历史记录跟踪
  • 状态监视:获取当前存储库状态,包括冲突和未提交更改

安装

前提条件

  • Python 3.11以上
  • 柔术 安装(jj),可在PATH中使用
  • 尼克斯 (可选,可再现的开发环境用)
  • 紫外线 (Python包管理器)

使用Nix时(推荐)

  1. 进入开发壳:
   nix develop
  1. 安装依赖关系:
   uv sync

手动安装

  1. 安装依赖关系:
   uv sync
  1. 激活虚拟环境:
   source .venv/bin/activate

使用方法

运行MCP服务器

python -m jujutsu_mcp

或者,使用uv:

uv run python -m jujutsu_mcp

MCP工具

服务器提供以下工具:

get_log

获取修订日志作为结构化图表。

参数:

  • limit (可选):要返回的最大修订版本数

返回值: 包含修订和当前修订的修订图表

describe_revision

获取特定修订版本的详细信息。

参数:

  • revision_id:版本标识(@, @-, main 等的revset也可以)

返回值: 版本信息,包括说明、作者、父代和冲突状态

smart_rebase

使用revset执行重基操作。

参数:

  • source:源修订
  • destination:目标修订

返回值: 成功消息

undo_last_op

安全释放最后一个操作。

返回值: 有关取消操作的信息

new_change

创建新更改(jj new 中所述修改相应参数的值。

参数:

  • parent (可选)父版本。默认值为当前工作副本。

返回值: 新版本标识

squash_changes

将一个修订的更改挤压到另一个修订。

参数:

  • revision:要挤压的修订
  • into:目标修订

返回值: 成功消息

get_status

获取当前存储库状态。

返回值: 当前版本、未提交的更改状态、冲突

resolve_conflicts

发现并分析修订版中的冲突。

参数:

  • revision (可选):要检查的修订版,默认值为 @)

返回值: 冲突信息列表

设定

自动启动Cursor MCP服务器设置

要在Cursor中自动启动该MCP服务器,必须在Cursor设置中进行设置。

选项1:项目级别设置(建议)

~/.cursor/mcp.json 在(或项目根目录)中创建以下文件:

{
  "mcpServers": {
    "jujutsu-mcp": {
      "command": "/path/to/jujutsu-mcp/.venv/bin/python",
      "args": [
        "-m",
        "jujutsu_mcp"
      ],
      "cwd": "/path/to/jujutsu-mcp",
      "env": {
        "PYTHONPATH": "/path/to/jujutsu-mcp/src"
      }
    }
  }
}

重要:

  • /path/to/jujutsu-mcp 将替换为此项目目录的实际绝对路径。
  • 首先,在jujutsu-mcp目录中 uv sync 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
  • .venv 缺少支持的问题uv sync 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

关于工作区路径检测:MCP服务器使用多种方法自动检测jj存储库根目录:

  1. 环境变数(CURSOR_WORKSPACE_PATH, WORKSPACE_PATH, PWD)
  2. 快速通道上下文元数据(如果可用)
  3. 从当前目录 jj root 命令
  4. .jj 目录递归父目录搜索

从另一个存储库使用MCP服务器 Error: There is no jj repo in "." 在动态输入提示中单击env 您可以添加到节中以显式设置工作空间:

{
  "mcpServers": {
    "jujutsu-mcp": {
      "command": "/path/to/jujutsu-mcp/.venv/bin/python",
      "args": [
        "-m",
        "jujutsu_mcp"
      ],
      "cwd": "/path/to/jujutsu-mcp",
      "env": {
        "PYTHONPATH": "/path/to/jujutsu-mcp/src",
        "CURSOR_WORKSPACE_PATH": "${workspaceFolder}"
      }
    }
  }
}

注意: ${workspaceFolder} 是占位符。有时Cursor会自动展开,但如果它不工作,则必须手动设置实际路径或依赖于自动检测机制。

uv run 使用的替代方法 (上述不动作时):

{
  "mcpServers": {
    "jujutsu-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/jujutsu-mcp",
        "python",
        "-m",
        "jujutsu_mcp"
      ],
      "cwd": "/path/to/jujutsu-mcp",
      "env": {
        "PYTHONPATH": "/path/to/jujutsu-mcp/src",
        "CURSOR_WORKSPACE_PATH": "${workspaceFolder}"
      }
    }
  }
}

选项2:全局设置

对于macOS,编辑或创建:

~/Library/Application Support/Code/User/globalStorage/tencent-cloud.coding-copilot/settings/Craft_mcp_settings.json

对于Windows:

%APPDATA%\Code\User\globalStorage\tencent-cloud.coding-copilot\settings\Craft_mcp_settings.json

对于Linux:

~/.config/Code/User/globalStorage/tencent-cloud.coding-copilot/settings/Craft_mcp_settings.json

请添加与选项1相同的设置。

使用Nix环境时

如果使用Nix,则可以将其设置为使用Nix环境:

{
  "mcpServers": {
    "jujutsu-mcp": {
      "command": "nix",
      "args": [
        "develop",
        "--command",
        "uv",
        "run",
        "python",
        "-m",
        "jujutsu_mcp"
      ],
      "cwd": "/path/to/jujutsu-mcp"
    }
  }
}

注意:设置后,Cursor将在启动时自动启动MCP服务器。你不需要每次都手动启动。

故障排除

错误:“There is no jj repo in”.“”

如果MCP服务器无法检测到jj存储库根目录,则会发生此错误。服务器使用多种发现方法:

  1. 环境变数: CURSOR_WORKSPACE_PATH, WORKSPACE_PATH, PWD 查看项目中可用的所有族
  2. 快速通道上下文:尝试从MCP请求上下文中提取工作空间
  3. jj root命令:从当前目录 jj root 执行
  4. 再帰的検索:在父目录中 .jj 搜索目录(最多20层)

解决方法:

  1. 在MCP设置中设置环境变量:单击功能区上 env 在您查看完详细信息后,单击 CURSOR_WORKSPACE_PATH 添加(请参见上面的选项1)
  1. 确保在jj存储库中:MCP服务器 .jj 必须找到目录。使用的工作空间 jj init 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积
  1. 检查MCP服务器日志:启用调试日志以确定正在尝试哪种检测方法:
   {
     "mcpServers": {
       "jujutsu-mcp": {
         "command": "/path/to/jujutsu-mcp/.venv/bin/python",
         "args": ["-m", "jujutsu_mcp"],
         "env": {
           "PYTHONPATH": "/path/to/jujutsu-mcp/src",
           "PYTHONUNBUFFERED": "1"
         }
       }
     }
   }
  1. 手动设置工作空间:如果自动检测失败,则可以手动将工作空间路径添加到MCP设置的环境变量中

Git认证设定

有关对GitHub的推送操作的Git认证设定的详细步骤Git认证设置指南来修改标记元素的显示属性。

本指南包括:

  • SSH密钥认证(推荐)
  • HTTPS用のPersonal Access Token(PAT)设定
  • 验证问题故障排除
  • 安全认证最佳实践

光标规则

该项目包括Cursor Rules(.cursor/rules/jujutsu-policy.mdc):

  • 总是 git 而不是直接使用 jj 使用命令
  • jj new 中单独创建工作单位
  • 频繁提交有意义的说明
  • 在进行更改之前了解修订图表
  • jj evolog 使用了解冲突历史记录

开発

项目结构

jujutsu-mcp/
├── flake.nix                 # Nix環境定義
├── flake.lock                # Nixロックファイル
├── pyproject.toml            # Python依存関係
├── uv.lock                   # uvロックファイル
├── src/
│   └── jujutsu_mcp/
│       ├── __init__.py
│       ├── __main__.py       # エントリーポイント
│       ├── server.py         # MCPサーバー実装
│       ├── jj_commands.py    # jjコマンド実行ロジック
│       └── models.py          # データモデル
├── tests/                    # テストファイル
└── .cursor/
    └── rules/
        └── jujutsu-policy.mdc # Cursor Rules

运行测试

uv run pytest

代码格式

uv run ruff check .
uv run ruff format .

体系结构

此项目遵循四层体系结构:

  1. 基础架构层:可重复的开发环境
  2. 逻辑层(MCP服务器):对jj命令的结构化JSON访问
  3. 策略层(.mdc Rules):代理行为准则
  4. 実行层:高级工作流(冲突解决、时间旅行)

许可证

Apache许可证2.0

分发

该项目在版本控制中使用Jujutsu,在协作中使用GitHub。提供时:

  1. 开始新工作: jj new -m "Feature: description" 在中创建新更改
  2. 进行变更:根据需要编辑文件
  3. 频繁提交: jj describe -m "明確なコミットメッセージ" 添加有意义的提交消息
  4. 与远程同步: jj git fetch 中获取最新更改,并根据需要重新基于
  5. 推到GitHub: jj git push --change @- 使用推送更改
  6. 合并更改:推送前 jj squash 对较大场景进行渲染期间已观察到该故障

开发工作流

# 新しい機能を開始
jj new -m "Feature: add new functionality"

# 変更を行い、頻繁にコミット
jj describe -m "Implement core logic"
jj describe -m "Add error handling"

# プッシュ前にリモートと同期
jj git fetch
jj rebase -o main@origin

# GitHubにプッシュ
jj git push --change @-

GitHub同期

  • 推送更改: jj git push --change @- (推送当前更改)
  • 推送书签: jj git push --bookmark (推送特定书签)
  • 获取更新: jj git fetch (从远程获取)
  • 同步工作流: jj git fetch && jj rebase -o main@origin (获取并重基)

有关详细的指导方针和最佳实践,请参见.cursor/rules/jujutsu-policy.mdc 来修改标记元素的显示属性。

目录标签

目录标签

版本控制PythonCursor本地部署AI工具开发工具冲突检测安全撤销

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP