MCP keyword search
# MCP keyword search
A Model Context Protocol (MCP) server that provides keyword search functionality within files
## ๐ Installation
### Step 1: Clone or Create Project
```bash
git clone https://github.com/alfaarghya/mcp-keyword-search
cd mcp-keyword-search
```
### Step 2: Install Dependencies
```bash
pnpm install
```
This will install:
- `@modelcontextprotocol/sdk` - MCP SDK
- `@types/node` - TypeScript definitions for Node.js
- `typescript` - TypeScript compiler
## ๐จ Building the Project
Compile TypeScript to JavaScript:
```bash
pnpm run build
```
This creates a `dist/` folder with compiled JavaScript files.
**Development Mode** (auto-rebuild on changes):
```bash
pnpm run dev
```
## ๐งช Testing
### Using MCP Inspector
The MCP Inspector provides a visual web interface for testing.
#### Step 1: Start the Inspector
```bash
npx @modelcontextprotocol/inspector node dist/index.js
```
#### Step 2: Open in Browser
Navigate to the URL shown
#### Step 3: Test the Tool
1. In the web interface, you'll see **"search_file"** in the tools list
2. Click on it to expand the input form
3. Enter the following test data:
```json
{
"file_path": "./sample.txt",
"keyword": "Hello",
"case_sensitive": false
}
```
4. Click **"Execute"** or **"Run Tool"**
#### Expected Output:
```
Found 3 match(es) for "hello" in ./test.txt:
Line 1 (position 0): Hello World! This is a test file.
Line 3 (position 0): Hello again on line 3.
Line 5 (position 0): HELLO in uppercase.
```

## ๐ง API Reference
### Server Information
- **Name**: `file-search-server`
- **Version**: `1.0.0`
- **Protocol**: Model Context Protocol (MCP)
- **Transport**: stdio
### Available Tools
#### `search_file`
Searches for a keyword within a file.
**Input Schema:**
```typescript
{
file_path: string; // Required: Path to file
keyword: string; // Required: Search keyword
case_sensitive?: boolean; // Optional: Case sensitivity (default: false)
}
```
**Output:**
- List of matching lines with line numbers and positions
- Or error message if file not found or other issues
TDQS
Scored across 1 tool
With only one tool, there is no ambiguity or risk of confusing it with others. The tool's purpose is clearly defined as searching for a keyword within a file.
The tool name follows a clear verb_noun pattern: search_file. This is consistent and predictable, even with only a single tool.
A single tool is extremely minimal, but for a server specifically focused on keyword search in files, it might be acceptable. However, it feels thin and could benefit from additional related tools like directory search or multi-file search.
The server only supports searching within a single file, lacking capabilities such as directory-wide search, regex support, or multi-file search. These are significant gaps for a keyword search tool, rendering the surface severely incomplete.