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

Function createLoggingMiddleware

examples/auth/server/main.go:130–167  ·  view source on GitHub ↗

createLoggingMiddleware creates an MCP middleware that logs method calls.

()

Source from the content-addressed store, hash-verified

128
129// createLoggingMiddleware creates an MCP middleware that logs method calls.
130func createLoggingMiddleware() mcp.Middleware {
131 return func(next mcp.MethodHandler) mcp.MethodHandler {
132 return func(
133 ctx context.Context,
134 method string,
135 req mcp.Request,
136 ) (mcp.Result, error) {
137 start := time.Now()
138 sessionID := req.GetSession().ID()
139
140 // Log request details.
141 log.Printf("[REQUEST] Session: %s | Method: %s",
142 sessionID,
143 method)
144
145 // Call the actual handler.
146 result, err := next(ctx, method, req)
147
148 // Log response details.
149 duration := time.Since(start)
150
151 if err != nil {
152 log.Printf("[RESPONSE] Session: %s | Method: %s | Status: ERROR | Duration: %v | Error: %v",
153 sessionID,
154 method,
155 duration,
156 err)
157 } else {
158 log.Printf("[RESPONSE] Session: %s | Method: %s | Status: OK | Duration: %v",
159 sessionID,
160 method,
161 duration)
162 }
163
164 return result, err
165 }
166 }
167}

Callers 1

mainFunction · 0.70

Calls 2

IDMethod · 0.65
GetSessionMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…