1. Conduid
  2. AI
  3. jj-server
MCP server · AI

jj-server

Model Context Protocol (MCP) server for the Jujutsu (jj) version control system

Unclaimed last commit a year ago jjmcpmcp-server
42Fair

Scored 5 days ago · breakdown

About jj-server

jj-server is an MCP server published by git+keanemind in the AI category: model Context Protocol (MCP) server for the Jujutsu (jj) version control system.

The repository has 20 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

Install
npx jj-mcp-server
Claude Code
claude mcp add jj-mcp-server -- npx -y jj-mcp-server
npx
npx -y jj-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (55)

abandonAbandon one or more revisions, rebasing descendants onto their parents in a Jujutsu (jj) repository. Useful for discarding changes or cleaning up history. Parameters: revisions (Revisions to abandon, e.g.,

Parameters not published.

bookmark-createCreate a new bookmark in a Jujutsu (jj) repository. Useful for marking important points in history or creating named branches. Parameters: name (Name of the bookmark to create), revision (Optional revision to point the bookmark at), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-deleteDelete an existing bookmark in a Jujutsu (jj) repository and propagate the deletion to remotes on the next push. Parameters: names (Names of bookmarks to delete), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-forgetForget a bookmark in a Jujutsu (jj) repository without marking it as a deletion to be pushed. Parameters: names (Names of bookmarks to forget), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-listList bookmarks and their targets in a Jujutsu (jj) repository. Useful for reviewing all named points in history. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), template (Optional template for output formatting).

Parameters not published.

bookmark-moveMove existing bookmarks to target revision in a Jujutsu (jj) repository. Useful for updating bookmark positions. Parameters: names (Names of bookmarks to move), revision (Target revision to move bookmarks to), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-renameRename a bookmark in a Jujutsu (jj) repository. Useful for updating bookmark names. Parameters: oldName (Current name of the bookmark), newName (New name for the bookmark), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-setCreate or update a bookmark to point to a certain commit in a Jujutsu (jj) repository. Parameters: name (Name of the bookmark to set), revision (Revision to point the bookmark at), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-trackStart tracking a remote bookmark in a Jujutsu (jj) repository. Parameters: remoteBookmark (Remote bookmark to track, format: bookmark@remote), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

bookmark-untrackStop tracking a remote bookmark in a Jujutsu (jj) repository. Parameters: remoteBookmark (Remote bookmark to untrack, format: bookmark@remote), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

Show all 55 tools
commitUpdate the current change with the specified message in a Jujutsu (jj) repository and then create and move to a new, empty change. This set of actions is jj

Parameters not published.

config-getGet the value of a config option in a Jujutsu (jj) repository. Unlike `jj config list`, the output is unformatted for scripting use. Parameters: name (Name of config option to get), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

config-listList config variables and their values in a Jujutsu (jj) repository. Shows both user and repo-level configs by default. Parameters: name (Optional name of specific config option to list), includeDefaults (Optional flag to include default values), includeOverridden (Optional flag to include overridden values), user (Optional flag to only show user-level config), repo (Optional flag to only show repo-level config), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

config-pathShow the path to config files in a Jujutsu (jj) repository. Useful for directly editing config files. Parameters: user (Optional flag to show user config path), repo (Optional flag to show repo config path), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

config-setSet a config option in a Jujutsu (jj) repository. Updates either user or repo config file. Parameters: name (Name of config option to set), value (Value to set), user (Optional flag to set user-level config), repo (Optional flag to set repo-level config), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

config-unsetUnset a config option in a Jujutsu (jj) repository. Removes from either user or repo config file. Parameters: name (Name of config option to unset), user (Optional flag to unset user-level config), repo (Optional flag to unset repo-level config), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

describeUpdate the change description or other metadata for a revision in a Jujutsu (jj) repository. By default, targets the working-copy revision (`@`). Parameters: message (The new change description to use), revisions (The revision(s) whose description to edit, e.g.,

Parameters not published.

diffCompare file contents between two revisions in a Jujutsu (jj) repository. With the `--from` and/or `--to` options, shows the difference from/to the given revisions. If either is left out, it defaults to the working-copy commit. Parameters: from (Show changes from this revision), to (Show changes to this revision), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), context (Optional number of lines of context to show), stat (Optional flag to show a histogram of changes).

Parameters not published.

editSets the specified revision as the working-copy revision in a Jujutsu (jj) repository. Note: it is generally recommended to instead use `jj new` and `jj squash`. Parameters: revision (The commit to edit, e.g.,

Parameters not published.

evologShow how a change has evolved over time in a Jujutsu (jj) repository. Lists previous commits which a change has pointed to as it was updated, rebased, etc. Parameters: revision (Revision to show evolution for), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), limit (Optional limit on number of revisions to show), patch (Optional flag to show patch compared to previous version).

