Skip to main content
Glama

Servidor MCP de Búsqueda Web para LM Studio

Un servidor MCP (Model Context Protocol) local que añade búsqueda web DuckDuckGo, búsqueda de imágenes, búsqueda/reproducción de videos de YouTube y búsqueda/reproducción de canales IPTV a LM Studio.

Qué hace

  • Expone siete herramientas MCP:

    • web_search: búsqueda de texto con título, URL y fragmento

    • image_search: búsqueda de imágenes con URLs directas de imagen y URLs de miniaturas

    • video_search: búsqueda de videos de YouTube con miniaturas, duración, subidor y número de vistas

    • open_video_in_browser: abre un video de YouTube en el navegador predeterminado

    • play_video_in_mpv: reproduce un video de YouTube en el reproductor de escritorio mpv

    • iptv_search: busca canales IPTV disponibles públicamente desde iptv-org/iptv

    • play_iptv_in_mpv: reproduce un flujo IPTV en mpv

  • No se requiere clave API

  • Se ejecuta completamente en tu Mac

Related MCP server: Universal MCP Server

Archivos

Archivo

Propósito

server.py

Implementación del servidor MCP

run.sh

Script contenedor que activa el venv e inicia el servidor

requirements.txt

Dependencias de Python

test_mcp.py

Script de prueba manual

mcp.json.example

Ejemplo de configuración de LM Studio

Herramientas

Búsqueda de texto a través de DuckDuckGo.

  • Argumentos:

    • query (cadena, obligatorio): términos de búsqueda

    • max_results (entero, 1-10, predeterminado 5)

Búsqueda de imágenes a través de DuckDuckGo.

  • Argumentos:

    • query (cadena, obligatorio): términos de búsqueda

    • max_results (entero, 1-10, predeterminado 5)

  • Devuelve: resultados de imágenes con formato markdown. Cada resultado incluye una etiqueta de imagen markdown ![title](image_url) más la URL de la página fuente.

Este formato le da a LM Studio la mejor oportunidad de renderizar la imagen en línea en la ventana de chat. Si LM Studio no la renderiza en línea, puedes hacer clic en la URL de la imagen para verla en un navegador.

Búsqueda de videos de YouTube a través de yt-dlp.

  • Argumentos:

    • query (cadena, obligatorio): términos de búsqueda

    • max_results (entero, 1-10, predeterminado 5)

    • format (cadena, predeterminado "markdown"): "markdown" devuelve imágenes explícitas ![title](thumbnail) más enlaces clicables de YouTube; "plain" devuelve enlaces de texto simples; "image" devuelve solo URLs de miniaturas limpias.

  • Devuelve: por predeterminado, markdown con la imagen de miniatura de YouTube y un enlace clicable Watch:. Esto te da la mejor oportunidad de ver una imagen de vista previa y una URL de video funcional en LM Studio.

Pídele al modelo cosas como:

Encuéntrame videos de YouTube sobre cómo hacer pan de masa madre.

O, para abrir un video después de encontrarlo:

Abre el primer video en mi navegador.

open_video_in_browser

Abre una URL de YouTube en tu navegador predeterminado.

  • Argumentos:

    • url (cadena, obligatorio): la URL de YouTube a abrir

  • Devuelve: estado JSON confirmando que la URL se abrió o un mensaje de error.

  • Solo permite URLs de youtube.com, www.youtube.com, youtu.be y m.youtube.com por seguridad.

play_video_in_mpv

Reproduce una URL de YouTube en mpv, un reproductor de video de escritorio gratuito.

  • Argumentos:

    • url (cadena, obligatorio): la URL de YouTube a reproducir

    • size (cadena, predeterminado "large"): "default", "large" (1280x720), "fullscreen", o una geometría personalizada como "800x600" o "50%"

  • Devuelve: estado JSON confirmando que mpv se lanzó o un mensaje de error.

  • Solo permite URLs de YouTube.

  • Usa yt-dlp con el formato bestvideo*+bestaudio/best para que los videos de YouTube se reproduzcan con la máxima calidad disponible.

  • Requisitos: mpv debe estar instalado y disponible en tu PATH. yt-dlp ya está instalado por este proyecto, y mpv lo usará automáticamente.

Instala mpv en macOS:

brew install mpv

Úsalo desde LM Studio:

Reproduce el primer video en mpv.

O con un tamaño específico:

Reproduce el primer video en mpv a pantalla completa.

mpv se abrirá en su propia ventana y comenzará a reproducir el video de YouTube.

Busca canales IPTV disponibles públicamente desde iptv-org/iptv.

  • Argumentos:

    • query (cadena, obligatorio): términos de búsqueda, comparados con el título del canal y la categoría (group-title)

    • max_results (entero, 1-30, predeterminado 10)

  • Devuelve: resultados markdown con el nombre del canal, categoría, logo, ID y URL de flujo clicable.

  • Los resultados se obtienen de https://iptv-org.github.io/iptv/index.m3u.

