2026 Streamable HTTP rejects whitespace-padded Mcp-Name values

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

  • #3764 của @Pyhroff — đã đó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
68/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

Hướng nghiên cứu

Bắt đầu bằng cách lần theo quá trình xác thực header của Streamable HTTP 2026 đối với Mcp-Name và cách nó so sánh giá trị với các tên phương thức đã đăng ký. Tái hiện trường hợp tuân thủ sep-2243 với một dấu cách ở cuối, sau đó kiểm tra rằng khoảng trắng HTTP được phép ở hai bên được chuẩn hóa và các giá trị vẫn khác biệt sẽ bị từ chối. Công việc hoàn tất khi trường hợp tuân thủ chạy đạt và các tên không hợp lệ vẫn bị từ chối.

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

Mô tả

bug spec-2026-07-28 v2
Description

The 2026 Streamable HTTP header validation rejects a valid Mcp-Name when its value has leading or trailing HTTP optional whitespace. Header field values are subject to HTTP whitespace normalization; a client or intermediary that sends Mcp-Name: tools/call is rejected with JSON-RPC error -32020, although the trimmed value names the registered method.

This also fails the official conformance case sep-2243 (header validation).

Reproduction

Send a valid 2026 request with:

  • MCP-Protocol-Version: 2026-07-28
  • Mcp-Method: tools/call
  • Mcp-Name: tools/call
  • a valid tools/call JSON-RPC body

On mcp 2.3.0, the SDK returns -32020 rather than accepting the header value after HTTP whitespace handling.

Expected

Normalize permitted surrounding HTTP whitespace before comparing the header value, while continuing to reject values that differ after normalization.

Environment

Python SDK 2.3.0; reproduced by the MCP conformance suite's sep-2243 header-validation case.

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

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.