MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / Close

Method Close

mcp/streamable.go:2234–2256  ·  view source on GitHub ↗

Close implements the [Connection] interface.

()

Source from the content-addressed store, hash-verified

2232
2233// Close implements the [Connection] interface.
2234func (c *streamableClientConn) Close() error {
2235 c.closeOnce.Do(func() {
2236 if errors.Is(c.failure(), ErrSessionMissing) {
2237 // If the session is missing, no need to delete it.
2238 } else {
2239 req, err := http.NewRequestWithContext(c.ctx, http.MethodDelete, c.url, nil)
2240 if err != nil {
2241 c.closeErr = err
2242 } else {
2243 if err := c.setMCPHeaders(req); err != nil {
2244 c.closeErr = err
2245 } else if _, err := c.client.Do(req); err != nil {
2246 c.closeErr = err
2247 }
2248 }
2249 }
2250
2251 // Cancel any hanging network requests after cleanup.
2252 c.cancel()
2253 close(c.done)
2254 })
2255 return c.closeErr
2256}
2257
2258// calculateReconnectDelay calculates a delay using exponential backoff with full jitter.
2259func calculateReconnectDelay(attempt int) time.Duration {

Callers

nothing calls this directly

Calls 4

failureMethod · 0.95
setMCPHeadersMethod · 0.95
IsMethod · 0.80
cancelMethod · 0.45

Tested by

no test coverage detected