Pídele al modelo cosas como:

Encuentra canales de noticias de Singapur en IPTV.

play_iptv_in_mpv

Reproduce una URL de flujo IPTV en mpv.

  • Argumentos:

    • url (cadena, obligatorio): la URL de flujo .m3u8 a reproducir

    • size (cadena, predeterminado "large"): "default", "large" (1280x720), "fullscreen", o una geometría personalizada como "800x600" o "50%"

  • Devuelve: estado JSON confirmando que mpv se lanzó o un mensaje de error.

  • Requisitos: mpv debe estar instalado.

Úsalo desde LM Studio:

Reproduce el primer canal IPTV en mpv.

Inicio rápido

  1. Instala las dependencias (ya hecho si estás leyendo esto después de la configuración):

    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  2. Prueba el servidor:

    source venv/bin/activate
    python test_mcp.py

    O usa la prueba oficial del cliente MCP (esto se usó durante la configuración):

    source venv/bin/activate
    python -c "
    from mcp import ClientSession, StdioServerParameters, stdio_client
    import anyio
    params = StdioServerParameters(command='bash', args=['./run.sh'])
    async def main():
        async with stdio_client(params) as (read, write):
            async with ClientSession(read, write) as session:
                await session.initialize()
                print([t.name for t in (await session.list_tools()).tools])
                print((await session.call_tool('web_search', arguments={'query': 'today news', 'max_results': 2})).content[0].text[:500])
    anyio.run(main)
    "

Configurar LM Studio

LM Studio 0.4.0+ admite servidores MCP. Puedes añadir este servidor a través del editor MCP de la aplicación o editando mcp.json directamente.

En la aplicación (recomendado)

  1. Abre LM Studio

  2. Ve a ConfiguraciónServidores MCP

  3. Haz clic en Añadir servidor

  4. Completa:

    • Nombre: lmstudio-websearch

    • Transporte: stdio

    • Comando: bash

    • Argumentos: /ABSOLUTE/PATH/TO/lmstudio-websearch/run.sh

  5. Guarda y habilita el servidor

mcp.json manual

La ubicación de mcp.json de LM Studio en macOS:

~/Library/Application Support/LM Studio/mcp.json

Añade esta entrada (crea el archivo si no existe):

{
  "mcpServers": {
    "lmstudio-websearch": {
      "command": "bash",
      "args": [
        "/ABSOLUTE/PATH/TO/lmstudio-websearch/run.sh"
      ]
    }
  }
}

Habilitar la configuración

Asegúrate de que esta configuración esté habilitada en LM Studio:

  • ConfiguraciónConfiguración del servidorPermitir llamar a servidores desde mcp.json

Usar en el chat

  1. Carga un modelo con capacidad de herramientas. Qwen 3.8 27B tiene soporte nativo de uso de herramientas en LM Studio.

  2. Inicia un nuevo chat.

  3. Haz una pregunta que requiera información actual, por ejemplo:

    ¿Cuáles son las noticias más recientes hoy?

  4. LM Studio debería invocar la herramienta web_search, obtener resultados y responder basándose en ellos.

Solución de problemas

El servidor no aparece en LM Studio

  • Confirma que la ruta en run.sh es absoluta y que el archivo es ejecutable (chmod +x run.sh).

  • Reinicia LM Studio después de añadir el servidor.

  • Revisa los registros de LM Studio a través de DesarrolladorRegistros.

El modelo no llama a la herramienta

  • Usa un modelo con soporte nativo de uso de herramientas (Qwen, Llama 3.1/3.2, Mistral).

  • Asegúrate de que Herramientas esté habilitado para el chat (panel derecho).

  • Intenta pedirle explícitamente al modelo que busque en la web.

La búsqueda no devuelve resultados

  • DuckDuckGo ocasionalmente bloquea solicitudes automatizadas. Espera un momento y reintenta.

  • Revisa tu conexión de red.

Problemas de dependencias

Si ves errores de importación, reinstala las dependencias:

source venv/bin/activate
pip install -r requirements.txt

Actualizar el backend de búsqueda

Para usar un proveedor de búsqueda de texto diferente (Brave, SearXNG, Bing, Google), edita server.py y reemplaza do_text_search() con tu API preferida.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables web browsing capabilities for locally served LLMs through URL text fetching, link extraction, and web search using Brave and DuckDuckGo engines. Designed to enhance LLMs with real-time web access through the MCP protocol.
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides comprehensive MCP functionality with GGUF model integration, enabling resource management, dynamic tool execution, web data fetching, file operations, and system information retrieval. Supports automatic model detection from LM Studio with built-in security measures and extensible tool plugins.

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

View all MCP Connectors

Latest Blog Posts

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/yenonn/lmstudio-websearch'

If you have feedback or need assistance with the MCP directory API, please join our Discord server