Skip to main content
Glama
DataCleaninghash

Ressl MCP Server - Advanced File Search

Ressl MCP Server - Advanced File Search

A sophisticated Model Context Protocol (MCP) server providing powerful file search capabilities for Claude Desktop and other MCP-compatible clients.

Features

  • Single File Search: Search for keywords within a single file with line numbers

  • Directory Search: Recursively search across entire directories with extension filtering

  • File Information: Get detailed metadata about files (size, line count, modification date)

  • Advanced Options: Case-sensitive search, custom result limits, configurable formatting

  • Error Handling: Comprehensive error handling with clear messages

  • Performance: Efficient regex-based search with result limiting

Related MCP server: File Search Tool

Installation

  1. Clone this repository:

git clone <your-repo-url>
cd ressl-mcp-server
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Configuration for Claude Desktop

Add the following to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fileSearch": {
      "command": "node",
      "args": [
        "C:\\path\\to\\ressl-mcp-server\\dist\\index.js"
      ]
    }
  }
}

Make sure to replace the path with your actual project path.

Available Tools

1. search_in_file

Search for a keyword within a single file.

Parameters:

  • filePath (required): Path to the file to search

  • keyword (required): The keyword or pattern to search for

  • caseSensitive (optional): Case-sensitive search (default: false)

  • includeLineNumbers (optional): Include line numbers (default: true)

  • maxResults (optional): Maximum results to return (default: 100)

Example:

{
  "filePath": "./src/index.ts",
  "keyword": "function",
  "caseSensitive": false,
  "maxResults": 50
}

2. search_in_directory

Search for a keyword across all files in a directory recursively.

Parameters:

  • directoryPath (required): Path to the directory

  • keyword (required): The keyword or pattern to search for

  • fileExtensions (optional): Array of extensions to filter by, e.g., ["ts", "js"]

  • caseSensitive (optional): Case-sensitive search (default: false)

  • includeLineNumbers (optional): Include line numbers (default: true)

  • maxResults (optional): Maximum results to return (default: 500)

Example:

{
  "directoryPath": "./src",
  "keyword": "class",
  "fileExtensions": ["ts", "js"],
  "maxResults": 100
}

3. get_file_info

Get detailed information about a file.

Parameters:

  • filePath (required): Path to the file

Example:

{
  "filePath": "./src/index.ts"
}

Usage Examples

Example 1: Search within a single file

Search for all occurrences of "search" in the main server file:

{
  "filePath": "./src/index.ts",
  "keyword": "search",
  "includeLineNumbers": true
}

Example 2: Search across project files

Find all TypeScript files containing "async":

{
  "directoryPath": "./src",
  "keyword": "async",
  "fileExtensions": ["ts"],
  "maxResults": 200
}

Example 3: Get file statistics

Retrieve information about a specific file:

{
  "filePath": "./README.md"
}

Development

# Development mode with watch
npm run dev

# Build for production
npm run build

# Start the server
npm start

Testing with MCP Inspector

You can test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Project Structure

ressl-mcp-server/
├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript (generated)
├── examples/             # Example files for testing
├── package.json
├── tsconfig.json
└── README.md

Technical Details

  • Language: TypeScript

  • Runtime: Node.js 18+

  • Framework: MCP SDK v0.5.0

  • Pattern Matching: Regex-based with special character escaping

  • File Handling: UTF-8 encoding with error recovery

  • Performance: Efficient streaming for large files

Error Handling

The server provides clear error messages for:

  • File not found

  • Invalid paths

  • Permission issues

  • Exceeded result limits

License

MIT

Author

Shweta Patel

Available Tools

3 tools
get_file_infoA

Get detailed information about a file including size, modification date, and line count.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file to analyze

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It clearly communicates a read-only operation and enumerates three expected output fields, but it does not disclose error behavior, permission requirements, or how results are structured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It states the action, the target, and the key return fields efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema, the description names the main returned fields and implies non-mutating behavior. It omits edge-case behavior and exact return formatting, but these are minor for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so filePath is already fully documented in the input schema. The description adds no further parameter-level meaning beyond implying the file is analyzed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' with a clear resource 'detailed information about a file' and lists the concrete fields returned: size, modification date, and line count. This clearly distinguishes it from the sibling search tools, which focus on content lookup rather than metadata inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance about when to use this tool versus search_in_file or search_in_directory. The distinction is only implied by the tool names, so an agent receives no direct routing information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_in_directoryA

