io.github.Opafex/mcp-web-research

Official registry Search and web

Web search (Brave) and SSRF-safe page fetching, extraction and comparison for agents

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @opafex/mcp-web-research
Claude Code
claude mcp add mcp-web-research -e 'BRAVE_SEARCH_API_KEY=<your brave_search_api_key>' -e 'WEB_RESEARCH_SEARCH_PROVIDER=<WEB_RESEARCH_SEARCH_PROVIDER>' -e 'USER_AGENT=<USER_AGENT>' -e 'SEARCH_CACHE_TTL=<SEARCH_CACHE_TTL>' -e 'PAGE_CACHE_TTL=<PAGE_CACHE_TTL>' -e 'FETCH_TIMEOUT_MS=<FETCH_TIMEOUT_MS>' -e 'MAX_HTML_SIZE=<MAX_HTML_SIZE>' -- npx -y @opafex/mcp-web-research@0.1.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mcp-web-research": {
            "command": "npx",
            "args": [
                "-y",
                "@opafex/mcp-web-research@0.1.0"
            ],
            "env": {
                "BRAVE_SEARCH_API_KEY": "<your brave_search_api_key>",
                "WEB_RESEARCH_SEARCH_PROVIDER": "<WEB_RESEARCH_SEARCH_PROVIDER>",
                "USER_AGENT": "<USER_AGENT>",
                "SEARCH_CACHE_TTL": "<SEARCH_CACHE_TTL>",
                "PAGE_CACHE_TTL": "<PAGE_CACHE_TTL>",
                "FETCH_TIMEOUT_MS": "<FETCH_TIMEOUT_MS>",
                "MAX_HTML_SIZE": "<MAX_HTML_SIZE>"
            }
        }
    }
}

Environment variables

  • BRAVE_SEARCH_API_KEY secret Brave Search API key; enables web_search and research_topic (recommended)
  • WEB_RESEARCH_SEARCH_PROVIDER Search provider: "brave" or "duckduckgo" (unofficial HTML scraper, explicit opt-in only)
  • USER_AGENT User-Agent sent with every request (default identifies the bot and links to the repo)
  • SEARCH_CACHE_TTL Search result cache TTL in seconds (default: 900)
  • PAGE_CACHE_TTL Fetched page cache TTL in seconds (default: 3600)
  • FETCH_TIMEOUT_MS Per-request timeout in milliseconds, across all redirect hops (default: 10000)
  • MAX_HTML_SIZE Maximum bytes read from a page body (default: 1000000)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Opafex MCPs
  2. Servers
  3. Quick Start
  4. Development
  5. Shared Utilities
  6. License

Opafex MCPs

Open-source Model Context Protocol servers by Opafex. Each server is a standalone npm package usable with Claude Code, Claude Desktop, Cursor, and any MCP-compatible client.

Servers

PackageDescriptionStatus
@opafex/mcp-enrichmentCompany, contact, email & phone enrichment via Clearbit, Hunter.io, TwilioAvailable
@opafex/mcp-file-processorDocument text extraction, keyword detection, chunkingAvailable
@opafex/mcp-web-researchWeb search (Brave API), SSRF-guarded page fetch, research synthesisAvailable
@opafex/mcp-approval-queueHuman-in-the-loop approval gate — the agent asks, only a person approves (elicitation or CLI)Available
@opafex/knowledge-gridLayered context for agents (a library, in its own repo)Available

Quick Start

# Clone and install
git clone https://github.com/opafex/opafex-mcps.git
cd opafex-mcps
npm install
npm run build

# Run the enrichment server (mock mode — no API keys needed)
node packages/enrichment/dist/index.js
Add to Claude Code

Create or edit .mcp.json in your project root:

{
  "mcpServers": {
    "enrichment": {
      "command": "node",
      "args": ["/path/to/opafex-mcps/packages/enrichment/dist/index.js"],
      "env": {
        "CLEARBIT_API_KEY": "sk-...",
        "HUNTER_API_KEY": "...",
        "TWILIO_ACCOUNT_SID": "...",
        "TWILIO_AUTH_TOKEN": "..."
      }
    }
  }
}

All servers work in mock mode when API keys are omitted — great for development and testing.

Development

npm install          # Install all dependencies
npm run build        # Build all packages
npm test             # Run all tests
Adding a New Server
  1. Create packages/<server-name>/ with package.json, tsconfig.json, and src/
  2. Use @opafex/mcp-shared for the server bootstrap (createMCPServer)
  3. Define tools in tools.ts, wire up in index.ts
  4. Add tests in __tests__/

See packages/enrichment as a reference implementation.

Shared Utilities

@opafex/mcp-shared provides:

  • createMCPServer() / buildMCPServer() — Reusable MCP server bootstrap with tool/resource registration and stdio transport
  • ToolContext.elicit — ask the user a question through the client's UI (MCP elicitation), out of the model's reach
  • Validation helpers — Email, domain, phone format validation

License

MIT

Frequently asked questions

What is io.github.Opafex/mcp-web-research?

Web search (Brave) and SSRF-safe page fetching, extraction and comparison for agents

How do I install io.github.Opafex/mcp-web-research?

It runs on your machine. In Claude Code: claude mcp add mcp-web-research -e 'BRAVE_SEARCH_API_KEY=<your brave_search_api_key>' -e 'WEB_RESEARCH_SEARCH_PROVIDER=<WEB_RESEARCH_SEARCH_PROVIDER>' -e 'USER_AGENT=<USER_AGENT>' -e 'SEARCH_CACHE_TTL=<SEARCH_CACHE_TTL>' -e 'PAGE_CACHE_TTL=<PAGE_CACHE_TTL>' -e 'FETCH_TIMEOUT_MS=<FETCH_TIMEOUT_MS>' -e 'MAX_HTML_SIZE=<MAX_HTML_SIZE>' -- npx -y @opafex/mcp-web-research@0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.Opafex/mcp-web-research need an API key?

Yes. It expects BRAVE_SEARCH_API_KEY, which you set in its configuration.

Is io.github.Opafex/mcp-web-research open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.Opafex/mcp-web-research?

It is published by opafex. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.