Expose generic `SendNotification` on `ServerSession` for custom protocol extensions
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- go
- Ambito
- api, backend-api-design
Direzione di ricerca
Inizia da mcp/server.go leggendo ServerSession e gli helper esistenti NotifyProgress e Log, quindi esamina come viene utilizzata la chiamata interna conn.Notify. Aggiungi il punto di ingresso pubblico generico per le notifiche descritto nell’issue e verifica che i chiamanti possano inviare metodi personalizzati come ide/diffAccepted senza unsafe o reflection.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Use Case
I am implementing an MCP Server for the Gemini CLI IDE Integration. The specification requires the server to send custom notifications to the client to signal specific events.
Specifically, I need to send:
ide/diffAcceptedide/diffRejectedide/contextUpdate
The Problem
Currently, the mcp.ServerSession struct only exposes specific notification helpers (like NotifyProgress and Log). There is no public API to send a generic/custom JSON-RPC notification.
I attempted to use session.Notify(ctx, method, params), but:
- The
connfield onServerSessionis unexported. - The
mcp.Connectioninterface'sWritemethod requires*mcp.JSONRPCMessage, which is an unexported struct.
Proposed Solution
Please expose a generic notification method on ServerSession, similar to:
// In mcp/server.go
func (s *ServerSession) SendNotification(ctx context.Context, method string, params any) error {
return s.conn.Notify(ctx, method, params)
}
Current Workaround
I am currently forced to use unsafe and reflect to access the underlying conn field to call its Notify method, which is fragile for obvious reasons.
- Lingua principale
- Go
- Stelle
- 5.2k
- Fork
- 568
- Merge medio
- 1g 18h
- PR unite (30g)
- 36
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/go-sdk
-
Session-lifecycle bookkeeping logs at info, spamming multiple log lines per request on stateless streamable HTTPForse già presa @anneheartrecord l’ha presa 41 giorni fa. ApertaP3
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/go-sdk#1204 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
auth: Authorize fails against a 2025-03-26 server whose URL has a query stringForse già presa @akshita317 l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 40/100
modelcontextprotocol/go-sdk#1347 ·
I maintainer di solito rispondono entro 1 giorno
-
P3
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
modelcontextprotocol/go-sdk#1337 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
mcp: Client.Connect never falls back to initialize when a stdio server ignores server/discoverForse già presa @crossxr l’ha presa 5 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
modelcontextprotocol/go-sdk#1332 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
modelcontextprotocol/go-sdk#1331 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di modelcontextprotocol/go-sdk
Issue simili
-
agent-research-recommend agent-review-finding chore
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
jordansmall/spindrift#4821 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:web
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
praetorianer777/GoTome#178 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
oracle/go-oracledb#105 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno