Skip to main content
Glama

searchSettings

Search configuration and settings files (JSON/JSONC) for specific keys or values to locate and analyze workspace settings.

Instructions

Search configuration and settings files (JSON/JSONC) for keys or values

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term to find in settings files
includeNoCustom glob patterns for settings files

Implementation Reference

  • The handler function that executes the logic for the 'searchSettings' tool. It defines settings-specific glob patterns and calls the shared searchFiles helper.
    async ({ query, include }: { query: string; include?: string[] }) => { try { const patterns = include ?? [ "**/.vscode/settings.json", "**/settings.json", "**/*.json", "**/*.jsonc", ]; const results = await searchFiles(query, patterns, { maxResults: 50 }); return { content: results }; } catch (error) { return { content: [{ type: "text", text: `Error searching settings: ${error}` }], isError: true, }; } }
  • Input schema for the searchSettings tool using Zod, defining 'query' and optional 'include' parameters.
    { query: z.string().describe("Search term to find in settings files"), include: z.array(z.string()).optional().describe("Custom glob patterns for settings files"), },
  • src/index.ts:32-56 (registration)
    Registration of the 'searchSettings' tool on the MCP server using mcp.tool(), including name, description, schema, and handler.
    mcp.tool( "searchSettings", "Search configuration and settings files (JSON/JSONC) for keys or values", { query: z.string().describe("Search term to find in settings files"), include: z.array(z.string()).optional().describe("Custom glob patterns for settings files"), }, async ({ query, include }: { query: string; include?: string[] }) => { try { const patterns = include ?? [ "**/.vscode/settings.json", "**/settings.json", "**/*.json", "**/*.jsonc", ]; const results = await searchFiles(query, patterns, { maxResults: 50 }); return { content: results }; } catch (error) { return { content: [{ type: "text", text: `Error searching settings: ${error}` }], isError: true, }; } } );
  • Shared helper function searchFiles used by searchSettings (and searchDocs) to glob files and search content.
    export async function searchFiles( query: string, include: string[], options: SearchOptions = {} ): Promise<SearchResultItem[]> { const { maxResults = 100, listOnly = false } = options; const files = await fg(include, { dot: false, ignore: ["**/node_modules/**", "**/.git/**", "**/dist/**"], unique: true, }); const results: SearchResultItem[] = []; for (const file of files) { if (listOnly) { results.push({ type: "text", text: file }); if (results.length >= maxResults) break; continue; } try { const content = await fs.readFile(file, "utf8"); if (!query || content.toLowerCase().includes(query.toLowerCase())) { const preview = content.slice(0, 2000); results.push({ type: "text", text: `# ${file}\n\n${preview}` }); } if (results.length >= maxResults) break; } catch { // ignore unreadable files } } return results; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cloud-aspect/Config-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server