Feature request: native Rate Limiting (MCP spec compliance)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- networking
Línea de trabajo
Empieza en la capa de transporte y sigue cómo pasan los mensajes por Transport::send(); después, lee el patrón de decorador existente de SinkStreamTransport. Define cómo se aplica un token bucket seguro para la concurrencia a los mensajes de Progress, Completion, Sampling, Logging y Elicitation en los transportes stdio, SSE, HTTP y WebSocket. Se considera terminado cuando todos los tipos de mensaje enumerados reciben la limitación de tasa requerida a nivel de transporte.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
The MCP specification requires rate limiting across multiple message types.
Required (MUST/SHOULD):
Progressnotifications: "Both parties SHOULD implement rate limiting to prevent flooding"Completionrequests: "MUST implement appropriate rate limiting"Samplingrequests: "Clients SHOULD implement rate limiting"Loggingmessages: "Servers SHOULD rate limit log messages"Elicitationrequests: "Clients SHOULD implement rate limiting"
Proposed Architecture
Transport Layer Rate Limiting (token bucket algorithm)
Why Transport Layer:
- Universal Coverage: All message types, all transports (stdio/SSE/HTTP/WebSocket)
- Single Integration Point: All messages flow through
Transport::send() - Existing Patterns: Following established decorator pattern (
SinkStreamTransport) - Performance: Early filtering, concurrent-safe
- Lenguaje dominante
- Rust
- Estrellas
- 3.9k
- Forks
- 645
- Merge medio
- 4 d 22 h
- PR fusionados (30 d)
- 37
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelcontextprotocol/rust-sdk
-
streamable-http server: a supplied Mcp-Method contradicting an initialize body is silently accepted Abiertobug P1 ready for work T-transport
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
modelcontextprotocol/rust-sdk#1271 ·
-
bug P2 ready for work T-model
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
modelcontextprotocol/rust-sdk#1242 ·
-
P3 question T-documentation T-enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
modelcontextprotocol/rust-sdk#1155 ·
-
bug P1 ready for work T-model T-service
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
modelcontextprotocol/rust-sdk#1283 · 1 comentario ·
-
bug P0 ready for work T-security T-transport
modelcontextprotocol/rust-sdk#1272 · 1 asignado ·
Todos los issues de modelcontextprotocol/rust-sdk
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yantrikos/yantrik-os#255 ·
-
Replayed reasoning items send "content": null, which the Responses API schema does not permit Abiertobug CLI custom-model
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
raphamorim/rio#1956 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
rust-bitcoin/rust-bitcoin#6930 · 1 comentario ·