research-tools
Autonomous Web Research Agent
A teaching project: one Python agent that plans, searches the web, stores notes in RAG, writes a report, then critiques itself and loops until the answer is good enough.
Stack: Python 3.11+ · LangChain · LangGraph · MCP · Chroma RAG · LangSmith
What you are building (classroom map)
Piece | File | Job |
Config |
| Reads |
LLM layer |
| One function, many providers |
Tools |
| Search + fetch pages |
MCP |
| Same tools over the MCP protocol |
RAG |
| Remember pages in Chroma |
State |
| The graph's notebook |
Nodes |
| One function per step |
Graph |
| Wires the loop |
CLI |
| Run from terminal |
API |
| FastAPI backend |
Read TEACHING.md for the full lesson.
Setup
cd ~/Projects/autonomous-web-research-agent
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .envPut at least one LLM key in .env (OPENAI_API_KEY is the default path). Search works with free DuckDuckGo. Add TAVILY_API_KEY later if you want higher-quality search. Add LANGCHAIN_API_KEY to watch traces in LangSmith.
Run a research job
python -m research_agent.cli "How does MCP differ from a normal LangChain tool?"Run the backend
python -m research_agent.api
# POST http://127.0.0.1:8001/research {"question": "..."}Run the MCP server (for Cursor / other hosts)
python -m research_agent.mcp_serverExample Cursor MCP config:
{
"mcpServers": {
"research-tools": {
"command": "/Users/YOU/Projects/autonomous-web-research-agent/.venv/bin/python",
"args": ["-m", "research_agent.mcp_server"]
}
}
}Tests (no API key needed)
pytestLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aabGit/Autonomous-Web-Research-Agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server