File tree Expand file tree Collapse file tree 1 file changed +33
-1
lines changed Expand file tree Collapse file tree 1 file changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -12,9 +12,11 @@ import {
1212import { registerOpenApiTools } from "../tools/registerOpenApi.ts" ;
1313import {
1414 ABTestingSpec ,
15- AnalyticsSpec , CollectionsSpec ,
15+ AnalyticsSpec ,
16+ CollectionsSpec ,
1617 IngestionSpec ,
1718 MonitoringSpec ,
19+ QuerySuggestionsSpec ,
1820 RecommendSpec ,
1921 SearchSpec ,
2022 UsageSpec
@@ -105,6 +107,28 @@ export async function initMCPServer(opts: StartServerOptions): Promise<McpServer
105107 dashboardApi,
106108 openApiSpec : UsageSpec ,
107109 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+ ] ,
108132 } ) ;
109133
110134 // Ingestion API Tools
@@ -141,6 +165,14 @@ export async function initMCPServer(opts: StartServerOptions): Promise<McpServer
141165 toolFilter,
142166 } ) ;
143167
168+ // Query Suggestions API Tools
169+ registerOpenApiTools ( {
170+ server,
171+ dashboardApi,
172+ openApiSpec : QuerySuggestionsSpec ,
173+ toolFilter,
174+ } ) ;
175+
144176 return server ;
145177 } catch ( err ) {
146178 console . error ( "Error starting server:" , err ) ;
You can’t perform that action at this time.
0 commit comments