Skip to main content
Glama

searchSettings

Search configuration and settings files (JSON/JSONC) for specific keys or values within your development workspace.

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

  • src/index.ts:32-56 (registration)
    Registers the searchSettings tool with the MCP server, defining its description, input schema, and handler function.
    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,
          };
        }
      }
    );
  • Handler function for searchSettings tool. Searches configuration files using predefined patterns or custom includes, leveraging 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 searchSettings tool using Zod: query (required string) and optional include array.
    {
      query: z.string().describe("Search term to find in settings files"),
      include: z.array(z.string()).optional().describe("Custom glob patterns for settings files"),
    },
  • Shared helper function searchFiles that performs glob-based file search and content matching, used by searchSettings to find matches in settings files.
    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;
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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