diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5eb2dacd..d8e2d31e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,6 +30,10 @@ jobs: echo "All Go files are properly formatted" - name: Run Go vet run: go vet ./... + - name: Run staticcheck + uses: dominikh/staticcheck-action@v1 + with: + version: "latest" test: runs-on: ubuntu-latest diff --git a/internal/jsonrpc2/conn.go b/internal/jsonrpc2/conn.go index 963350e7..6bacfa7e 100644 --- a/internal/jsonrpc2/conn.go +++ b/internal/jsonrpc2/conn.go @@ -719,10 +719,10 @@ func (c *Connection) processResult(from any, req *incomingRequest, result any, e } else if err != nil { err = fmt.Errorf("%w: %q notification failed: %v", ErrInternal, req.Method, err) } - if err != nil { - // TODO: can/should we do anything with this error beyond writing it to the event log? - // (Is this the right label to attach to the log?) - } + } + if err != nil { + // TODO: can/should we do anything with this error beyond writing it to the event log? + // (Is this the right label to attach to the log?) } // Cancel the request to free any associated resources. diff --git a/mcp/client.go b/mcp/client.go index 344e2f3d..d1d17502 100644 --- a/mcp/client.go +++ b/mcp/client.go @@ -178,10 +178,6 @@ type clientSessionState struct { func (cs *ClientSession) InitializeResult() *InitializeResult { return cs.state.InitializeResult } -func (cs *ClientSession) setConn(c Connection) { - cs.mcpConn = c -} - func (cs *ClientSession) ID() string { if c, ok := cs.mcpConn.(hasSessionID); ok { return c.SessionID() diff --git a/mcp/streamable.go b/mcp/streamable.go index 1ecf201f..526ee515 100644 --- a/mcp/streamable.go +++ b/mcp/streamable.go @@ -121,7 +121,7 @@ func (h *StreamableHTTPHandler) ServeHTTP(w http.ResponseWriter, req *http.Reque var transport *StreamableServerTransport if id := req.Header.Get(sessionIDHeader); id != "" { h.mu.Lock() - transport, _ = h.transports[id] + transport = h.transports[id] h.mu.Unlock() if transport == nil { http.Error(w, "session not found", http.StatusNotFound) @@ -288,9 +288,6 @@ type streamableServerConn struct { jsonResponse bool eventStore EventStore - lastStreamID atomic.Int64 // last stream ID used, atomically incremented - - opts StreamableServerTransportOptions incoming chan jsonrpc.Message // messages from the client to the server done chan struct{} diff --git a/mcp/streamable_test.go b/mcp/streamable_test.go index e0b00cc6..52c47998 100644 --- a/mcp/streamable_test.go +++ b/mcp/streamable_test.go @@ -539,10 +539,10 @@ func TestStreamableServerTransport(t *testing.T) { }, { name: "background", - tool: func(t *testing.T, ctx context.Context, ss *ServerSession) { + tool: func(t *testing.T, _ context.Context, ss *ServerSession) { // Perform operations on a background context, and ensure the client // receives it. - ctx = context.Background() + ctx := context.Background() if err := ss.NotifyProgress(ctx, &ProgressNotificationParams{}); err != nil { t.Errorf("Notify failed: %v", err) }