UNPKG

mcp-search-tools

Version:

MCP server and client for web search and page viewing tools - DuckDuckGo search and web scraping

161 lines (128 loc) 3.29 kB
# MCP Search Tools - Usage Guide ## Quick Start ### Universal MCP Configuration All modern AI editors use the same MCP configuration format. Add this configuration to your editor's settings: ```json { "mcpServers": { "web-search": { "command": "npx", "args": ["-y", "mcp-search-server"] } } } ``` ### Editor-Specific Locations | Editor | Configuration File Location | |--------|----------------------------| | **Claude Desktop** | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows) | | **Cursor** | Settings > MCP > Add Server | | **Claude Code** | `.claude.json` in project root | | **Windsurf** | `.windsurfrc` in project root | | **Cline** | `.cline/mcp.json` in project root | | **Zed** | Settings > Extensions > MCP | ### Installation No installation required! The server works directly with npx. ## Usage Examples ### As Library ```typescript import { MCPWebToolsClient } from 'mcp-search-tools'; const client = new MCPWebToolsClient(); await client.connect(); // Web search const searchResults = await client.searchWeb({ query: 'latest AI developments', maxResults: 5 }); // Fetch web page const pageContent = await client.fetchWebPage({ urls: ['https://example.com'], maxLength: 2000 }); ``` ### As MCP Server Process ```typescript import { spawn } from 'child_process'; const server = spawn('npx', ['-y', 'mcp-search-server'], { stdio: ['pipe', 'pipe', 'pipe'] }); ``` ## API Reference ### Web Search Tool ```typescript interface WebSearchInput { query: string; maxResults?: number; region?: string; time?: string; maxRetries?: number; retryDelay?: number; } ``` ### Web Page Tool ```typescript interface WebPageInput { urls: string[]; maxLength?: number; includeImages?: boolean; includeLinks?: boolean; maxRetries?: number; retryDelay?: number; concurrency?: number; } ``` ### Download Files Tool ```typescript interface DownloadFilesInput { urls: string[]; directory: string; filenames?: string[]; maxRetries?: number; retryDelay?: number; timeout?: number; concurrency?: number; } ``` ## Environment Variables - `NODE_ENV`: Set to 'production' for production use - Custom headers can be configured via environment variables ## Examples ### Basic Usage ```javascript const { MCPWebToolsClient } = require('mcp-search-tools'); async function main() { const client = new MCPWebToolsClient(); await client.connect(); // Web search const searchResults = await client.searchWeb({ query: 'TypeScript best practices' }); console.log(searchResults); // Fetch web page const pageResults = await client.fetchWebPage({ urls: ['https://example.com'] }); console.log(pageResults); // Download files (requires valid directory) /* const downloadResults = await client.downloadFiles({ urls: ['https://httpbin.org/json'], directory: './downloads' }); console.log(downloadResults); */ await client.disconnect(); } main(); ``` ### Development Setup ```bash # Clone repository git clone https://github.com/deadraid/mcp-web-tools.git cd mcp-web-tools # Install dependencies npm install # Build npm run build # Run server npm run start:server