modelcontextprotocol / modelcontextprotocol/csharp-sdk

Make EverythingServer capable of running either stdio or http

Abierto
#889 3 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

area-tests enhancement help wanted P3 ready for work
Lenguaje dominante
C#
Estrellas
4.5k
Forks
814
Merge medio
9 d 19 h
PR fusionados (30 d)
4

Descripción

From this comment on #709 by @halter73:

It might be interesting to demonstrate how you can share code for an HTTP and stdio everything server. We could create EverythingServer.Http, EverythingSerever.Stdio and EverythingServer.Core projects. And the Core project could have an AddEverythingMcpHandlers(this IMcpServerBuilder builder, ConcurrentDictionary<string, ConcurrentDictionary<string, byte>> subscriptions) method. It might even make sense to add something like public class SubscriptionCollection : ConcurrentDictionary<string, ConcurrentDictionary<string, byte>> to the core project.

The only thing that couldn't be shared is Program.cs. The Stdio project would use hosted services to manage subscriptions, and the Http project would do the RunSessionHandler logic.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza revisando el proyecto EverythingServer existente y su Program.cs; después, lee la discusión enlazada de #709. Compara el flujo de suscripción del servicio alojado stdio con el flujo de HTTP RunSessionHandler. Se considera terminado cuando la lógica compartida del handler y de la suscripción esté separada en un proyecto core, mientras ambos transportes conservan su respectivo código de startup.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp
Área
api, backend
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.