MCP Web Research Agent
Agente de investigación web MCP para macOS
Un agente/servidor de Protocolo de Contexto de Modelo (MCP) en Python que proporciona a un asistente de IA local herramientas para:
search_web— búsqueda web pública a través de los resultados HTML de DuckDuckGofetch_url— obtener una página web pública y extraer texto legiblesave_note— guardar notas de investigación como archivos Markdown/texto en una carpeta que elijas
El proyecto también incluye agent.py, un pequeño puente local que conecta Ollama con el servidor MCP. Ollama ejecuta el LLM; este proyecto proporciona las herramientas MCP y el bucle de agente de llamada a herramientas.
Nota: Ollama en sí mismo es un servidor de modelos, no un cliente MCP nativo. Para usar Ollama con herramientas MCP, ejecuta
agent.pyaquí u otro puente/cliente MCP.
Requisitos
MacBook Pro con macOS
Python 3.11 o superior (el paquete
mcprequiere Python 3.10+; la configuración prefiere 3.13/3.12/3.11)Ollama instalado y en ejecución
Un modelo local de llamada a herramientas. Punto de partida recomendado:
qwen2.5:7bpara Macs con 16 GB de RAMqwen2.5:14bsi tienes suficiente RAM/rendimientoqwen3:14bsi tu versión de Ollama lo soporta bien
Related MCP server: Local Research MCP Server
1. Instalación
Abre Terminal y ejecuta:
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.txtSi no tienes Python 3.11+:
brew install python2. Instala e inicia Ollama
Instala Ollama desde https://ollama.com o con Homebrew:
brew install --cask ollamaAbre la aplicación de Ollama una vez y luego descarga un modelo:
ollama pull qwen2.5:7b
ollama serveEn otra pestaña de Terminal, verifica que Ollama esté en ejecución:
curl http://localhost:11434/api/tags3. Ejecuta el agente MCP local de Ollama
Desde la carpeta del proyecto:
cd ~/Projects/mcp-web-research-agent
source .venv/bin/activate
python agent.pyLuego pregunta algo como:
Research recent MCP news, open the two best sources, summarize them, and save the summary as mcp-news.md.Modo de una sola consulta:
python agent.py "Research current MCP SDK best practices and save notes."Usa un modelo diferente:
python agent.py --model qwen2.5:14bElige dónde se guardan las notas:
python agent.py --notes-dir ~/Documents/research-notes4. Úsalo con Claude Desktop
Si quieres que Claude Desktop se conecte directamente al servidor MCP, edita:
~/Library/Application Support/Claude/claude_desktop_config.jsonAñade:
{
"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"
}
}
}
}Reemplaza YOUR_USERNAME con tu nombre de usuario de Mac. Crea el archivo si no existe. Reinicia Claude Desktop después de editar.
5. Úsalo con Cursor
Crea o edita .cursor/mcp.json en un espacio de trabajo:
{
"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"
}
}
}
}Luego reinicia Cursor o recarga su configuración de MCP.
Referencia de herramientas
search_web(query: str, max_results: int = 5)
Devuelve resultados de búsqueda como JSON:
{
"query": "Model Context Protocol",
"results": [
{
"title": "Example",
"url": "https://example.com",
"snippet": "..."
}
]
}fetch_url(url: str, max_chars: int = 8000)
Obtiene una URL http/https y devuelve el texto extraído. Evita el renderizado de JavaScript, por lo que funciona mejor en páginas HTML normales.
save_note(filename: str, content: str)
Guarda una nota en MCP_NOTES_DIR. El directorio predeterminado es:
~/MCPWebResearch/notesLa herramienta sanea los nombres de archivo y bloquea el recorrido de rutas.
Configuración
Variables de entorno:
OLLAMA_MODEL— modelo predeterminado usado poragent.py; el valor predeterminado esqwen2.5:7bOLLAMA_URL— endpoint de chat de Ollama compatible con OpenAI; el valor predeterminado eshttp://localhost:11434/v1/chat/completionsMCP_NOTES_DIR— directorio para las notas guardadas
Ejemplo:
export OLLAMA_MODEL=qwen2.5:14b
export MCP_NOTES_DIR=~/Documents/research-notes
python agent.pySolución de problemas
Connection refused a localhost:11434
Ollama no se está ejecutando. Inícialo con:
ollama serveEl agente no llama a las herramientas
Usa un modelo con buen soporte de llamada a herramientas. qwen2.5:7b, qwen2.5:14b y modelos Qwen similares son buenos puntos de partida.
Una página devuelve poco texto
Algunos sitios web bloquean clientes que no son navegadores o requieren JavaScript. Prueba con otra fuente o usa search_web y fetch_url juntos.
Claude Desktop no muestra el servidor
Vuelve a comprobar que:
La ruta de Python apunte a
.venv/bin/pythondentro de este proyectoLa ruta de
server.pysea absolutaEl archivo JSON tenga una sintaxis válida
Hayas reiniciado Claude Desktop por completo
Archivos
server.py— servidor MCP con herramientas de investigación webagent.py— bucle de agente/cliente MCP local impulsado por Ollamarequirements.txt— dependencias de Python
Notas de seguridad
Este servidor puede obtener URLs públicas y buscar en la web pública.
Solo puede escribir archivos en
MCP_NOTES_DIR.No ejecuta comandos de shell.
Revisa las notas y citas guardadas antes de confiar en ellas.
Segundo agente MCP: Planificador local
El repositorio ahora incluye un segundo servidor/agente MCP: local-planner. Almacena proyectos, tareas y notas de Markdown en disco.
Qué hace
Herramientas:
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)
Directorio de datos predeterminado:
~/MCPPlannerReemplázalo con:
export MCP_PLANNER_DIR=~/Documents/my-plannerEjecuta el planificador de Ollama
bash run-planner.shUna sola consulta:
bash run-planner.sh "Create a project called Weekend Yard Work with tasks for mowing, trimming bushes, and buying mulch."Usa un modelo diferente:
bash run-planner.sh --model qwen2.5:14bAlmacena los datos del planificador en otro lugar:
bash run-planner.sh --data-dir ~/Documents/planner-dataBuenos prompts para el planificador
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.Configuración de Claude Desktop para el planificador
Usa:
claude_desktop_config.planner.example.jsonAñádelo a:
~/Library/Application Support/Claude/claude_desktop_config.jsonPuedes fusionar ambos servidores en mcpServers para que Claude vea las herramientas de investigación web y de planificación.
Configuración de Cursor para el planificador
Usa:
cursor-mcp.planner.example.jsonArchivos
planner_server.py— servidor MCP para proyectos/tareas/notasplanner_agent.py— puente/agente de Ollama para el planificadorrun-planner.sh— lanzador
Tercer agente MCP: Seguimiento de salud y hábitos
El repositorio incluye un tercer servidor/agente MCP para hacer seguimiento de hábitos, entrenamientos, comidas y medidas corporales. Todos los datos se almacenan localmente en MCP_HEALTH_DIR (por defecto ~/MCPHealth).
Esta herramienta es solo para seguimiento personal y no proporciona asesoramiento médico.
Herramientas
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)
Ejecútalo con Ollama
bash run-health.shUna sola consulta:
bash run-health.sh "Create habits for a 30-min walk, drinking water, and stretching, then log today's walk and a lunch salad."Usa un modelo o directorio de datos diferente:
bash run-health.sh --model qwen2.5:14b --data-dir ~/Documents/health-dataBuenos 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.Configuraciones de Claude Desktop / Cursor
claude_desktop_config.health.example.jsoncursor-mcp.health.example.json
Puedes ejecutar los tres servidores MCP juntos (investigación web, planificador, salud) enumerando cada uno en mcpServers.
Archivos
health_server.py— servidor MCPhealth_agent.py— puente/agente de Ollamarun-health.sh— lanzador
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