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. |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zcrossoverz/repo-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server