Skip to main content
Glama
Wayazi

MCP File System

by Wayazi

search_files

Search through directories on the MCP File System to find files matching a specific pattern, with options to exclude unwanted results for precise queries. Simplify file discovery and organization.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
excludePatternsNoPatterns to exclude
pathYesStarting directory
patternYesSearch pattern

Implementation Reference

  • The asynchronous handler function for the 'search_files' tool. It validates the path, recursively traverses the directory tree, skips excluded patterns, collects files matching the pattern by name (case-insensitive substring match), and returns a list of matching full paths or an error message.
    async ({ path: dirPath, pattern, excludePatterns = [] }: { path: string, pattern: string, excludePatterns?: string[] }) => {
        try {
            const validPath = validatePath(dirPath);
            const results: string[] = [];
    
            async function searchDir(currentPath: string) {
                const entries = await fs.readdir(currentPath, { withFileTypes: true });
                
                for (const entry of entries) {
                    const fullPath = path.join(currentPath, entry.name);
                    
                    // Check exclude patterns
                    if (excludePatterns.some(exclude => 
                        fullPath.toLowerCase().includes(exclude.toLowerCase()))) {
                        continue;
                    }
    
                    // Check if name matches pattern
                    if (entry.name.toLowerCase().includes(pattern.toLowerCase())) {
                        results.push(fullPath);
                    }
    
                    // Recursively search directories
                    if (entry.isDirectory()) {
                        await searchDir(fullPath);
                    }
                }
            }
    
            await searchDir(validPath);
            return { content: [{ type: 'text', text: results.join('\n') }] };
        } catch (error: any) {
            return { content: [{ type: 'text', text: `Error searching files: ${error.message}` }] };
        }
    }
  • Zod schema for 'search_files' tool inputs: required 'path' (starting directory), 'pattern' (search string), optional 'excludePatterns' array.
    { path: z.string().describe("Starting directory"), pattern: z.string().describe("Search pattern"), excludePatterns: z.array(z.string()).optional().describe("Patterns to exclude") },
  • src/index.ts:184-185 (registration)
    Registration of the 'search_files' tool on the MCP server instance using server.tool(name, schema, handler).
    server.tool(
        "search_files",
Install Server

Other Tools

Related 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/Wayazi/mcp_file_system'

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