natural_language_query
Interpret and process natural language queries to quickly access Microsoft Flight Simulator SDK documentation, enabling efficient searches and retrievals.
Instructions
Process natural language queries like "Search livery op msfs sdk"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query (e.g., "Search livery op msfs sdk") |
Implementation Reference
- src/index.ts:149-182 (handler)Executes the 'natural_language_query' tool by parsing the natural language input using NaturalLanguageService.parse() and dispatching to the corresponding documentation service method.case 'natural_language_query': if (!args?.query) { throw new Error('Query parameter is required'); } // Parse the natural language query const parsedCommand = NaturalLanguageService.parse(String(args.query)); if (!parsedCommand) { throw new Error(`Could not parse natural language query: ${args.query}`); } // Execute the parsed command switch (parsedCommand.tool) { case 'search_msfs_docs': return await this.documentationService.searchDocumentation( String(parsedCommand.arguments.query), String(parsedCommand.arguments.category || 'all'), Number(parsedCommand.arguments.limit || 10) ); case 'get_doc_content': return await this.documentationService.getDocumentationContent( String(parsedCommand.arguments.url), parsedCommand.arguments.section ? String(parsedCommand.arguments.section) : undefined ); case 'list_categories': return await this.documentationService.listCategories(); default: throw new Error(`Unknown parsed tool: ${parsedCommand.tool}`); }
- src/index.ts:90-102 (schema)Input schema definition for the natural_language_query tool, specifying a required 'query' string parameter.name: 'natural_language_query', description: 'Process natural language queries like "Search livery op msfs sdk"', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Natural language query (e.g., "Search livery op msfs sdk")', } }, required: ['query'] } },
- src/index.ts:90-102 (registration)Registers the 'natural_language_query' tool in the list of available tools returned by ListToolsRequest.name: 'natural_language_query', description: 'Process natural language queries like "Search livery op msfs sdk"', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Natural language query (e.g., "Search livery op msfs sdk")', } }, required: ['query'] } },
- Core parsing logic for natural language queries, matching patterns to map to specific tools and arguments using regex and conditionals.static parse(command: string): { tool: string; arguments: any } | null { // Match "Search [term] op msfs sdk" const searchPattern = /^Search\s+(.+?)\s+op\s+msfs\s+sdk\s*$/i; const match = command.match(searchPattern); if (match) { const query = match[1]; return { tool: "search_msfs_docs", arguments: { query: query, category: "all", limit: 5 } }; } // Match "Get content for [url]" const contentPattern = /^Get\s+content\s+for\s+(https?:\/\/.+)$/i; const contentMatch = command.match(contentPattern); if (contentMatch) { const url = contentMatch[1]; return { tool: "get_doc_content", arguments: { url: url } }; } // Match "List categories" if (command.toLowerCase() === "list categories") { return { tool: "list_categories", arguments: {} }; } // Match "Show categories" if (command.toLowerCase() === "show categories") { return { tool: "list_categories", arguments: {} }; } // Match "Search [term] in [category]" const categorySearchPattern = /^Search\s+(.+?)\s+in\s+(aircraft|scenery|simvars|panels|missions|packaging|tools|general)$/i; const categoryMatch = command.match(categorySearchPattern); if (categoryMatch) { const query = categoryMatch[1]; const category = categoryMatch[2].toLowerCase(); return { tool: "search_msfs_docs", arguments: { query: query, category: category, limit: 5 } }; } return null; // Onbekend commando }