Search for a keyword across all files in a directory recursively. Returns results from all matching files.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesThe keyword or pattern to search for
maxResultsNoMaximum number of results to return (default: 500)
caseSensitiveNoWhether the search should be case-sensitive (default: false)
directoryPathYesPath to the directory to search within
fileExtensionsNoOptional array of file extensions to filter by (e.g., ["ts", "js", "json"])
includeLineNumbersNoWhether to include line numbers in results (default: true)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It does disclose useful traits: recursive traversal and returning results from all matching files. However, it does not discuss edge cases such as binary files, permission issues, or output limitations, leaving room for more transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short sentences with no filler: the first states the operation and scope, the second states the outcome. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that all six parameters are already documented in the schema, the description is nearly complete for invoking the tool. The only gap is that the exact result structure is not specified, but the description plus the includeLineNumbers and maxResults parameters provide sufficient operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter and default. The description adds no parameter-specific meaning, which is acceptable at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Search for a keyword across all files in a directory recursively.' It clearly distinguishes itself from the sibling search_in_file by emphasizing directory-level recursive search rather than a single-file operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear context: use this tool when the intent is to search across an entire directory tree. It does not explicitly name alternatives or list exclusions, so it stops short of a 5, but the context is not merely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_in_fileA

Search for a keyword within a single file. Returns all matching lines with context.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesThe keyword or pattern to search for
filePathYesPath to the file to search within
maxResultsNoMaximum number of results to return (default: 100)
caseSensitiveNoWhether the search should be case-sensitive (default: false)
includeLineNumbersNoWhether to include line numbers in results (default: true)

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose the main read behavior, but 'Returns all matching lines' is misleading given the maxResults parameter defaults to 100 and can truncate results. 'Context' is also undefined, and there is no mention of case-sensitivity defaults, result ordering, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with no filler. The action and scope are front-loaded, and the output behavior is stated immediately. Every word earns its place, though the vagueness of 'context' is a content rather than structure weakness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and no output schema, the description is minimally viable but incomplete. It states the high-level output but does not describe the shape of returned results, what 'context' means, how maxResults affects results, or whether the search is literal or pattern-based. The 100% schema coverage compensates for parameter meaning, making it usable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema provides descriptions for all 5 parameters, the baseline is 3, and the description does not need to repeat parameter details. The description adds no extra parameter-level meaning beyond what the schema already states, such as clarifying whether the keyword is a literal string or regex pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Search for a keyword') and a specific resource ('within a single file'), which clearly distinguishes it from the sibling search_in_directory. It also states the return payload (matching lines with context), giving the agent an unambiguous understanding of what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'within a single file' provides clear context that this tool is not for directory-wide searches, implying search_in_directory as the alternative. However, it does not explicitly state when not to use this tool or name the sibling alternative, so it stops short of fully explicit usage guidance.

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. 3 tool updatesv1.0.0
    • First observedget_file_info
    • First observedsearch_in_directory
    • First observedsearch_in_file

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

search_in_file and search_in_directory are clearly distinguished by scope (single file vs. entire directory), and get_file_info serves a completely different purpose (metadata retrieval). No two tools overlap in their core functionality.

Naming Consistency5/5

All tool names use snake_case and follow a clear verb_preposition_noun pattern. The two search tools share the 'search_in' prefix, making the family relationship obvious, and get_file_info is consistent with the same verb-noun style.

Tool Count5/5

With only three tools, the server is tightly scoped for a dedicated file search utility. Each tool earns its place—searching a file, searching a directory, and retrieving metadata—without unnecessary bloat.

Completeness4/5

The core search workflows (file-level and directory-level) are fully covered, plus metadata as a helpful complement. However, the 'Advanced' label in the server name hints at potential missing features like regex support or filename search, which are minor gaps for a search-focused tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A MCP server that allows searching for files in the filesystem based on path fragments, returning file metadata including name, path, size, and creation date.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server providing filesystem operations, shell execution, and web search capabilities.
    -
  • A
    license
    C
    quality
    C
    maintenance
    A file management MCP server enabling complete file and directory operations, including advanced editing, templates, and batch processing through natural language.
    19
    17
    3
    ISC