MCP Web Research Agent
MCP Web Research Agent for macOS
Ein Python Model Context Protocol (MCP)-Agent/Server, der einem lokalen KI-Assistenten Werkzeuge bereitstellt:
search_web— öffentliche Websuche über DuckDuckGo-HTML-Ergebnissefetch_url— eine öffentliche Webseite abrufen und lesbaren Text extrahierensave_note— Recherche-Notizen als Markdown-/Textdateien in einem Ordner deiner Wahl speichern
Das Projekt enthält außerdem agent.py, eine kleine lokale Brücke, die Ollama mit dem MCP-Server verbindet. Ollama führt das LLM aus; dieses Projekt stellt die MCP-Werkzeuge und die Agent-Schleife für Tool-Aufrufe bereit.
Hinweis: Ollama selbst ist ein Modellserver und kein nativer MCP-Client. Um Ollama mit MCP-Werkzeugen zu verwenden, führe hier
agent.pyoder einen anderen MCP-Bridge/Client aus.
Voraussetzungen
MacBook Pro mit macOS
Python 3.11 oder neuer (das
mcp-Paket erfordert Python 3.10+; das Setup bevorzugt 3.13/3.12/3.11)Ollama installiert und ausgeführt
Ein lokales Modell mit Tool-Calling-Unterstützung. Empfohlene Ausgangspunkte:
qwen2.5:7bfür Macs mit 16 GB RAMqwen2.5:14bfalls du genug RAM/Leistung hastqwen3:14bfalls deine Ollama-Version es gut unterstützt
Related MCP server: Local Research MCP Server
1. Installation
Terminal öffnen und ausführen:
cd ~/Projects
git clone <your-repo-url> mcp-web-research-agent # or copy this folder here
cd ~/Projects/mcp-web-research-agent
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtFalls du kein Python 3.11+ hast:
brew install python2. Ollama installieren und starten
Installiere Ollama über https://ollama.com oder mit Homebrew:
brew install --cask ollamaÖffne die Ollama-App einmal und lade ein Modell:
ollama pull qwen2.5:7b
ollama serveÜberprüfe in einem anderen Terminal-Tab, ob Ollama läuft:
curl http://localhost:11434/api/tags3. Den lokalen Ollama-MCP-Agent ausführen
Aus dem Projektordner:
cd ~/Projects/mcp-web-research-agent
source .venv/bin/activate
python agent.pyStelle dann zum Beispiel eine Frage:
Research recent MCP news, open the two best sources, summarize them, and save the summary as mcp-news.md.One-shot-Modus:
python agent.py "Research current MCP SDK best practices and save notes."Ein anderes Modell verwenden:
python agent.py --model qwen2.5:14bLege fest, wo Notizen gespeichert werden:
python agent.py --notes-dir ~/Documents/research-notes4. Verwendung mit Claude Desktop
Wenn du möchtest, dass Claude Desktop sich direkt mit dem MCP-Server verbindet, bearbeite:
~/Library/Application Support/Claude/claude_desktop_config.jsonFüge hinzu:
{
"mcpServers": {
"web-research": {
"command": "/Users/YOUR_USERNAME/Projects/mcp-web-research-agent/.venv/bin/python",
"args": [
"/Users/YOUR_USERNAME/Projects/mcp-web-research-agent/server.py"
],
"env": {
"MCP_NOTES_DIR": "/Users/YOUR_USERNAME/Documents/MCP-research-notes"
}
}
}
}Ersetze YOUR_USERNAME durch deinen Mac-Benutzernamen. Erstelle die Datei, falls sie nicht existiert. Starte Claude Desktop nach der Bearbeitung neu.
5. Verwendung mit Cursor
Erstelle oder bearbeite .cursor/mcp.json in einem Workspace:
{
"mcpServers": {
"web-research": {
"command": "/Users/YOUR_USERNAME/Projects/mcp-web-research-agent/.venv/bin/python",
"args": [
"/Users/YOUR_USERNAME/Projects/mcp-web-research-agent/server.py"
],
"env": {
"MCP_NOTES_DIR": "/Users/YOUR_USERNAME/Documents/MCP-research-notes"
}
}
}
}Starte Cursor danach neu oder lade seine MCP-Einstellungen neu.
Tool-Referenz
search_web(query: str, max_results: int = 5)
Gibt die Suchergebnisse als JSON zurück:
{
"query": "Model Context Protocol",
"results": [
{
"title": "Example",
"url": "https://example.com",
"snippet": "..."
}
]
}fetch_url(url: str, max_chars: int = 8000)
Ruft eine http/https-URL ab und gibt den extrahierten Text zurück. Es vermeidet JavaScript-Rendering und funktioniert daher am besten mit normalen HTML-Seiten.
save_note(filename: str, content: str)
Speichert eine Notiz in MCP_NOTES_DIR. Das Standardverzeichnis ist:
~/MCPWebResearch/notesDas Tool bereinigt Dateinamen und blockiert Pfad-Traversal.
Konfiguration
Umgebungsvariablen:
OLLAMA_MODEL— Standardmodell, das vonagent.pyverwendet wird; Standard istqwen2.5:7bOLLAMA_URL— OpenAI-kompatibler Ollama-Chat-Endpunkt; Standard isthttp://localhost:11434/v1/chat/completionsMCP_NOTES_DIR— Verzeichnis für gespeicherte Notizen
Beispiel:
export OLLAMA_MODEL=qwen2.5:14b
export MCP_NOTES_DIR=~/Documents/research-notes
python agent.pyFehlerbehebung
Connection refused bei localhost:11434
Ollama wird nicht ausgeführt. Starte es mit:
ollama serveDer Agent ruft keine Werkzeuge auf
Verwende ein Modell mit starker Tool-Calling-Unterstützung. qwen2.5:7b, qwen2.5:14b und ähnliche Qwen-Modelle sind gute Ausgangspunkte.
Eine Seite liefert nur wenig Text
Manche Websites blockieren Nicht-Browser-Clients oder benötigen JavaScript. Probiere andere Quellen aus oder verwende search_web und fetch_url zusammen.
Claude Desktop zeigt den Server nicht
Überprüfe Folgendes:
Der Python-Pfad zeigt auf
.venv/bin/pythoninnerhalb dieses ProjektsDer Pfad zu
server.pyist absolutDie JSON-Datei enthält gültige Syntax
Du hast Claude Desktop vollständig neu gestartet
Dateien
server.py— MCP-Server mit Web-Research-Werkzeugenagent.py— lokaler Ollama-basierter MCP-Client/Agent-Looprequirements.txt— Python-Abhängigkeiten
Sicherheitshinweise
Dieser Server kann öffentliche URLs abrufen und die öffentliche Websuche durchsuchen.
Er kann Dateien nur in
MCP_NOTES_DIRschreiben.Er führt keine Shell-Befehle aus.
Prüfe gespeicherte Notizen und Quellenangaben, bevor du dich auf sie verlässt.
Zweiter MCP-Agent: Local Planner
Das Repository enthält jetzt einen zweiten MCP-Server/Agent: local-planner. Er speichert Projekte, Aufgaben und Markdown-Notizen auf der Festplatte.
Funktionen
Werkzeuge:
create_project(name, description)list_projects()create_task(project, title, notes, priority, due_date, status)list_tasks(project, status)update_task(project, task_id, ...)complete_task(project, task_id)delete_task(project, task_id)save_project_note(project, content, append)get_daily_focus(for_date)
Standard-Datenverzeichnis:
~/MCPPlannerÜberschreibe es mit:
export MCP_PLANNER_DIR=~/Documents/my-plannerDen Ollama-Planner ausführen
bash run-planner.shOne-shot-Modus:
bash run-planner.sh "Create a project called Weekend Yard Work with tasks for mowing, trimming bushes, and buying mulch."Ein anderes Modell verwenden:
bash run-planner.sh --model qwen2.5:14bPlanner-Daten an einem anderen Ort speichern:
bash run-planner.sh --data-dir ~/Documents/planner-dataGute Planner-Prompts
Create a project called Home Network Upgrade and break it into at least six tasks with priorities.Look at my daily focus and tell me what I should work on first.Create a moving checklist project with tasks, due dates, and notes.Mark the first task in the Weekend Yard Work project complete and tell me what remains.Claude-Desktop-Konfiguration für den Planner
Verwende:
claude_desktop_config.planner.example.jsonFüge sie in folgender Datei ein:
~/Library/Application Support/Claude/claude_desktop_config.jsonDu kannst beide Server unter mcpServers zusammenführen, sodass Claude Web-Research- und Planungswerkzeuge sieht.
Cursor-Konfiguration für den Planner
Verwende:
cursor-mcp.planner.example.jsonDateien
planner_server.py— MCP-Server für Projekte/Aufgaben/Notizenplanner_agent.py— Ollama-Bridge/Agent für den Plannerrun-planner.sh— Launcher
Dritter MCP-Agent: Health & Habit Tracker
Das Repository enthält einen dritten MCP-Server/Agent zum Erfassen von Gewohnheiten, Workouts, Mahlzeiten und Körpermaßen. Alle Daten werden lokal unter MCP_HEALTH_DIR gespeichert (Standard ~/MCPHealth).
Dieses Werkzeug dient nur der persönlichen Aufzeichnung und stellt keine medizinische Beratung dar.
Werkzeuge
create_habit(name, description, target_per_week, unit)list_habits(active_only)log_habit(log_date, value, notes, habit_id|habit_name)log_workout(activity, duration_minutes, log_date, intensity, calories, distance_km, notes)log_meal(description, meal_type, log_date, calories, protein_g, carbs_g, fat_g, notes)log_measurement(weight_kg, log_date, body_fat_pct, waist_cm, notes)list_logs(log_type, from_date, to_date, limit)delete_log(log_id)save_health_note(content, append)get_daily_summary(for_date)get_weekly_report(for_date)
Mit Ollama ausführen
bash run-health.shOne-shot-Modus:
bash run-health.sh "Create habits for a 30-min walk, drinking water, and stretching, then log today's walk and a lunch salad."Ein anderes Modell oder Datenverzeichnis verwenden:
bash run-health.sh --model qwen2.5:14b --data-dir ~/Documents/health-dataGute Prompts
Create habits for walking 5 days per week, drinking 80 oz of water, and stretching daily.Log a 45-minute moderate run today that burned 420 calories and covered 6 km.Log my breakfast: oatmeal with banana and peanut butter, about 520 calories and 22 grams of protein.Give me today's health summary and list habits I still need to complete.Give me my weekly report and tell me which habits I'm behind on.Claude-Desktop- / Cursor-Konfigurationen
claude_desktop_config.health.example.jsoncursor-mcp.health.example.json
Du kannst alle drei MCP-Server gemeinsam ausführen (Web-Research, Planner, Health), indem du jeden unter mcpServers listest.
Dateien
health_server.py— MCP-Serverhealth_agent.py— Ollama-Bridge/Agentrun-health.sh— Launcher
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to search the web using DuckDuckGo, scrape webpage content in markdown format, and browse/read local files for code analysis and debugging.191MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search the web using DuckDuckGo and extract clean text content from websites for real-time research, with all processing happening locally for complete privacy.3MIT
- FlicenseAqualityDmaintenanceProvides local web search and content fetching capabilities for AI assistants, enabling them to search DuckDuckGo and extract clean text from web pages. All requests originate from the user's machine to ensure direct network control and bypass external proxies.2
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read webpages and perform web searches using DuckDuckGo.MIT
Related MCP Connectors
Web research for agents: quality-scored Google search, webpage extraction, and deep research.
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Latest 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/jstrick9/mcp_agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server