modelcontextprotocol / modelcontextprotocol/csharp-sdk
Make EverythingServer capable of running either stdio or http
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 4.5k
- Forks
- 814
- Ø Merge
- 9 T. 19 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das bestehende EverythingServer-Projekt und dessen Program.cs zu prüfen, und lies anschließend die verknüpfte Diskussion aus #709. Vergleiche den Subscription-Ablauf des gehosteten stdio-Dienstes mit dem HTTP-RunSessionHandler-Ablauf. Als abgeschlossen gilt die Aufgabe, wenn die gemeinsame Handler- und Subscription-Logik in ein Core-Projekt ausgelagert ist, während beide Transporte ihren jeweiligen Startup-Code behalten.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- api, backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100