A Model Context Protocol (MCP) server for web research.
Bring real-time info into Claude and easily research any topic.
- Google search integration
- Webpage content extraction
- Research session tracking (list of visited pages, search queries, etc.)
- Screenshot capture
- Node.js >= 18 (includes
npm
andnpx
) - Claude Desktop app
First, ensure you've downloaded and installed the Claude Desktop app and you have npm installed.
Next, add this entry to your claude_desktop_config.json
(on Mac, found at ~/Library/Application\ Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"webresearch": {
"command": "npx",
"args": ["-y", "@mzxrai/mcp-webresearch@latest"]
}
}
}
This config allows Claude Desktop to automatically start the web research MCP server when needed.
Simply start a chat with Claude and send a prompt that would benefit from web research. If you'd like a prebuilt prompt customized for deeper web research, you can use the agentic-research
prompt that we provide through this package. Access that prompt in Claude Desktop by clicking the Paperclip icon in the chat input and then selecting Choose an integration
→ webresearch
→ agentic-research
.
-
search_google
- Performs Google searches and extracts results
- Arguments:
{ query: string }
-
visit_page
- Visits a webpage and extracts its content
- Arguments:
{ url: string, takeScreenshot?: boolean }
-
take_screenshot
- Takes a screenshot of the current page
- No arguments required
A guided research prompt that helps Claude conduct thorough web research. The prompt instructs Claude to:
- Start with broad searches to understand the topic landscape
- Prioritize high-quality, authoritative sources
- Iteratively refine the research direction based on findings
- Keep you informed and let you guide the research interactively
- Always cite sources with URLs
We expose two things as MCP resources: (1) captured webpage screenshots, and (2) the research session.
When you take a screenshot, it's saved as an MCP resource. You can access captured screenshots in Claude Desktop via the Paperclip icon.
The server maintains a research session that includes:
- Search queries
- Visited pages
- Extracted content
- Screenshots
- Timestamps
For the best results, if you choose not to use the agentic-research
prompt when doing your research, it may be helpful to suggest high-quality sources for Claude to use when researching general topics. For example, you could prompt news today from reuters or AP
instead of news today
.
The codebase is organized into modular components for better maintainability:
src/
├── config/ # Configuration and constants
│ └── index.ts # Tool definitions, prompts, and constants
├── handlers/ # MCP request handlers
│ ├── tools.ts # Web research tool handlers
│ ├── resources.ts # Resource management handlers
│ └── prompts.ts # Research prompt handlers
├── services/ # Core functionality
│ ├── browser.ts # Browser automation
│ ├── screenshot.ts # Screenshot handling
│ ├── content.ts # HTML to Markdown conversion
│ └── session.ts # Research session management
├── types/ # TypeScript interfaces
│ └── index.ts # Type definitions
└── utils/ # Helper functions
└── index.ts # Utility functions
This is very much pre-alpha code. And it is also AIGC, so expect bugs.
If you run into issues, it may be helpful to check Claude Desktop's MCP logs:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
# Install dependencies
npm install
# Build the project
npm run build
# Watch for changes
npm run dev
# Clean build artifacts
npm run clean
- Node.js >= 18
- Chromium browser (automatically installed during package installation via patchright)
- Patchright (automatically installed as a dependency)
- TypeScript 5.3+
- MCP SDK 1.1.0+
@modelcontextprotocol/sdk
: ^1.1.0 - MCP server implementationpatchright
: ^1.49.2 - Undetected browser automationturndown
: ^7.1.2 - HTML to Markdown conversion
- macOS
- Windows
- Linux
MIT