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

Type annotation gaps and unhandled FileNotFoundError in src/mcp/cli/cli.py

Đang mở Phù hợp với người mới
#3,673 4 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.

  • #3687 của @Sak3th2004 — đã đóng, không merge

Đá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
84/100
Loại issue
Lỗi
Độ 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

Hướng nghiên cứu

Đọc src/mcp/cli/cli.py, tập trung vào _get_npx_command, _import_server và _check_server_object. Kiểm tra cách bước dò tìm npx trên Windows xử lý trường hợp thiếu tệp thực thi, sau đó chạy các bài kiểm tra CLI liên quan cùng các bước kiểm tra Ruff và Pyright đã nêu. Công việc hoàn tất khi ngoại lệ được xử lý và các chú thích kiểu được yêu cầu vượt qua những bước kiểm tra này.

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

Mô tả

enhancement
Environment / Context

While running static analysis (ruff check --select ANN and pyright) on src/mcp/cli/cli.py during local development, I noticed a few missing type annotations and an uncaught exception edge case on Windows.

Description
  1. Unhandled FileNotFoundError in _get_npx_command:
    In src/mcp/cli/cli.py, _get_npx_command() attempts to probe for npx executables on Windows inside a try...except subprocess.CalledProcessError: block. If npx.cmd or npx.exe is missing from the system entirely, subprocess.run raises FileNotFoundError before CalledProcessError can be raised, causing an unexpected crash instead of returning None.

  2. Missing Return Type Annotations (ANN202):

    • _get_npx_command() lacks a return type annotation (returns str | None).
    • _import_server() lacks a return type annotation.
    • _check_server_object() lacks a return type annotation (-> bool).
  3. Any Type Usage (ANN401):

    • _check_server_object() uses server_object: Any, which can be tightened to object since it performs runtime isinstance checks.
Proposed Fix
  • Update _get_npx_command() to catch (subprocess.CalledProcessError, FileNotFoundError) and return str | None.
  • Add explicit return type annotations to _import_server and _check_server_object.
  • Replace server_object: Any with server_object: object.

I would be happy to submit a PR for this if a maintainer is willing to assign the issue to me!
I know that the contributing guidelines for this project forbid direct PRs about formatting and such without assigning, so just putting this out there.

(Note: Disclosing per guidelines that AI tools were used to assist in local testing and analysis; I am ready to own, test, and answer questions on the proposed changes).

Ngôn ngữ chính
Python
Star
24.5k
Fork
4k
Merge trung bình
18 giờ 31 phút
Pull request đã merge (30 ngày)
38

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/python-sdk

Tất cả issue của modelcontextprotocol/python-sdk

Issue tương tự

Thêm issue về Python

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.