Parameters not published.

file-annotateShow the source change for each line of a file in a Jujutsu (jj) repository. Useful for understanding how each line of a file has evolved. Parameters: path (Path to the file to annotate), revision (Optional revision to annotate from, defaults to working copy), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

file-chmodSets or removes the executable bit for files in a Jujutsu (jj) repository. Unlike POSIX chmod, this works on Windows and on arbitrary revisions. Parameters: mode (Mode to set,

Parameters not published.

file-listList files in a revision of a Jujutsu (jj) repository. Useful for exploring the repository contents at a specific point in history. Parameters: revision (Optional revision to list, defaults to working copy), paths (Optional paths to filter by), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

file-showPrint contents of files in a revision of a Jujutsu (jj) repository. Similar to Unix cat but works on repository files at any revision. Parameters: paths (Paths of files to show), revision (Optional revision to show from, defaults to working copy), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

file-trackStart tracking specified paths in the working copy of a Jujutsu (jj) repository. By default new files are automatically tracked; this is primarily useful when auto-tracking is disabled. Parameters: paths (Paths to track), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

file-untrackStop tracking specified paths in the working copy of a Jujutsu (jj) repository. The paths must already be ignored via .gitignore or other ignore rules. Parameters: paths (Paths to untrack), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-cloneCreate a new Jujutsu (jj) repository backed by a clone of a Git repo. The Git repo will be a bare git repo stored inside the .jj/ directory. Parameters: source (URL or path of the Git repo to clone), destination (Optional destination directory for the clone), remoteName (Optional name for the newly created remote, default: origin), colocate (Optional flag to colocate the jj repo with the git repo), depth (Optional depth for shallow clone).

Parameters not published.

git-exportUpdate the underlying Git repo with changes made in the Jujutsu (jj) repository. Useful for syncing jj changes back to Git. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-fetchFetch branches and bookmarks from a Git remote into a Jujutsu (jj) repository. Similar to git fetch but preserves the jj-specific state. Parameters: remote (Remote to fetch from, default: origin), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), branches (Optional branch/patterns to fetch, can specify multiple).

Parameters not published.

git-importUpdate the Jujutsu (jj) repository with changes made in the underlying Git repo. Useful for syncing Git changes into jj. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-pushPush branches and bookmarks to a Git remote from a Jujutsu (jj) repository. Similar to git push but preserves the jj-specific state. Parameters: remote (Remote to push to, default: origin), bookmarks (Optional bookmarks to push, can specify multiple), all (Optional flag to push all bookmarks), tracked (Optional flag to push tracked bookmarks), deleted (Optional flag to push deleted bookmarks), allowNew (Optional flag to allow pushing new bookmarks), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-remote-addAdd a Git remote to a Jujutsu (jj) repository. Parameters: name (Name of the remote to add), url (URL of the remote), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-remote-listList Git remotes in a Jujutsu (jj) repository. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-remote-removeRemove a Git remote from a Jujutsu (jj) repository. Parameters: name (Name of the remote to remove), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-remote-renameRename a Git remote in a Jujutsu (jj) repository. Parameters: oldName (Current name of the remote), newName (New name for the remote), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-remote-set-urlSet the URL of a Git remote in a Jujutsu (jj) repository. Parameters: name (Name of the remote), url (New URL for the remote), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

git-rootShow the underlying Git directory of a repository using the Git backend in Jujutsu (jj). Useful for finding the .git directory location. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

initCreate a new Jujutsu (jj) repository backed by a Git repo. Can create a new Git repo or import an existing one. Parameters: destination (Optional destination directory), colocate (Optional flag to colocate the jj repo with the git repo), gitRepo (Optional path to existing git repo to use).

Parameters not published.

interdiffCompare the changes between two commits in a Jujutsu (jj) repository. Shows only the difference between the two diffs, excluding changes from other commits. Parameters: from (First commit to compare), to (Second commit to compare), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), context (Optional number of lines of context to show).

Parameters not published.

logShow the commit history of a Jujutsu (jj) repository. Useful for reviewing past changes and understanding project evolution. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), limit (Optional number of commits to show).

Parameters not published.

newCreate a new, empty change with optional parent revisions in a Jujutsu (jj) repository. Useful for starting a new line of development or feature branch. Parameters: parents (Optional parent revisions, comma separated), repoPath (Optional repo path), cwd (Optional working directory to run the command in).

Parameters not published.

