{"_id":"@danielsimonjr/fzf-mcp","_rev":"8-a151f7bf7bdcaf57c232f586032f545c","name":"@danielsimonjr/fzf-mcp","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@danielsimonjr/fzf-mcp","version":"1.0.0","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@1.0.0","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"cac500f21ad7310f9fa6b76e1e0a1ad76df1aaf7","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-1.0.0.tgz","fileCount":4,"integrity":"sha512-0bX1JIOID1CWtisVu/eAaaCJ/JM+Lyg1YsD5STTuu4CxACMmO2rQlBd671zvarwYpVfb3OYa9a3xiF0LP6U0tw==","signatures":[{"sig":"MEQCIDKgBDXqtvht2Ett0VcDrBMZvVrst49QiGaI07H44L02AiBQivRB8gz2saqUjoY2UCkIukzW5JATho/6SWz2VWsr8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19354},"main":"index.js","type":"commonjs","gitHead":"68de4fe42f6820a1988290ea6395bd488b12750a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"MCP server for fzf fuzzy finder","directories":{},"_nodeVersion":"25.1.0","dependencies":{"@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_1.0.0_1762910010500_0.02250623502204996","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@danielsimonjr/fzf-mcp","version":"1.1.0","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@1.1.0","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"377326ff2541a65b4a70bbd14597a3829d118b63","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-1.1.0.tgz","fileCount":6,"integrity":"sha512-wqm313IVgeg9tEbC6UpIAS6pnobI4HsEG6FQ/DEWCidtO0HO1dEwO2II7EA/oqeHnf7mjGevUoSmL3DSZQKFCQ==","signatures":[{"sig":"MEYCIQDAXwDYqnu7bDaWsB93sMV023P8XIPz2vI1wLALqCLZFgIhANBnMefZ66NGWh4Zwy9cJf/RhAkNPzJqchB7Vyh3vZSl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4488973},"main":"index.js","type":"commonjs","gitHead":"b24994f6c3a46714978833376af9f053b4d25892","scripts":{"test":"echo \"Error: no test specified\" && exit 1","postinstall":"node install-fzf.js"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"_nodeVersion":"25.1.0","dependencies":{"@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_1.1.0_1762911192501_0.05204820540366817","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@danielsimonjr/fzf-mcp","version":"1.1.1","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@1.1.1","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"9766329b46a18d6e987f44fd4411d030cce4a69f","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-1.1.1.tgz","fileCount":6,"integrity":"sha512-9jMrRD9dGwFdmPmJGcLoOAyx3lyApF8ym720lY086D9PZEFMmDEMqmavxoRBmE4gOATYDAIOhcywmT3OqFOwOA==","signatures":[{"sig":"MEUCIQD8agqPPYura5/Q54lS3auH/7MB57Wx5v1qr3CE1Ll/cgIgUn1KThDZFlUAwibTCqZLtcux1j4kg3p2TFXP9eswP4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4489723},"main":"index.js","type":"commonjs","gitHead":"0bfb1b3f6b5e9d74b5f90f8cb8488dff769df5b8","scripts":{"test":"echo \"Error: no test specified\" && exit 1","postinstall":"node install-fzf.js"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"_nodeVersion":"25.1.0","dependencies":{"@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_1.1.1_1762914269959_0.5602002423596364","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@danielsimonjr/fzf-mcp","version":"1.1.3","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@1.1.3","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"57c499558fc9e913dee6fb3d7e46dc03f7bc7ac9","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-1.1.3.tgz","fileCount":6,"integrity":"sha512-Lkod3dgCPu7UQUdNMrL9T4b/xl0QwXDHXK/Vys531Yn5fzYGwoWpLHUm731C9DnrqYs/mx4ikDNFzc9E0D2QHQ==","signatures":[{"sig":"MEQCIAGdWYTEO6pWtrKXinsnXp7zsJtQjlhdffIw9yFy3USYAiAs8xTCwc/rg6iYMR1bAs3Z/xniq8UT6dB3YoKMxe98tQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4493366},"main":"index.js","type":"commonjs","gitHead":"07fac57f8ae04c1b9c442ac081f22ee5be2a3afc","scripts":{"test":"node --test tests/*.js","postinstall":"node install-fzf.js"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_1.1.3_1781461098448_0.5374299060701695","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@danielsimonjr/fzf-mcp","version":"1.1.4","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@1.1.4","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"d5b428c5c06ea667b2e2d50b38d1c6f79147f5eb","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-1.1.4.tgz","fileCount":6,"integrity":"sha512-+DAsNfzZ6TO1fVrH5DLlIHZkDHKeuT/HULha/a2mnJaZ8CFkDFMpgJcE1LiZePV82pPfwCm1ApQJ+P+Bs6MXSw==","signatures":[{"sig":"MEYCIQC1AKajNCzGYBH357vY+yRqTDWrkDTGPOO6DrAdjPCE2AIhAMCPQXwAF1rsK1nJJeLjy0vJAF/ykaqpcf12QqO8te5U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4495822},"main":"index.js","type":"commonjs","gitHead":"418c71bcfe3640c1d62fd03350fc747de43c0b1e","scripts":{"test":"node --test tests/*.js","postinstall":"node install-fzf.js"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"overrides":{"@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_1.1.4_1785178886403_0.4691536523217452","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@danielsimonjr/fzf-mcp","version":"1.3.0","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@1.3.0","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"a4a55bec2a2d824c406ed427dfe70c68fd3b4455","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-1.3.0.tgz","fileCount":6,"integrity":"sha512-1z98iO4V5rRsxKUQ3oIyH+fz9P3qynwxPQt4DaKIfhFIH593U4o4WJbT+7IYOnTCZFI3Y3ELbiD51XCZHY+bKw==","signatures":[{"sig":"MEUCIQDZT1zWiOHuWUgJ2sOSoSp+ZxcbWotXv4gybXUVnlSCAwIgNfOymq4kczArEBzmQ6VzatpOMOVJGcd5dk6donwqnX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4495822},"main":"index.js","type":"commonjs","gitHead":"7c094cba2b553a49a46ce0db304b6a3f354ca2e2","scripts":{"test":"node --test tests/*.js","postinstall":"node install-fzf.js"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"overrides":{"@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_1.3.0_1786594572843_0.7733893696443228","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@danielsimonjr/fzf-mcp","version":"2.0.0","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","_id":"@danielsimonjr/fzf-mcp@2.0.0","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"homepage":"https://github.com/danielsimonjr/fzf-mcp","bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"bin":{"fzf-mcp":"index.js"},"dist":{"shasum":"195feedb08da6903da70e251418c6a9c1bf1753b","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-2.0.0.tgz","fileCount":6,"integrity":"sha512-ZQu/Yr/09zX62Q8fxfxSJ4i6fZzjChfd+Ca45b/GKlA5DKk8M+XoLT2JFQ06X2+WmnIr7o2LAPxRFvH7zea1Eg==","signatures":[{"sig":"MEUCIGS9mUp9EH7g44HcVKfi6DVombTO7Lo76PLXBsqEhTx3AiEA4gNjovYVpaz4UFgw5L3QTTO2QBR00XQQSDQawDUwhF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDHYBByRDebhrSH6uSvuoOSVR7AK4oazVkCrDai8i5DGgIgeEc8oTYBj7jXCbbH5sOxHTbyLVFA18RkONgd8vUsLW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4495761},"main":"index.js","type":"commonjs","gitHead":"5592032e32f45110e81a186cbccc26c7ea52366c","scripts":{"test":"node --test tests/*.js","postinstall":"node install-fzf.js"},"_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"overrides":{"@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/server":"^2.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fzf-mcp_2.0.0_1788623571414_0.019730409519689074","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"_id":"@danielsimonjr/fzf-mcp@2.1.0","bin":{"fzf-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"dist":{"shasum":"613232ff4421fe663086d327247e1e4dec97b0a0","tarball":"https://registry.npmjs.org/@danielsimonjr/fzf-mcp/-/fzf-mcp-2.1.0.tgz","fileCount":17,"integrity":"sha512-HK9nCxXG1iY8FbUXDq/JcueEeFlPLKpd6QayZmdhkdoTJ1BuPChsmsUJtsE7PApPLWhkcrzBqtv3YhulszpmIA==","signatures":[{"sig":"MEUCIQCcS1fxaGe8z9P0fQ3KbMlaLmisxKM7sOrCiB7094scLwIgRn2cdMtBEa4R087HJNbNCfFNVCbBjAYKUPr/ncfbtFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCNCJQKP8+P2A7GtPKRiRwIA0/mMvk/Hp9fB8CBUSCb0wIgXXHQZ75UP56MOKhyLPmdpNylJ9/utyz9z7PCN9Vw+Hg="}],"unpackedSize":9817168},"main":"dist/index.js","name":"@danielsimonjr/fzf-mcp","type":"commonjs","types":"./dist/index.d.ts","author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"engines":{"bun":">=1.4.2","node":">=24"},"gitHead":"cec16bc504bfb8fe8c10bf8174b3af8bd0f0a63e","license":"MIT","scripts":{"test":"bun run build && bun run bundle && node --test tests/*.js","build":"tsc","bundle":"node scripts/bundle.mjs","typecheck":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","prepublishOnly":"bun run build"},"version":"2.1.0","_npmUser":{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"},"homepage":"https://github.com/danielsimonjr/fzf-mcp","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"overrides":{"@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","directories":{},"maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"_nodeVersion":"24.19.0","dependencies":{"@modelcontextprotocol/core":"^2.0.0","@modelcontextprotocol/server":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.2","devDependencies":{"esbuild":"0.28.2","typescript":"^7.0.2","@types/node":"26.6.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fzf-mcp_2.1.0_1790184610512_0.6774332077175065"}}},"time":{"created":"2025-11-12T01:13:30.411Z","modified":"2026-09-23T17:30:10.907Z","1.0.0":"2025-11-12T01:13:30.703Z","1.1.0":"2025-11-12T01:33:12.757Z","1.1.1":"2025-11-12T02:24:30.236Z","1.1.3":"2026-06-14T18:18:18.671Z","1.1.4":"2026-07-27T19:01:26.621Z","1.3.0":"2026-08-13T04:16:13.044Z","2.0.0":"2026-09-05T15:52:51.555Z","2.1.0":"2026-09-23T17:30:10.695Z"},"bugs":{"url":"https://github.com/danielsimonjr/fzf-mcp/issues"},"author":{"url":"https://github.com/danielsimonjr","name":"Daniel Simon Jr."},"license":"MIT","homepage":"https://github.com/danielsimonjr/fzf-mcp","keywords":["mcp","fzf","fuzzy-finder","search","file-search","filter"],"repository":{"url":"git+https://github.com/danielsimonjr/fzf-mcp.git","type":"git"},"description":"MCP server for fzf fuzzy finder (self-contained with bundled fzf binary)","maintainers":[{"name":"danielsimonjr","email":"danielsimonjr@yahoo.com"}],"readme":"# fzf MCP Server\n\n[![NPM](https://img.shields.io/npm/v/@danielsimonjr/fzf-mcp.svg)](https://www.npmjs.com/package/@danielsimonjr/fzf-mcp)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-1.0-purple.svg)](https://modelcontextprotocol.io)\n\nModel Context Protocol (MCP) server for [fzf](https://github.com/junegunn/fzf), the command-line fuzzy finder. Enables fuzzy file searching, list filtering, and content searching through MCP.\n\n## Features\n\nn🎁 **Self-Contained**: fzf binary automatically downloaded and bundled during installation - **no manual setup required!**\n\n- **Fuzzy File Search**: Search for files recursively using fzf's fuzzy matching\n- **List Filtering**: Filter any list of items with fuzzy matching\n- **Content Search**: Search within file contents using fuzzy matching\n- **Fast & Efficient**: Leverages fzf's blazing-fast fuzzy finder\n- **Auto-Install**: fzf binary downloads automatically on `npm install`\n- **Cross-Platform**: Works on Windows, macOS, and Linux\n\n## Prerequisites\n\n**None!** fzf binary is automatically downloaded and bundled during `npm install`. The package is completely self-contained.\n\n## Installation\n\n### Using NPX (Recommended)\nNo installation required:\n```bash\nnpx @danielsimonjr/fzf-mcp\n```\n\n### Global Installation\n```bash\nnpm install -g @danielsimonjr/fzf-mcp\n```\n\n### From Source\n```bash\ngit clone https://github.com/danielsimonjr/fzf-mcp.git\ncd fzf-mcp\nbun install\nbun run build     # the server is TypeScript; it compiles to dist/\nbun run bundle    # regenerate the committed plugin/bundle/index.cjs the plugin runs\n```\n\nBun is the development toolchain; Node is the runtime the server ships on. The fzf\nbinary is fetched by `postinstall`, which SKIPS in a source checkout until `dist/`\nexists -- build first, and it is fetched on the next install.\n\n## Configuration\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n#### Using NPX\n```json\n{\n  \"mcpServers\": {\n    \"fzf\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@danielsimonjr/fzf-mcp\"]\n    }\n  }\n}\n```\n\n#### Using Global Install\n```json\n{\n  \"mcpServers\": {\n    \"fzf\": {\n      \"command\": \"fzf-mcp\"\n    }\n  }\n}\n```\n\n#### Custom fzf Path\nIf fzf is not in your PATH, set the `FZF_PATH` environment variable:\n\n```json\n{\n  \"mcpServers\": {\n    \"fzf\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@danielsimonjr/fzf-mcp\"],\n      \"env\": {\n        \"FZF_PATH\": \"C:\\\\path\\\\to\\\\fzf.exe\"\n      }\n    }\n  }\n}\n```\n\n### VS Code\n\nAdd to `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"fzf\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@danielsimonjr/fzf-mcp\"]\n    }\n  }\n}\n```\n\n## Available Tools\n\n### 1. `fuzzy_search_files`\n\nSearch for files using fzf's fuzzy matching.\n\n**Parameters:**\n- `query` (required): Fuzzy search query (e.g., \"readme\", \"index.js\")\n- `directory` (optional): Starting directory (default: current directory)\n- `maxResults` (optional): Maximum number of results (default: 50)\n- `caseSensitive` (optional): Enable case-sensitive matching (default: false)\n- `exact` (optional): Enable exact matching instead of fuzzy (default: false)\n\n**Example:**\n```json\n{\n  \"query\": \"readme\",\n  \"directory\": \"C:\\\\projects\",\n  \"maxResults\": 10\n}\n```\n\n### 2. `fuzzy_filter`\n\nFilter a list of items using fzf's fuzzy matching algorithm.\n\n**Parameters:**\n- `items` (required): Array of strings to filter\n- `query` (required): Fuzzy search query\n- `maxResults` (optional): Maximum number of results (default: 50)\n- `caseSensitive` (optional): Enable case-sensitive matching (default: false)\n- `exact` (optional): Enable exact matching (default: false)\n\n**Example:**\n```json\n{\n  \"items\": [\"apple\", \"banana\", \"orange\", \"grape\", \"pineapple\"],\n  \"query\": \"app\",\n  \"maxResults\": 5\n}\n```\n\n### 3. `fuzzy_search_content`\n\nSearch within file contents using fuzzy matching.\n\n**Parameters:**\n- `query` (required): Content search query\n- `directory` (optional): Directory to search (default: current directory)\n- `filePattern` (optional): File pattern to search (default: \"*\")\n- `maxResults` (optional): Maximum number of results (default: 50)\n- `caseSensitive` (optional): Enable case-sensitive matching (default: false)\n\n**Example:**\n```json\n{\n  \"query\": \"function\",\n  \"directory\": \"C:\\\\projects\\\\myapp\",\n  \"filePattern\": \"*.js\",\n  \"maxResults\": 20\n}\n```\n\n## Companion skill\n\nThis plugin ships a companion skill, `fzf` (`fzf-mcp:fzf`, slash trigger\n`/fzf`), at `skills/fzf/SKILL.md`. It's a judgment layer over the 3 tools\nabove — no new tools of its own — that steers you toward `fuzzy_filter` for\na list already in hand, `fuzzy_search_files` / `fuzzy_search_content` for\nfilesystem walks, and flags when an indexed lookup (`everything-mcp`) would\nbe faster than fzf's live directory walk.\n\n## Usage Examples\n\n### Example 1: Find Configuration Files\n\nTell Claude:\n```\nUse fzf to search for all configuration files (config, .env, settings) in my project directory.\n```\n\nClaude will use the `fuzzy_search_files` tool to find matching files.\n\n### Example 2: Filter List of Options\n\nTell Claude:\n```\nI have this list of packages: [express, react, vue, angular, svelte, next, nuxt, remix]\nUse fzf to filter for packages containing \"re\"\n```\n\nClaude will use the `fuzzy_filter` tool to return: `express`, `react`, `svelte`\n\n### Example 3: Search Code\n\nTell Claude:\n```\nSearch for all occurrences of \"async function\" in my TypeScript files.\n```\n\nClaude will use the `fuzzy_search_content` tool to find matches.\n\n## How It Works\n\nfzf-mcp uses fzf's `--filter` mode to provide non-interactive fuzzy matching:\n\n1. **File Search**: Generates a file list from the directory and pipes it to fzf\n2. **List Filter**: Pipes the provided list to fzf for filtering\n3. **Content Search**: Uses grep/findstr to find content, then filters with fzf\n\nAll matching is done server-side, returning only the filtered results to Claude.\n\n## Fuzzy Matching Algorithm\n\nfzf uses a sophisticated fuzzy matching algorithm that:\n- Matches characters in order but not necessarily consecutive\n- Scores matches based on character positions\n- Prioritizes matches at word boundaries\n- Supports exact matching with the `exact` option\n\n**Examples:**\n- Query `\"abc\"` matches: `\"abc\"`, `\"a_b_c\"`, `\"aXbXc\"`, `\"AnyBigCat\"`\n- Query `\"^music\"` matches files starting with \"music\"\n- Query `\"mp3$\"` matches files ending with \"mp3\"\n\n## Troubleshooting\n\n### fzf Not Found\n\n**Error:** `Failed to execute fzf: spawn fzf ENOENT`\n\n**Solution:**\n1. Ensure fzf is installed: `fzf --version`\n2. Add fzf to your PATH, or set `FZF_PATH` environment variable in MCP config\n\n### No Results Found\n\n**Causes:**\n- Query doesn't match any items\n- Directory doesn't exist or is empty\n- Insufficient permissions to read directory\n\n**Solutions:**\n- Try a less specific query\n- Verify directory path\n- Check file permissions\n\n### Windows-Specific Issues\n\n**Issue:** File listing commands fail\n\n**Solution:**\nThe server tries multiple commands (`dir`, `find`, `ls`) and uses the first that succeeds. Ensure at least one is available in your PATH.\n\n## Development\n\n```bash\n# Clone repository\ngit clone https://github.com/danielsimonjr/fzf-mcp.git\ncd fzf-mcp\n\n# Install dependencies\nnpm install\n\n# Make executable\nchmod +x index.js\n\n# Test locally\nnode index.js\n```\n\n## Contributing\n\nContributions welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- [fzf](https://github.com/junegunn/fzf) by Junegunn Choi - The amazing fuzzy finder\n- [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic\n\n## Links\n\n- **NPM Package:** https://www.npmjs.com/package/@danielsimonjr/fzf-mcp\n- **GitHub Repository:** https://github.com/danielsimonjr/fzf-mcp\n- **fzf Project:** https://github.com/junegunn/fzf\n- **MCP Documentation:** https://modelcontextprotocol.io\n\n## Recent updates\n\nSee [CHANGELOG.md](CHANGELOG.md) for recent changes — shell-injection regression coverage added.\n\n---\n\n**Made with ❤️ for the MCP community**\n","readmeFilename":"README.md"}