Skip to main content
Glama

search_files

Search for files by name fragment to locate specific documents or data in your system.

Instructions

Search for files containing a specified fragment in their names

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fragmentYesText fragment to search for in file names

Implementation Reference

  • Core implementation of the search_files tool logic in the FileFinder class, which recursively walks the directory to find files matching the fragment.
    class FileFinder { searchFiles(fragment: string): FileInfo[] { const results: FileInfo[] = []; this.walkDir('.', fragment, results); return results; } private walkDir(dir: string, fragment: string, results: FileInfo[]): void { const files = fs.readdirSync(dir, { withFileTypes: true }); for (const file of files) { const fullPath = path.join(dir, file.name); if (file.isDirectory()) { this.walkDir(fullPath, fragment, results); } else if (file.name.includes(fragment)) { const stats = fs.statSync(fullPath); results.push({ name: file.name, path: path.resolve(fullPath), size: stats.size, created: stats.birthtime.toLocaleString() }); } } } }
  • Input schema definition for the search_files tool.
    inputSchema: { type: 'object', properties: { fragment: { type: 'string', description: 'Text fragment to search for in file names', }, }, required: ['fragment'], },
  • src/index.ts:78-95 (registration)
    Registration of the search_files tool in the ListToolsRequestSchema handler.
    this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: 'search_files', description: 'Search for files containing a specified fragment in their names', inputSchema: { type: 'object', properties: { fragment: { type: 'string', description: 'Text fragment to search for in file names', }, }, required: ['fragment'], }, }, ], }));
  • MCP CallToolRequestSchema handler that handles calls to search_files, validates parameters, executes the search, and returns results or errors.
    this.server.setRequestHandler(CallToolRequestSchema, async (request) => { if (request.params.name !== 'search_files') { throw new McpError( ErrorCode.MethodNotFound, `Unknown tool: ${request.params.name}` ); } const args = request.params.arguments as { fragment: string }; if (!args.fragment) { throw new McpError( ErrorCode.InvalidParams, 'Missing required parameter: fragment' ); } try { const results = this.fileFinder.searchFiles(args.fragment); return { content: [ { type: 'text', text: JSON.stringify(results, null, 2), }, ], }; } catch (error) { console.error('Error searching files:', error); return { content: [ { type: 'text', text: `Error searching files: ${error instanceof Error ? error.message : String(error)}`, }, ], isError: true, }; } });

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/sergey-fintech/MCP'

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