operation-abandonAbandon operation history in a Jujutsu (jj) repository. Discards old operations and reparents descendants onto the root operation. Parameters: operation (Operation or range to abandon), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

operation-diffCompare changes to the repository between two operations in a Jujutsu (jj) repository. Shows what changed between operation states. Parameters: from (Operation to show changes from), to (Operation to show changes to), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), context (Optional number of lines of context to show).

Parameters not published.

operation-logShow the operation log of a Jujutsu (jj) repository. Lists all operations performed on the repository in chronological order. Parameters: limit (Optional limit on number of operations to show), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

operation-restoreCreate a new operation that restores the repo to an earlier state in a Jujutsu (jj) repository. Effectively undoes all operations after the specified one. Parameters: operation (Operation to restore to), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

operation-showShow changes to the repository in an operation of a Jujutsu (jj) repository. Displays what changed in the specified operation. Parameters: operation (Operation to show, defaults to latest), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

operation-undoCreate a new operation that undoes an earlier operation in a Jujutsu (jj) repository. Applies the inverse of the specified operation. Parameters: operation (Operation to undo, defaults to latest), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

rebaseRebase one or more revisions onto a different parent revision in a Jujutsu (jj) repository. Commonly used to move changes to a new base or to clean up commit history. Parameters: source (Revisions to rebase, e.g.,

Parameters not published.

restoreRestore paths from another revision in a Jujutsu (jj) repository. Can undo changes to specific files by restoring them to their previous state. Parameters: source (Optional source revision to restore from, defaults to parent), destination (Optional destination revision to restore into, defaults to working copy), paths (Paths to restore), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

revertApply the reverse of one or more revisions in a Jujutsu (jj) repository. Creates new changes that undo the specified commits. Useful for safely undoing changes. Parameters: revisions (Revisions to revert), destination (Optional destination revision, where to apply the revert), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

showShow description and changes in a revision of a Jujutsu (jj) repository compared to its parent(s). Useful for reviewing the exact changes made in a specific commit. Parameters: revision (The revision to show, defaults to working copy), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), context (Optional number of lines of context to show).

Parameters not published.

squashMove changes from one revision into another revision in a Jujutsu (jj) repository. Only supports whole-file changes (no --interactive flag support). Parameters: source (Source revision to squash from, defaults to working copy), destination (Destination revision to squash into), paths (Optional path patterns to squash, whole paths only, no partial file changes), keepEmptied (Optional flag to keep emptied source revision), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

statusShow the high-level status of the Jujutsu (jj) repository, including the working copy commit, parent commits, and a summary of changes. Useful for getting an overview of the current state of your repository. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

tag-listList tags and their targets in a Jujutsu (jj) repository. Useful for reviewing all tagged points in history. Parameters: names (Optional names of tags to list), repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in), template (Optional template for output formatting).

Parameters not published.

workspace-rootShow the current workspace root directory in a Jujutsu (jj) repository. Useful for determining the base directory of the current workspace. Parameters: repoPath (Optional path to repo root or working directory), cwd (Optional working directory to run the command in).

Parameters not published.

Ask AI

✦

Ask AI about jj-server

Powered by Claude · Grounded in docs

I know everything about jj-server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

4 checks have not been run yet.

README

jj-mcp-server

jj-mcp-server is a Model Context Protocol (MCP) server that exposes Jujutsu (jj) version-control operations as programmable tools. You can integrate it into IDEs, editors, or other clients that support MCP to script and automate your Jujutsu workflows.

Features

  • Expose core jj commands (status, log, diff, rebase, commit, etc.) via MCP tools.
  • Manage bookmarks, operations, and revisions programmatically.
  • Integrate with any editor or language that supports MCP.

Prerequisites

  • Node.js v14+ or later
  • Jujutsu (jj) installed and in your PATH

Usage

Start the MCP server:

npx -y jj-mcp-server

Available Tools

See the source in src/index.ts for the full list. Highlights include:

  • status, log, show, diff, interdiff
  • rebase, commit, new, abandon, revert, restore, edit
  • Bookmark management: bookmark-create, bookmark-list, bookmark-move, etc.
  • Git integration: git-clone, git-push, git-fetch, git-export, etc.
  • File operations: file-annotate, file-list, file-show, file-track, file-untrack, file-chmod

Contributing

Contributions are welcome! Please open issues or pull requests against this repository.

License

This project is licensed under the MIT License. See the LICENSE file for details.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About jj-server

How do I install jj-server?

Run npx jj-mcp-server, then add the server to your MCP client's configuration.

Is jj-server safe to use with an AI agent?

Its trust score is 42 out of 100 (fair). It passes 1 of the 2 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is jj-server still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.