File tree 1 file changed +33
-1
lines changed
1 file changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -12,9 +12,11 @@ import {
12
12
import { registerOpenApiTools } from "../tools/registerOpenApi.ts" ;
13
13
import {
14
14
ABTestingSpec ,
15
- AnalyticsSpec , CollectionsSpec ,
15
+ AnalyticsSpec ,
16
+ CollectionsSpec ,
16
17
IngestionSpec ,
17
18
MonitoringSpec ,
19
+ QuerySuggestionsSpec ,
18
20
RecommendSpec ,
19
21
SearchSpec ,
20
22
UsageSpec
@@ -105,6 +107,28 @@ export async function initMCPServer(opts: StartServerOptions): Promise<McpServer
105
107
dashboardApi,
106
108
openApiSpec : UsageSpec ,
107
109
toolFilter,
110
+ requestMiddlewares : [
111
+ // The Usage API expects `name` parameter as multiple values
112
+ // rather than comma-separated.
113
+ async ( { request } ) => {
114
+ const url = new URL ( request . url ) ;
115
+ const nameParams = url . searchParams . get ( "name" ) ;
116
+
117
+ if ( ! nameParams ) {
118
+ return new Request ( url , request . clone ( ) ) ;
119
+ }
120
+
121
+ const nameValues = nameParams . split ( "," ) ;
122
+
123
+ url . searchParams . delete ( "name" ) ;
124
+
125
+ nameValues . forEach ( ( value ) => {
126
+ url . searchParams . append ( "name" , value ) ;
127
+ } ) ;
128
+
129
+ return new Request ( url , request . clone ( ) ) ;
130
+ } ,
131
+ ] ,
108
132
} ) ;
109
133
110
134
// Ingestion API Tools
@@ -141,6 +165,14 @@ export async function initMCPServer(opts: StartServerOptions): Promise<McpServer
141
165
toolFilter,
142
166
} ) ;
143
167
168
+ // Query Suggestions API Tools
169
+ registerOpenApiTools ( {
170
+ server,
171
+ dashboardApi,
172
+ openApiSpec : QuerySuggestionsSpec ,
173
+ toolFilter,
174
+ } ) ;
175
+
144
176
return server ;
145
177
} catch ( err ) {
146
178
console . error ( "Error starting server:" , err ) ;
You can’t perform that action at this time.
0 commit comments