@@ -146,6 +146,16 @@ var (
146
146
),
147
147
)
148
148
149
+ metricMetadataTool = mcp .NewTool ("metric_metadata" ,
150
+ mcp .WithDescription ("Returns metadata about metrics currently scraped by the metric name." ),
151
+ mcp .WithString ("metric" ,
152
+ mcp .Description ("[Optional] A metric name to retrieve metadata for. All metric metadata is retrieved if left empty." ),
153
+ ),
154
+ mcp .WithString ("limit" ,
155
+ mcp .Description ("[Optional] Maximum number of metrics to return." ),
156
+ ),
157
+ )
158
+
149
159
walReplayTool = mcp .NewTool ("wal_replay_status" ,
150
160
mcp .WithDescription ("Get current WAL replay status" ),
151
161
)
@@ -400,6 +410,25 @@ func targetsMetadataToolHandler(ctx context.Context, request mcp.CallToolRequest
400
410
return mcp .NewToolResultText (data ), err
401
411
}
402
412
413
+ // // Metadata returns metadata about metrics currently scraped by the metric name.
414
+ // Metadata(ctx context.Context, metric, limit string) (map[string][]Metadata, error)
415
+ func metricMetadataToolHandler (ctx context.Context , request mcp.CallToolRequest ) (* mcp.CallToolResult , error ) {
416
+ arguments := request .Params .Arguments
417
+
418
+ metric := ""
419
+ if argMetric , ok := arguments ["metric" ].(string ); ok {
420
+ metric = argMetric
421
+ }
422
+
423
+ limit := ""
424
+ if argLimit , ok := arguments ["limit" ].(string ); ok {
425
+ limit = argLimit
426
+ }
427
+
428
+ data , err := metricMetadataApiCall (ctx , metric , limit )
429
+ return mcp .NewToolResultText (data ), err
430
+ }
431
+
403
432
func walReplayToolHandler (ctx context.Context , request mcp.CallToolRequest ) (* mcp.CallToolResult , error ) {
404
433
data , err := walReplayApiCall (ctx )
405
434
return mcp .NewToolResultText (data ), err
0 commit comments