ReAct Web SearchSAFE
ReActMCP is a reactive MCP client that empowers AI assistants to instantly respond with real-time, Markdown-formatted web search insights powered by the Exa API.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
ReActMCP Web Search is an MCP (Model Context Protocol) server that integrates web search capabilities into your AI assistant framework. It leverages the Exa API to perform both basic and advanced web searches, returning real-time, markdown-formatted results including titles, URLs, publication dates, and content summaries.
This repository is part of the broader ReActMCP project that connects various MCP tools and servers to empower your AI assistant with a wide range of capabilities.
Table of Contents
- Features
- Requirements
- Installation
- Configuration
- Environment Variables
- MCP Configuration
- System Prompt
- Usage
- Running the Web Search Server
- Testing the Tools
- Troubleshooting
- License
- Contributing
Features
- Basic Web Search: Perform simple searches using the Exa API.
- Advanced Web Search: Use additional filtering options such as domain restrictions, text inclusion requirements, and date filters.
- Markdown Output: Format search results in Markdown to easily incorporate titles, URLs, and summaries.
- MCP Integration: Easily add this tool into your MCP server ecosystem for multi-tool AI assistance.
Requirements
- Python 3.8+
- python-dotenv
- exa-py (Exa API client)
- firecrawl-py (Firecrawl API client)
- Other dependencies that may be required by your MCP framework
Installation
- Clone the Repository
git clone https://github.com/mshojaei77/ReActMCP.git cd ReActMCP
- Create a Virtual Environment (Optional but recommended)
python -m venv venv s
17bcfd63716bOBSERVED · 2026-10-07Exposed tools (7)
6 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
advanced_search_web | read | Advanced web search using Exa API with additional filtering options. |
check_crawl_status | read | Check the status of a crawl job. |
crawl_website | write | Start a crawl job on a website. |
extract_structured_data | read | Extract structured data from web pages based on a schema. |
map_website | read | Map a website to discover all accessible links. |
scrape_url | read | Scrape a single web page and return its content. |
search_web | read | Search the web using Exa API and return results as markdown formatted text. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (2)
requirements.txt
# Load environment variables
Gates applied: no_behavioural_pass.
17bcfd63716bfull audit observations/trust-audit/mcp-server/mshojaei77__react-web-search.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 17bcfd63716b | SAFE | B | 89 | first audit |
Questions
What is the ReAct Web Search MCP server?
ReActMCP is a reactive MCP client that empowers AI assistants to instantly respond with real-time, Markdown-formatted web search insights powered by the Exa API.
What tools does ReAct Web Search expose?
7 in total: 6 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is ReAct Web Search safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does ReAct Web Search need?
It reads EXA_API_KEY, FIRECRAWL_API_KEY and OPENAI_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How current is this page?
The grade is for one exact copy of the source (17bcfd63716b), read on 2026-10-07. The repository is watched and re-audited when it changes.