ARIA — Autonomous Research & Intelligence Assistant
An MCP server that autonomously researches any topic: searches the web, scrapes sources, extracts insights, builds a knowledge graph, and synthesizes a structured research brief — in under 90 seconds.
---
What It Does
Give ARIA a topic → it autonomously:
- Searches the web for relevant sources (Tavily API)
- Scrapes and cleans full page content (httpx + BeautifulSoup)
- Extracts key concepts, claims, and gaps from each source (Claude API)
- Builds a NetworkX knowledge graph of connected concepts
- Synthesizes a final research brief with citations
---
Setup
1. Clone & create virtual environment
git clone https://github.com/YOUR_USERNAME/aria-mcp.git
cd aria-mcp
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
2. Configure API keys
cp .env.example .env
# Open .env and fill in your keys
Get keys from:
- Anthropic API: https://console.anthropic.com
- Tavily API: https://tavily.com (free tier works)
3. Connect to Claude Desktop
Open your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the ARIA server (replace the path with your actual absolute path): ``json { "mcpServers": { "aria": { "command": "python", "args": ["/absolute/path/to/aria-mcp/server/main.py"] } } } ``
Restart Claude Desktop. ARIA will appear as an available MCP tool.
4. Or use the CLI client
cd client
python aria_client.py "federated learning in healthcare"
python aria_client.py "transformer architecture" 3
---
Project Structure
aria-mcp/
├── server/
│ ├── main.py ← MCP server entry point (integration)
│ ├── tools/
│ │ ├── search.py ← Tavily web search
│ │ ├── scraper.py ← httpx + BeautifulSoup scraper
│ │ ├── summarizer.py ← Claude-powered insight extraction
│ │ └── graph.py ← NetworkX knowledge graph
│ └── utils/
│ └── helpers.py ← Shared utilities
├── client/
│ └── aria_client.py ← CLI demo client
├── tests/
│ ├── test_search.py
│ ├── test_scraper.py
│ ├── test_summarizer.py
│ └── test_graph.py
├── output/ ← Research JSON results (gitignored)
├── .env.example
├── .gitignore
├── claude_desktop_config.json ← Claude Desktop config snippet
├── requirements.txt
└── README.md
---
Testing Individual Modules
# From project root, with venv activated
python tests/test_search.py
python tests/test_scraper.py
python tests/test_summarizer.py
python tests/test_graph.py
---
Team Split
| Person | File | Responsibility | |--------|------|----------------| | Person 1 | tools/search.py | Web search via Tavily | | Person 2 | tools/scraper.py | URL scraping + text extraction | | Person 3 | tools/summarizer.py | Claude-powered summarization + synthesis | | Person 4 | tools/graph.py | Knowledge graph construction | | All together | server/main.py | MCP server integration (Day 2) |
---
Tech Stack
| Layer | Tool | |-------|------| | MCP Framework | mcp Python SDK by Anthropic | | LLM | Claude Sonnet via Anthropic API | | Web Search | Tavily API | | Web Scraping | httpx + BeautifulSoup4 | | Knowledge Graph | NetworkX | | Language | Python 3.11+ |
---
Demo
In Claude Desktop, type:
"Research the topic: Federated Learning in IoT devices"
ARIA will autonomously search 5 sources, scrape them, summarize each, build a knowledge graph, and produce a full research brief — all in real time.
---
License
MIT











