Skip to content

Commit a8511f2

Browse files
EPMRPP-107007 || Fix GA4 request parameters
1 parent eb3c134 commit a8511f2

File tree

4 files changed

+193
-274
lines changed

4 files changed

+193
-274
lines changed

cmd/reportportal-mcp-server/main.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,11 @@ func main() {
6464
Value: "", // Empty means auto-generate persistent ID
6565
},
6666
&cli.BoolFlag{
67-
Name: "analytics-off", // Disable analytics completely
68-
Usage: "Disable Google Analytics tracking",
67+
Name: "analytics-off", // Disable analytics completely
68+
Required: false,
69+
Sources: cli.EnvVars("RP_MCP_ANALYTICS_OFF"),
70+
Usage: "Disable Google Analytics tracking",
71+
Value: false,
6972
},
7073
},
7174
Commands: []*cli.Command{
@@ -118,7 +121,7 @@ func initLogger() func(ctx context.Context, command *cli.Command) (context.Conte
118121
}
119122
}
120123

121-
func newMCPServer(cmd *cli.Command) (*server.MCPServer, error) {
124+
func newMCPServer(cmd *cli.Command) (*server.MCPServer, *mcpreportportal.Analytics, error) {
122125
// Retrieve required parameters from the command flags
123126
token := cmd.String("token") // API token
124127
host := cmd.String("host") // ReportPortal host URL
@@ -129,28 +132,28 @@ func newMCPServer(cmd *cli.Command) (*server.MCPServer, error) {
129132

130133
hostUrl, err := url.Parse(host)
131134
if err != nil {
132-
return nil, fmt.Errorf("invalid host URL: %w", err)
135+
return nil, nil, fmt.Errorf("invalid host URL: %w", err)
133136
}
134137

135138
// Create a new stdio server using the ReportPortal client
136-
mcpServer, err := mcpreportportal.NewServer(
139+
mcpServer, analytics, err := mcpreportportal.NewServer(
137140
version,
138141
hostUrl,
139142
token,
140143
project,
141144
userID,
142145
analyticsAPISecret,
143-
analyticsOff,
146+
!analyticsOff, // Convert analyticsOff to analyticsOn
144147
)
145148
if err != nil {
146-
return nil, fmt.Errorf("failed to create ReportPortal MCP server: %w", err)
149+
return nil, nil, fmt.Errorf("failed to create ReportPortal MCP server: %w", err)
147150
}
148-
return mcpServer, nil
151+
return mcpServer, analytics, nil
149152
}
150153

151154
// runStdioServer starts the ReportPortal MCP server in stdio mode.
152155
func runStdioServer(ctx context.Context, cmd *cli.Command) error {
153-
mcpServer, err := newMCPServer(cmd)
156+
mcpServer, analytics, err := newMCPServer(cmd)
154157
if err != nil {
155158
return fmt.Errorf("failed to create ReportPortal MCP server: %w", err)
156159
}
@@ -169,9 +172,11 @@ func runStdioServer(ctx context.Context, cmd *cli.Command) error {
169172
// Wait for a shutdown signal or an error from the server
170173
select {
171174
case <-ctx.Done(): // Context canceled (e.g., SIGTERM received)
172-
slog.Error("shutting down server...")
175+
slog.Info("shutting down server...")
176+
mcpreportportal.StopAnalytics(analytics, "")
173177
case err := <-errC: // Error occurred while running the server
174178
if err != nil {
179+
mcpreportportal.StopAnalytics(analytics, "server error")
175180
return fmt.Errorf("error running server: %w", err)
176181
}
177182
}
@@ -181,7 +186,7 @@ func runStdioServer(ctx context.Context, cmd *cli.Command) error {
181186

182187
// runStreamingServer starts the ReportPortal MCP server in streaming mode.
183188
func runStreamingServer(ctx context.Context, cmd *cli.Command) error {
184-
mcpServer, err := newMCPServer(cmd)
189+
mcpServer, analytics, err := newMCPServer(cmd)
185190
if err != nil {
186191
return fmt.Errorf("failed to create ReportPortal MCP server: %w", err)
187192
}
@@ -200,14 +205,16 @@ func runStreamingServer(ctx context.Context, cmd *cli.Command) error {
200205
// Wait for a shutdown signal or an error from the server
201206
select {
202207
case <-ctx.Done(): // Context canceled (e.g., SIGTERM received)
203-
slog.Error("shutting down server...")
208+
slog.Info("shutting down server...")
209+
mcpreportportal.StopAnalytics(analytics, "")
204210
sCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
205211
defer cancel()
206212
if err := streamingServer.Shutdown(sCtx); err != nil {
207213
slog.Error("error during server shutdown", "error", err)
208214
}
209215
case err := <-errC: // Error occurred while running the server
210216
if err != nil {
217+
mcpreportportal.StopAnalytics(analytics, "server error")
211218
return fmt.Errorf("error running server: %w", err)
212219
}
213220
}

0 commit comments

Comments
 (0)