Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta Adatta ai principianti
#5,230 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
74/100
Tipo di issue
Documentazione
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
git, python

Direzione di ricerca

Leggi la sezione Configuration di src/git/README.md e l’opzione --repository in src/git/src/mcp_server_git/__init__.py; l’issue menziona anche src/git/src/mcp_server_git/server.py e src/git/tests/test_entrypoints.py. Verifica in che modo allowed_repository=None influisce sull’accesso al repository, quindi aggiorna l’avviso, la guida della CLI, il docstring e l’asserzione sulla guida descritti nell’issue. Il lavoro è completato quando questi elementi spiegano l’accesso non vincolato predefinito e il test mirato della guida passa.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
TypeScript
Stelle
91.4k
Fork
11.8k
Merge medio
6h 39m
PR unite (30g)
146

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di modelcontextprotocol/servers

Tutte le issue di modelcontextprotocol/servers

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.