Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở Phù hợp với người mới
#5,231 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
73/100
Loại issue
Tài liệu
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
cli, documentation, security

Hướng nghiên cứu

Đọc src/git/README.md trong mục Configuration và kiểm tra tùy chọn --repository trong src/git/src/mcp_server_git/__init__.py. Cập nhật cảnh báo trong README và phần trợ giúp CLI để giải thích rằng bỏ qua tùy chọn này cho phép truy cập mọi kho lưu trữ có thể truy cập; ghi lại hành vi của None trong src/git/src/mcp_server_git/server.py và kiểm tra assertion về trợ giúp trong src/git/tests/test_entrypoints.py. Hoàn tất khi các phần này giải thích nhất quán về giới hạn truy cập.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
TypeScript
Star
91.4k
Fork
11.8k
Merge trung bình
6 giờ 37 phút
Pull request đã merge (30 ngày)
147

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của modelcontextprotocol/servers

Tất cả issue của modelcontextprotocol/servers

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.