diff --git a/CHANGELOG.md b/CHANGELOG.md
index 50eeae2c..005f734b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
 ## Unreleased
 
 - New lint: Warn against event metrics on the `metrics` or `baseline` ping ([#823](https://github.com/mozilla/glean_parser/pull/823))
+- Go server: Add 'string_list' to supported metric types ([#825](https://github.com/mozilla/glean_parser/pull/825))
 
 ## 18.1.1
 
diff --git a/glean_parser/go_server.py b/glean_parser/go_server.py
index 9f8fdfd9..2eb4cbac 100644
--- a/glean_parser/go_server.py
+++ b/glean_parser/go_server.py
@@ -32,7 +32,7 @@
 
 # Adding a metric here will require updating the `generate_metric_type` function
 # and require adjustments to `metrics` variables the the template.
-SUPPORTED_METRIC_TYPES = ["string", "quantity", "event", "datetime", "boolean"]
+SUPPORTED_METRIC_TYPES = ["string", "quantity", "event", "datetime", "boolean", "string_list"]
 
 
 def generate_ping_type_name(ping_name: str) -> str:
@@ -68,6 +68,8 @@ def generate_metric_type(metric_type: str) -> str:
         return "bool"
     elif metric_type == "datetime":
         return "time.Time"
+    elif metric_type == "string_list":
+        return "[]string"
     else:
         print("❌ Unable to generate Go type from metric type: " + metric_type)
         exit
diff --git a/tests/data/go_server_custom_ping_only_metrics.yaml b/tests/data/go_server_custom_ping_only_metrics.yaml
index 201b130f..54063171 100644
--- a/tests/data/go_server_custom_ping_only_metrics.yaml
+++ b/tests/data/go_server_custom_ping_only_metrics.yaml
@@ -66,6 +66,21 @@ metric:
       - TBD
     expires: never
 
+  request_string_list:
+    type: string_list
+    description: >
+      Test string_list metric
+    lifetime: application
+    send_in_pings:
+      - server-telemetry-scenario-one
+    notification_emails:
+      - CHANGE-ME@example.com
+    bugs:
+      - TBD
+    data_reviews:
+      - TBD
+    expires: never
+
 backend:
   special_event:
     type: event
diff --git a/tests/data/go_server_events_and_custom_ping_metrics.yaml b/tests/data/go_server_events_and_custom_ping_metrics.yaml
index b1cae47b..f289034b 100644
--- a/tests/data/go_server_events_and_custom_ping_metrics.yaml
+++ b/tests/data/go_server_events_and_custom_ping_metrics.yaml
@@ -70,6 +70,22 @@ metric:
       - TBD
     expires: never
 
+  request_string_list:
+    type: string_list
+    description: >
+      Test string_list metric
+    lifetime: application
+    send_in_pings:
+      - events
+      - server-telemetry-scenario-one
+    notification_emails:
+      - CHANGE-ME@example.com
+    bugs:
+      - TBD
+    data_reviews:
+      - TBD
+    expires: never
+
 backend:
   test_event:
     type: event
diff --git a/tests/data/go_server_events_only_metrics.yaml b/tests/data/go_server_events_only_metrics.yaml
index 624f815f..70ea0d05 100644
--- a/tests/data/go_server_events_only_metrics.yaml
+++ b/tests/data/go_server_events_only_metrics.yaml
@@ -66,6 +66,21 @@ metric:
       - TBD
     expires: never
 
+  request_string_list:
+    type: string_list
+    description: >
+      Test string_list metric
+    lifetime: application
+    send_in_pings:
+      - events
+    notification_emails:
+      - CHANGE-ME@example.com
+    bugs:
+      - TBD
+    data_reviews:
+      - TBD
+    expires: never
+
 backend:
   test_event:
     type: event
diff --git a/tests/data/go_server_metrics_unsupported.yaml b/tests/data/go_server_metrics_unsupported.yaml
index 811c4cdf..e0e475e3 100644
--- a/tests/data/go_server_metrics_unsupported.yaml
+++ b/tests/data/go_server_metrics_unsupported.yaml
@@ -60,21 +60,6 @@ metric:
           attribute_two:
             type: number
 
-  string_list:
-    type: string_list
-    description: >
-      string list
-    bugs:
-      - TBD
-    data_reviews:
-      - TBD
-    notification_emails:
-      - CHANGE-ME@example.com
-    lifetime: application
-    expires: never
-    send_in_pings:
-      - events
-
   timespan:
     type: timespan
     description: >
diff --git a/tests/data/server_custom_ping_only_compare.go b/tests/data/server_custom_ping_only_compare.go
index 36670f5b..0d0a095c 100644
--- a/tests/data/server_custom_ping_only_compare.go
+++ b/tests/data/server_custom_ping_only_compare.go
@@ -218,6 +218,7 @@ type ServerTelemetryScenarioOnePing struct {
     MetricRequestBool bool // boolean
     MetricRequestCount int64 // Test quantity metric
     MetricRequestDatetime time.Time // Test datetime metric
+    MetricRequestStringList []string // Test string_list metric
     Event ServerTelemetryScenarioOnePingEvent // valid event for this ping
 }
 
@@ -239,6 +240,9 @@ func (g GleanEventsLogger) RecordServerTelemetryScenarioOnePing(
         "datetime": {
             "metric.request_datetime": params.MetricRequestDatetime.Format("2006-01-02T15:04:05.000Z"),
         },
+        "string_list": {
+            "metric.request_string_list": params.MetricRequestStringList,
+        },
     }
 
     events := []gleanEvent{}
diff --git a/tests/data/server_events_and_custom_ping_compare.go b/tests/data/server_events_and_custom_ping_compare.go
index 66327085..c194d379 100644
--- a/tests/data/server_events_and_custom_ping_compare.go
+++ b/tests/data/server_events_and_custom_ping_compare.go
@@ -218,6 +218,7 @@ type EventsPing struct {
     MetricRequestBool bool // boolean
     MetricRequestCount int64 // Test quantity metric
     MetricRequestDatetime time.Time // Test datetime metric
+    MetricRequestStringList []string // Test string_list metric
     Event EventsPingEvent // valid event for this ping
 }
 
@@ -239,6 +240,9 @@ func (g GleanEventsLogger) RecordEventsPing(
         "datetime": {
             "metric.request_datetime": params.MetricRequestDatetime.Format("2006-01-02T15:04:05.000Z"),
         },
+        "string_list": {
+            "metric.request_string_list": params.MetricRequestStringList,
+        },
     }
 
     events := []gleanEvent{}
@@ -260,6 +264,7 @@ type ServerTelemetryScenarioOnePing struct {
     MetricRequestBool bool // boolean
     MetricRequestCount int64 // Test quantity metric
     MetricRequestDatetime time.Time // Test datetime metric
+    MetricRequestStringList []string // Test string_list metric
 }
 
 // Record and submit `server-telemetry-scenario-one` ping
@@ -280,6 +285,9 @@ func (g GleanEventsLogger) RecordServerTelemetryScenarioOnePing(
         "datetime": {
             "metric.request_datetime": params.MetricRequestDatetime.Format("2006-01-02T15:04:05.000Z"),
         },
+        "string_list": {
+            "metric.request_string_list": params.MetricRequestStringList,
+        },
     }
 
     events := []gleanEvent{}
diff --git a/tests/data/server_events_only_compare.go b/tests/data/server_events_only_compare.go
index 650e6fb7..5e0ad6d2 100644
--- a/tests/data/server_events_only_compare.go
+++ b/tests/data/server_events_only_compare.go
@@ -218,6 +218,7 @@ type EventsPing struct {
     MetricRequestBool bool // boolean
     MetricRequestCount int64 // Test quantity metric
     MetricRequestDatetime time.Time // Test datetime metric
+    MetricRequestStringList []string // Test string_list metric
     Event EventsPingEvent // valid event for this ping
 }
 
@@ -239,6 +240,9 @@ func (g GleanEventsLogger) RecordEventsPing(
         "datetime": {
             "metric.request_datetime": params.MetricRequestDatetime.Format("2006-01-02T15:04:05.000Z"),
         },
+        "string_list": {
+            "metric.request_string_list": params.MetricRequestStringList,
+        },
     }
 
     events := []gleanEvent{}
diff --git a/tests/test_go_server.py b/tests/test_go_server.py
index 26b1e282..8790ff4e 100644
--- a/tests/test_go_server.py
+++ b/tests/test_go_server.py
@@ -42,7 +42,6 @@ def test_parser_go_server_metrics_unsupported_type(tmp_path, capsys):
         "boolean",
         "labeled_boolean",
         "labeled_string",
-        "string_list",
         "timespan",
         "uuid",
         "url",
@@ -102,7 +101,7 @@ def test_parser_go_server_events_and_custom_ping(tmp_path):
     assert content == compare
 
 
-def test_parser_go_server_custon_ping_only(tmp_path):
+def test_parser_go_server_custom_ping_only(tmp_path):
     """Test that parser works for definitions that only use custom pings"""
     translate.translate(
         [
@@ -170,10 +169,11 @@ def test_run_logging_events_ping(tmp_path):
             IpAddress: "127.0.0.1",
         },
         glean.EventsPing{
-            MetricName:            "string value",
-            MetricRequestBool:     true,
-            MetricRequestCount:    10,
-            MetricRequestDatetime: time.Now(),
+            MetricName:              "string value",
+            MetricRequestBool:       true,
+            MetricRequestCount:      10,
+            MetricRequestDatetime:   time.Now(),
+            MetricRequestStringList: []string{"list", "of", "strings"},
             Event: glean.BackendTestEventEvent{
                 EventFieldString:      "event extra string value",
                 EventFieldQuantity:    100,
@@ -227,10 +227,11 @@ def test_run_logging_custom_ping_without_event(tmp_path):
             IpAddress: "127.0.0.1",
         },
         glean.ServerTelemetryScenarioOnePing{
-            MetricName:            "string value",
-            MetricRequestBool:     true,
-            MetricRequestCount:    20,
-            MetricRequestDatetime: time.Now(),
+            MetricName:             "string value",
+            MetricRequestBool:       true,
+            MetricRequestCount:      20,
+            MetricRequestDatetime:   time.Now(),
+            MetricRequestStringList: []string{"list", "of", "strings"},
         },
     )
     """
@@ -285,10 +286,11 @@ def test_run_logging_discard_writer(tmp_path):
             IpAddress: "127.0.0.1",
         },
         glean.ServerTelemetryScenarioOnePing{
-            MetricName:            "string value",
-            MetricRequestBool:     true,
-            MetricRequestCount:    20,
-            MetricRequestDatetime: time.Now(),
+            MetricName:             "string value",
+            MetricRequestBool:       true,
+            MetricRequestCount:      20,
+            MetricRequestDatetime:   time.Now(),
+            MetricRequestStringList: []string{"list", "of", "strings"},
         },
     )
     if err != nil {
@@ -362,10 +364,11 @@ def test_run_logging_custom_ping_with_event(tmp_path):
             IpAddress: "127.0.0.1",
         },
         glean.ServerTelemetryScenarioOnePing{
-            MetricName:            "string value",
-            MetricRequestBool:     true,
-            MetricRequestCount:    20,
-            MetricRequestDatetime: time.Now(),
+            MetricName:              "string value",
+            MetricRequestBool:       true,
+            MetricRequestCount:      20,
+            MetricRequestDatetime:   time.Now(),
+            MetricRequestStringList: []string{"list", "of", "strings"},
             Event: glean.BackendSpecialEventEvent{
                 EventFieldString: "exta value string",
                 EventFieldQuantity: 30,
