EZ Web Search MCP Server
by Gnarus-G
README.md
# EZ Web Search MCP Server
A simple Model Context Protocol (MCP) server that provides web search functionality using DuckDuckGo.
## Features
- Performs web searches via DuckDuckGo's HTML interface.
- Returns a list of search results including title, URL, and description.
- Configurable limit for the number of results.
## Setup and Installation
This server is built with TypeScript and runs on Node.js.
1. **Prerequisites:**
- Node.js (v16 or newer recommended)
- npm (comes with Node.js)
- TypeScript (will be installed as a project dependency)
2. **Clone/Download:**
- Ensure this server's code is in its directory (e.g., `~/.mcphub/servers/ez-web-search-mcp/`).
3. **Install Dependencies:**
- Navigate to the server's directory:
```bash
cd /path/to/ez-web-search-mcp
# Example: cd ~/.mcphub/servers/ez-web-search-mcp
```
- Install dependencies:
```bash
npm install
```
4. **Build the Server:**
- Compile the TypeScript code:
```bash
npm run build
```
- This will create a `build` directory with the compiled JavaScript (`build/index.js`).
## Running the Server
This server is designed to be launched by an MCP client like `mcphub.nvim` via its stdio. The `mcphub.nvim` configuration in `servers.json` should point to the compiled `build/index.js` file.
Example entry for your MCP client's `servers.json` (e.g., `~/.config/mcphub/servers.json`):
```json
{
"mcpServers": {
// ... other servers ...
"ez-web-search-mcp": {
"command": "node",
"args": [
"/full/path/to/your/home/.mcphub/servers/ez-web-search-mcp/build/index.js"
// It's generally best to use an absolute path here.
],
"disabled": false
}
}
// ... other configurations ...
}
```
_(Remember to replace `/full/path/to/your/home/` with the actual absolute path to your home directory.)_
## Usage
Once the server is configured and running via an MCP client, it provides one tool:
- **Tool Name:** `search`
- **Description:** Performs a web search using DuckDuckGo and returns a list of results.
- **Input Schema:**
- `query` (string, required): The search term.
- `limit` (number, optional, default: 10): Maximum number of results to return.
- **Output:**
- The tool returns an MCP content block, typically a series of text items, each representing a search result with its title, URL, and description.
Example MCP client call:
```
use_mcp_tool
server_name: "ez-web-search-mcp"
tool_name: "search"
tool_input:
query: "latest AI advancements"
limit: 5
```
## Development
- Source code is in the `src` directory.
- After making changes to `*.ts` files, rebuild with `npm run build`.
TDQS
A3.5/5.0
Scored across 1 tool
Disambiguation5/5
With only a single tool, there is no possibility of ambiguity or overlap. The tool's purpose is clearly defined as performing a web search.
Naming Consistency5/5
The tool name 'search' is a clear verb and, being the only tool, there is no inconsistency in naming patterns.
Tool Count3/5
The server has only one tool, which is on the thin side. However, for a focused web search server, a single tool can be sufficient, but it still falls into the borderline category of 1-2 tools.
Completeness5/5
The domain is web search, and the single tool directly fulfills that purpose without obvious gaps. It performs a search and returns results, which covers the core functionality.
Maintenance
ActivityInactive
ResponsivenessNo issues