Skip to content

Commit d56f3aa

Browse files
committed
Remove unneeded nested types from datasource tools
1 parent 3bf811f commit d56f3aa

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

tools/datasources.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ import (
66

77
"github.com/mark3labs/mcp-go/server"
88

9-
"github.com/grafana/grafana-openapi-client-go/client/datasources"
9+
"github.com/grafana/grafana-openapi-client-go/models"
1010
mcpgrafana "github.com/grafana/mcp-grafana"
1111
)
1212

1313
type ListDatasourcesParams struct{}
1414

15-
func listDatasources(ctx context.Context, args ListDatasourcesParams) (*datasources.GetDataSourcesOK, error) {
15+
func listDatasources(ctx context.Context, args ListDatasourcesParams) (models.DataSourceList, error) {
1616
c := mcpgrafana.GrafanaClientFromContext(ctx)
1717
datasources, err := c.Datasources.GetDataSources()
1818
if err != nil {
1919
return nil, fmt.Errorf("list datasources: %w", err)
2020
}
21-
return datasources, nil
21+
return datasources.Payload, nil
2222
}
2323

2424
var ListDatasources = mcpgrafana.MustTool(
@@ -31,13 +31,13 @@ type GetDatasourceByUIDParams struct {
3131
UID string `json:"uid" jsonschema:"required,description=The uid of the datasource"`
3232
}
3333

34-
func getDatasourceByUID(ctx context.Context, args GetDatasourceByUIDParams) (*datasources.GetDataSourceByUIDOK, error) {
34+
func getDatasourceByUID(ctx context.Context, args GetDatasourceByUIDParams) (*models.DataSource, error) {
3535
c := mcpgrafana.GrafanaClientFromContext(ctx)
3636
datasource, err := c.Datasources.GetDataSourceByUID(args.UID)
3737
if err != nil {
3838
return nil, fmt.Errorf("get datasource by uid %s: %w", args.UID, err)
3939
}
40-
return datasource, nil
40+
return datasource.Payload, nil
4141
}
4242

4343
var GetDatasourceByUID = mcpgrafana.MustTool(
@@ -50,13 +50,13 @@ type GetDatasourceByNameParams struct {
5050
Name string `json:"name" jsonschema:"required,description=The name of the datasource"`
5151
}
5252

53-
func getDatasourceByName(ctx context.Context, args GetDatasourceByNameParams) (*datasources.GetDataSourceByNameOK, error) {
53+
func getDatasourceByName(ctx context.Context, args GetDatasourceByNameParams) (*models.DataSource, error) {
5454
c := mcpgrafana.GrafanaClientFromContext(ctx)
5555
datasource, err := c.Datasources.GetDataSourceByName(args.Name)
5656
if err != nil {
5757
return nil, fmt.Errorf("get datasource by name %s: %w", args.Name, err)
5858
}
59-
return datasource, nil
59+
return datasource.Payload, nil
6060
}
6161

6262
var GetDatasourceByName = mcpgrafana.MustTool(

tools/datasources_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// Requires a Prometheus instance running on localhost:9090.
1+
// Requires a Grafana instance running on localhost:3000,
2+
// with a Prometheus datasource provisioned.
23
// Run with `go test -tags integration`.
34
//go:build integration
45

@@ -52,7 +53,7 @@ func TestDatasourcesTools(t *testing.T) {
5253
ctx := newTestContext()
5354
result, err := listDatasources(ctx, ListDatasourcesParams{})
5455
require.NoError(t, err)
55-
assert.Len(t, result.Payload, 1)
56+
assert.Len(t, result, 1)
5657
})
5758

5859
t.Run("get datasource by uid", func(t *testing.T) {
@@ -61,7 +62,7 @@ func TestDatasourcesTools(t *testing.T) {
6162
UID: "prometheus",
6263
})
6364
require.NoError(t, err)
64-
assert.Equal(t, "Prometheus", result.Payload.Name)
65+
assert.Equal(t, "Prometheus", result.Name)
6566
})
6667

6768
t.Run("get datasource by name", func(t *testing.T) {
@@ -70,6 +71,6 @@ func TestDatasourcesTools(t *testing.T) {
7071
Name: "Prometheus",
7172
})
7273
require.NoError(t, err)
73-
assert.Equal(t, "Prometheus", result.Payload.Name)
74+
assert.Equal(t, "Prometheus", result.Name)
7475
})
7576
}

0 commit comments

Comments
 (0)