repo-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REPO_BRIDGE_AUTH | No | Authentication mode: 'oauth', 'path-token', or 'none'. Defaults to 'none' for loopback-only access. | none |
| REPO_BRIDGE_TOKEN | No | Authorization passphrase or shared secret. Required when REPO_BRIDGE_AUTH is 'oauth' or 'path-token'. | |
| REPO_BRIDGE_PERMISSION | No | Permission level: 'read_only', 'edit', 'develop', or 'full'. Defaults to 'develop'. | develop |
| REPO_BRIDGE_WORKSPACES | No | List of workspace paths in the format 'name=/path/to/repo', separated by spaces or commas. Determines which directories the server can access. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| workspace_listA | List repositories the bridge can open and which one is currently active. Call this first when you do not know what is available. |
| workspace_openA | Open a local repository and return a full project brief: languages, build system, detected build/test/lint commands, module layout, git state, and the repo's AGENTS.md / CLAUDE.md instructions. Accepts an alias from workspace_list or an absolute path inside a configured root. Makes the workspace active for subsequent tool calls. |
| workspace_infoA | Current state of a workspace without re-reading the repository: branch, working-tree changes, recent commits, detected commands, and everything this bridge session has already changed. Use this to resume work ("continue on quantix"). |
| repo_open_remoteA | Clone (or refresh) a remote Git repository into an isolated managed workspace and check out a branch. Use for work on a repository that is not already on this machine. Returns the same project brief as workspace_open. Each task gets its own workspace so parallel tasks cannot interfere. |
| workspace_closeA | Stop tracking a workspace. For managed (cloned) workspaces you can also delete the directory to reclaim disk. Never deletes a local workspace's files. |
| list_dirA | List files and directories. Use for orientation in an unfamiliar area of the repo. Build outputs, node_modules and .git are skipped automatically. Prefer search_code when you are looking for something specific. |
| read_fileA | Read a file as text. Returns exact file content (no line numbers by default) so it can be copied verbatim into edit_file anchors. For large files pass start_line/end_line, or use search_code first to find the region worth reading. Credential files (.env, keys, cloud config) are never returned. |
| search_codeA | Search file contents across the repository and return matching lines with file:line locations. This is the primary way to find code — far cheaper than reading files. Supports literal or regex patterns, glob filters, and surrounding context lines. Respects .gitignore. |
| find_filesA | Find files by name or glob pattern (e.g. "**/Service.java", "**/test_.py"). Use when you know roughly what a file is called but not where it lives. |
| write_fileA | Create a new file, or replace / append to an existing one. Use this for NEW files. To change part of an existing file use edit_file instead — it is safer and much cheaper than resending the whole file. |
| edit_fileA | Make targeted edits to an existing file by replacing exact text. Each edit's old_string must appear exactly once (include surrounding lines to disambiguate) unless replace_all is set. All edits are applied atomically — if any anchor fails to match, the file is left untouched and you are told why. This is the preferred way to modify code. |
| move_pathC | Move or rename a file or directory inside the workspace. |
| delete_pathA | Delete a file, or a directory tree with recursive=true. Deleting the workspace root is refused. Prefer deleting specific files over directories. |
| create_dirA | Create a directory (including parents). write_file already creates parent directories, so this is only needed for empty directories. |
| file_infoA | Check whether a path exists and get its size and modification time, without reading it. |
| run_commandA | Run a development command in the workspace (build tools, package managers, test runners, git, language toolchains). Commands run WITHOUT a shell: pipes, redirects, && and ; are rejected — issue separate calls instead. Only allowlisted executables are permitted; destructive commands require confirm=true. Prefer run_build / run_tests / run_lint, which pick the right command for this project automatically. |
| run_buildA | Build the project using the build command detected from the repository (Maven, Gradle, npm/pnpm/yarn script, cargo, go, dotnet, make…). Returns exit code and output with error lines preserved even when the log is long. |
| run_testsA | Run the project test suite using the command detected from the repository. Failing output is summarised with the failure lines pulled out, so you can go straight from "tests failed" to the responsible code. This is the tool to use in an implement → test → fix loop. |
| run_lintA | Run the project linter / static checks using the command detected from the repository (eslint, ruff, clippy, go vet, spotless…). |
| git_statusA | Current branch, upstream tracking, ahead/behind counts, and every staged / unstaged / untracked file. Check this before committing, and to notice user changes you did not make. |
| git_diffA | Show changes as a unified diff. against="worktree" (default, unstaged changes), "staged", "head" (staged + unstaged), or a branch/commit name to compare the current branch against it (uses the merge base). Use stat_only=true first on a large change to see which files moved before pulling in the full diff. |
| git_logA | Recent commits, newest first. Useful for matching the project's commit-message conventions before committing. |
| git_branchA | List branches, or create / switch to one. Creating a feature branch is the normal first step before making changes, since commits to protected branches are refused. |
| git_commitA | Stage and commit changes. By default every modified and untracked file is staged; pass |
| git_restoreA | Discard changes to specific files, or unstage them. This destroys uncommitted work, so it requires confirm=true and specific paths — it will never discard everything at once. |
| bridge_statusA | What this bridge is allowed to do: permission level, which capabilities are enabled, which executables may run, timeouts and output limits, protected branches, and whether GitHub/GitLab tokens are configured. Check this when a tool is refused, or before planning work that needs to push. |
| report_changesA | Summarise everything done in this workspace: files changed (with per-file line counts from git), commands run and whether they passed, git operations, current branch and commit state. Use this to write an accurate final report instead of relying on memory — and to see what is still uncommitted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
The tools mostly target distinct operations—workspace management, file operations, command execution, and git actions are clearly separated. However, write_file/edit_file and run_command/run_build/run_tests/run_lint have overlapping capabilities that could cause misselection, though their descriptions and intended use cases mitigate ambiguity.
Naming follows several conventions: verb-first (read_file, run_build), domain-prefix-first (workspace_open, git_status, bridge_status), and a few irregular names like repo_open_remote and file_info. While each group is internally consistent, the lack of a single predictable pattern makes the full set harder to navigate.
27 tools is a substantial number, but the server's scope spans workspace management, file editing, command execution, and git workflows, so most tools serve a distinct purpose. The count is at the high end but not unreasonable given the breadth; still, it exceeds the typical well-scoped range.
The tool set covers the main workflows: opening and managing workspaces, reading and editing files, running builds/tests/lints, and common git operations (commit, branch, diff, status, log, restore). Minor gaps exist—no explicit push/pull (though repo_open_remote refreshes clones) and no stash or tag operations—but these are workable via run_command or are intentionally restricted.