mcp-filesearch
Currently it only exposes a datetime liveness probe; the README describes planned read-only root-scoped ripgrep search tools that are not yet in the schema.
Get the current date and time in a specified IANA timezone (default UTC).
Shift the result by whole days, from -365 to +365.
Request output as ISO 8601 wall-clock time, Unix epoch seconds, or a localized human string.
Receive
iso,unix, and canonicaltimezone, plushumanwhen requested.Future/planned: bounded file listing, match counting, and content search over allowed roots, read-only and root-scoped.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-filesearchfind all TypeScript files modified in the last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-filesearch
A read-only, root-scoped filesystem search MCP server. It wraps ripgrep (rg) behind a small set of bounded tools — file listing, match counting, content search — always confined to the roots passed on the command line: never a shell, never a write.
Status: under construction, phase by phase. docs/implementation-plan.md is the canonical plan and records what has landed. Today the server ships get_datetime as its liveness probe; the search tools arrive phase by phase behind the security rules in CONVENTIONS.md.
Requirements
Node ≥ 22; CI runs 22 and 24, and .node-version pins 24 for local mise users. The search tools spawn rg, which CI runners ship.
Related MCP server: File Search Tool
Develop
npm ci
npm run build
npm testnpm test runs vitest against src/ through the SDK's own client over an in-memory transport, so no build is needed to test. npm run build is needed for the bin entry and for npx over GitHub.
Run
node dist/index.js /path/to/search [another/root ...]At least one allowed root is required — there is no default and no cwd fallback. Roots are realpathed at startup and duplicates collapse; every path a tool touches is validated against them before anything runs.
Register with 1MCP
"filesearch": {
"command": "npx",
"args": ["-y", "github:GwylimWilliams/mcp-filesearch", "/path/to/search"],
"tags": ["notes", "search"]
}Scoped roots are passed as CLI args after the repo — never cwd, so the scoping holds whatever directory the gateway happens to run in. The prepare script builds on install, which is what makes npx -y github:… work without a published package.
The rules
CONVENTIONS.md— the canonical rule listAGENTS.md— the same rules agent-facing, plus the per-tool checklistdocs/adding-a-tool.md— the worked walkthroughSECURITY.md— the security posture and how to report a problem
License
MIT.
Available Tools
1 toolget_datetimeGet date and timeARead-only
Current date and time in an IANA timezone, optionally shifted by whole days. The iso field is the wall clock in that zone, so its offset makes the instant unambiguous; unix is the same instant as epoch seconds, and human is a localized rendering.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Adds a localized "human" string when set to "human". | iso |
| timezone | No | IANA timezone name, e.g. "UTC", "Europe/London", "Asia/Tokyo". | UTC |
| offsetDays | No | Whole days to shift the result, relative to now. |
Output Schema
| Name | Required | Description |
|---|---|---|
| iso | Yes | ISO 8601 wall-clock time in the requested zone, carrying that zone's UTC offset. |
| unix | Yes | Seconds since the Unix epoch. |
| human | No | Localized rendering; present only when format is "human". |
| timezone | Yes | Canonical IANA name of the resolved zone. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds useful behavioral context by explaining that iso includes an offset that disambiguates the instant, that unix is the same instant as epoch seconds, and that human is a localized rendering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and optional shift, followed by precise output-format semantics. Every clause contributes meaningful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still usefully clarifies the meaning of the iso, unix, and human fields. Combined with the annotation safety hints and complete parameter schema, an agent has enough context to invoke the tool correctly; only explicit usage guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are fully documented in the schema itself. The description restates the timezone and whole-day shift concepts but adds no syntax or format details beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: current date and time, in an IANA timezone, optionally shifted by whole days. It is immediately clear what the tool returns and how its output is affected by parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There are no sibling tools and no alternatives to distinguish from, but the description does not explicitly state when to use this tool versus other time-related approaches. Usage is strongly implied by the resource and parameter set, which is adequate for a simple utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
get_datetime
TDQS
Scored across 1 tool
The server exposes only one tool, so there is no possibility of confusing it with another tool. Its purpose is clearly stated as retrieving current date and time.
The single tool name get_datetime follows a clear snake_case verb_noun convention. There are no other names to conflict with or create inconsistency.
The server is named mcp-filesearch, but it provides only a datetime tool, which is unrelated to file search. A single trivial tool is an extreme mismatch for the apparent file-search purpose.
For a file-search server, there are no tools for searching, reading, listing, or retrieving files. The surface is severely incomplete and cannot support the stated domain.
Maintenance
Related MCP Connectors
Read-only search of the Agent Connectors MCP directory.
Search and discover MCP servers and agent tools listed in the MCP Harbor directory.
Search and get install details on MCP servers, right from your agent -- a unified marketplace index.
Browse and manage files in your Moxt AI workspace from any MCP client.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables file and directory searching through the greply CLI tool with configurable search options like context lines, case sensitivity, and pattern matching. Provides direct access to powerful grep-like functionality from MCP-compatible clients.29 npmMIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables file system search and inspection, including directory listing, regex-based file name and content searches, and reading text, PDF, and DOCX files.1MIT
- AlicenseAqualityDmaintenanceA sophisticated MCP server providing powerful file search capabilities including single file search, recursive directory search, and file information retrieval.3MIT
- FlicenseAqualityDmaintenanceEnables listing, reading, and searching local files and directories through MCP tools.4-