Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

docs(git): clarify unconfined default scope and repository confinement options in README and CLI

Abierto Apto para principiantes
#5,230 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
74/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
git, python

Línea de trabajo

Lee la sección Configuration de src/git/README.md y la opción --repository en src/git/src/mcp_server_git/__init__.py; el issue también menciona src/git/src/mcp_server_git/server.py y src/git/tests/test_entrypoints.py. Confirma cómo afecta allowed_repository=None al acceso al repositorio y, después, actualiza la advertencia, la ayuda de la CLI, el docstring y la aserción de ayuda descritos en el issue. El trabajo estará terminado cuando esos elementos expliquen el acceso sin restricciones predeterminado y pase la prueba específica de ayuda.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Server:

git (mcp-server-git)

Server Version / Environment:
  • Version: 2026.10.19 (Python SDK >=2.3,<3)
  • Transport: stdio
  • OS: Linux / macOS / Windows
Description & Motivation:

In mcp-server-git, tools accept repo_path (e.g., git_status, git_diff, git_commit, etc.).
When --repository <path> is passed at startup, validate_repo_path() rejects any tool calls outside the allowed repository root.

However, when launched without --repository (such as in standard client configurations like uvx mcp-server-git), allowed_repository defaults to None. In this mode, validate_repo_path() is a no-op, allowing any tool call to access and mutate any reachable Git repository across the host filesystem under the running user's process privileges (as pinned by test_without_repository_any_repository_is_reachable under #4550).

While this multi-repository reach is an intentional architectural capability, it is not prominently communicated to users in either the CLI --help or README.md. Users configuring the server may assume it is scoped only to the workspace or current directory.

Prompt Used to Generate the Change:
In src/git, clarify that omitting --repository leaves the server in unconfined mode where all reachable repositories on the filesystem are accessible to tool calls. 

1. In src/git/README.md, add an official GitHub alert (> [!WARNING]) under Configuration explaining that without --repository, every reachable Git repository is in scope, and describe how to confine operations via --repository <path>.
2. In src/git/src/mcp_server_git/__init__.py, update the Click option help text for --repository to: 'Git repository path to confine operations to. Without this option, every reachable repository is in scope.'
3. In src/git/src/mcp_server_git/server.py, update validate_repo_path's docstring to document the None behavior.
4. In src/git/tests/test_entrypoints.py, update test_main_help to assert that the confinement message is present in --help output.
Behavior Before vs. After:
Surface Before After
mcp-server-git --help -r, --repository PATH Git repository path -r, --repository PATH Git repository path to confine operations to. Without this option, every reachable repository is in scope.
src/git/README.md Generic text mentioning --repository resolves to top-level High-visibility GitHub alert > [!WARNING] detailing unconfined vs confined modes
server.py docstring Did not mention allowed_repository=None Explicitly states: "When allowed_repository is None, no restriction is configured and any reachable repository on the filesystem is permitted."
test_entrypoints.py Tested presence of -r, --repository Asserts confine operations to in output
Verification Steps:
  1. Ran python -m pytest tests/test_entrypoints.py -k test_main_help ➡️ PASSED
  2. Verified mcp_server_git --help output renders formatted lines cleanly.
  3. Verified test_main_without_repository_serves_none and test_python_dash_m_calls_main ➡️ PASSED.

Lenguaje dominante
TypeScript
Estrellas
91.6k
Forks
11.9k
Merge medio
6 h 37 min
PR fusionados (30 d)
147

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelcontextprotocol/servers

Todos los issues de modelcontextprotocol/servers

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.