Install
$ agentstack add mcp-milansirko-web-research-agent ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Web Research Agent
Multi-agent pipeline that takes a user question, breaks it into sub-questions, researches them in parallel, fact-checks the results, and writes a final cited report.
Architecture
User query
↓
Orchestrator → breaks query into 3 independent sub-questions
↓
Researcher × 3 (parallel, asyncio.gather) → each researches one sub-question via web search
↓
Fact-Checker → removes duplication, flags contradictions and implausible claims
↓
Writer → synthesizes final report with source citations
Built with the OpenAI Agents SDK, MCP servers for tool access, and structured (Pydantic) outputs at every stage.
Agents
| Agent | Role | MCP servers | |---|---|---| | Orchestrator | Splits query into 3 sub-questions | Sequential Thinking | | Researcher | Answers one sub-question via web search | Sequential Thinking, Web Research | | Fact-Checker | Cross-checks the 3 research outputs | Sequential Thinking | | Writer | Produces final cited report | Sequential Thinking |
Why parallel Researchers
The 3 sub-questions are independent, so running them sequentially would waste time waiting on each one in turn. asyncio.gather runs all 3 at once — total time ≈ slowest single research call, not the sum of all 3.
Structured output
Every agent returns a Pydantic model instead of free text, so each stage can reliably parse the previous stage's output instead of guessing at raw strings:
class SubQuestions(BaseModel):
questions: list[str]
class ResearchOutput(BaseModel):
summary: str
key_findings: list[Finding]
confidence: float
class Writeroutput(BaseModel):
final_report: str
sources: list[Finding]
Setup
pip install -r requirements.txt
example.env file:
baseurl=
api=
config.yaml sets the model, instructions, temperature, and max tokens per agent independently — cheaper/faster models for the Researcher (runs 3× per query), stronger models recommended for the Fact-Checker (the critical accuracy step).
Run:
python main.py
Known limitations
- Source diversity: in testing, all 3 Researcher agents sometimes returned findings from the same single domain, giving the Fact-Checker nothing to actually cross-check. Instructions now ask for 2+ distinct domains, not yet strictly enforced in code.
- Stale data: research results have surfaced outdated (multi-year-old) figures without flagging their age. Instructions now ask agents to note source age explicitly.
- Numeric sanity-checking: early runs returned an implausible price-per-watt figure that passed through unflagged. Fact-Checker instructions now ask it to flag numbers that look logically inconsistent.
- No Critic/review loop: the Writer's output is not currently re-checked for citation completeness before being shown to the user.
- MCP on Windows: Sequential Thinking / Web Research MCP servers have shown occasional timeout issues on Windows.
Next steps
- Add a Critic agent to review the Writer's output and force a re-write if citations are missing
- Enforce domain diversity across Researcher calls in code, not just via prompt instructions
- Wrap in a FastAPI endpoint for external use
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: MilanSirko
- Source: MilanSirko/Web-Research-Agent
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.