lmstudio-websearch
Provides web search and image search through DuckDuckGo, returning titles, URLs, snippets, and image results.
Allows playing YouTube videos and IPTV streams in the mpv desktop player, with configurable window sizes.
Enables YouTube video search with details like thumbnails, duration, uploader, and view count, and can open videos in a browser or play them in mpv.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lmstudio-websearchFind me YouTube videos about sourdough bread baking."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LM Studio Web Search MCP Server
A local MCP (Model Context Protocol) server that adds DuckDuckGo web search, image search, YouTube video search/playback, and IPTV channel search/playback to LM Studio.
What it does
Exposes seven MCP tools:
web_search: text search with title, URL, and snippetimage_search: image search with direct image URLs and thumbnail URLsvideo_search: YouTube video search with thumbnails, duration, uploader, and view countopen_video_in_browser: opens a YouTube video in the default browserplay_video_in_mpv: plays a YouTube video in the mpv desktop playeriptv_search: searches publicly available IPTV channels from iptv-org/iptvplay_iptv_in_mpv: plays an IPTV stream in mpv
No API key required
Runs entirely on your Mac
Related MCP server: Universal MCP Server
Files
File | Purpose |
| MCP server implementation |
| Wrapper script that activates the venv and starts the server |
| Python dependencies |
| Manual test script |
| Example LM Studio configuration |
Tools
web_search
Text search via DuckDuckGo.
Arguments:
query(string, required): search termsmax_results(integer, 1-10, default 5)
image_search
Image search via DuckDuckGo.
Arguments:
query(string, required): search termsmax_results(integer, 1-10, default 5)
Returns: markdown-formatted image results. Each result includes a markdown image tag
plus the source page URL.
This format gives LM Studio the best chance of rendering the image inline in the chat window. If LM Studio does not render it inline, you can click the image URL to view it in a browser.
video_search
YouTube video search via yt-dlp.
:
Arguments:
query(string, required): search termsmax_results(integer, 1-10, default 5)format(string, default"markdown"):"markdown"returns explicitimages plus clickable YouTube links;"plain"returns simple text links;"image"returns only clean thumbnail URLs.
Returns: by default, markdown with the YouTube thumbnail image and a clickable
Watch:link. This gives you the best chance of seeing a preview image and a working video URL in LM Studio.
Ask the model things like:
Find me YouTube videos about sourdough bread baking.
Or, to open a video after finding it:
Open the first video in my browser.
open_video_in_browser
Opens a YouTube URL in your default browser.
Arguments:
url(string, required): the YouTube URL to open
Returns: JSON status confirming the URL was opened or an error message.
Only allows
youtube.com,www.youtube.com,youtu.be, andm.youtube.comURLs for safety.
play_video_in_mpv
Plays a YouTube URL in mpv, a free desktop video player.
Arguments:
url(string, required): the YouTube URL to playsize(string, default"large"):"default","large"(1280x720),"fullscreen", or a custom geometry like"800x600"or"50%"
Returns: JSON status confirming mpv was launched or an error message.
Only allows YouTube URLs.
Uses yt-dlp with the
bestvideo*+bestaudio/bestformat so YouTube videos are played at the highest available quality.Requirements:
mpvmust be installed and available in your PATH.yt-dlpis already installed by this project, and mpv will use it automatically.
Install mpv on macOS:
brew install mpvUse it from LM Studio:
Play the first video in mpv.
Or with a specific size:
Play the first video in mpv fullscreen.
mpv will open in its own window and start playing the YouTube video.
iptv_search
Searches publicly available IPTV channels from iptv-org/iptv.
Arguments:
query(string, required): search terms, matched against channel title and category (group-title)max_results(integer, 1-30, default 10)
Returns: markdown results with the channel name, category, logo, ID, and clickable stream URL.
Results are fetched from
https://iptv-org.github.io/iptv/index.m3u.
Ask the model things like:
Find Singapore news channels on IPTV.
play_iptv_in_mpv
Plays an IPTV stream URL in mpv.
Arguments:
url(string, required): the.m3u8stream URL to playsize(string, default"large"):"default","large"(1280x720),"fullscreen", or a custom geometry like"800x600"or"50%"
Returns: JSON status confirming mpv was launched or an error message.
Requirements:
mpvmust be installed.
Use it from LM Studio:
Play the first IPTV channel in mpv.
Quick start
Install dependencies (already done if you are reading this after setup):
python3 -m venv venv source venv/bin/activate pip install -r requirements.txtTest the server:
source venv/bin/activate python test_mcp.pyOr use the official MCP client smoke test (this was used during setup):
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) "
Configure LM Studio
LM Studio 0.4.0+ supports MCP servers. You can add this server via the in-app MCP editor or by editing mcp.json directly.
In-app (recommended)
Open LM Studio
Go to Settings → MCP Servers
Click Add Server
Fill in:
Name:
lmstudio-websearchTransport:
stdioCommand:
bashArguments:
/ABSOLUTE/PATH/TO/lmstudio-websearch/run.sh
Save and enable the server
Manual mcp.json
LM Studio's mcp.json location on macOS:
~/Library/Application Support/LM Studio/mcp.jsonAdd this entry (create the file if it does not exist):
{
"mcpServers": {
"lmstudio-websearch": {
"command": "bash",
"args": [
"/ABSOLUTE/PATH/TO/lmstudio-websearch/run.sh"
]
}
}
}Enable the setting
Make sure this setting is enabled in LM Studio:
Settings → Server Settings → Allow calling servers from mcp.json
Use in chat
Load a tool-capable model. Qwen 3.8 27B has native tool use support in LM Studio.
Start a new chat.
Ask a question that requires current information, for example:
What are the latest headlines today?
LM Studio should invoke the
web_searchtool, get results, and answer based on them.
Troubleshooting
Server is not listed in LM Studio
Confirm the path in
run.shis absolute and the file is executable (chmod +x run.sh).Restart LM Studio after adding the server.
Check LM Studio logs via Developer → Logs.
Model does not call the tool
Use a model with native tool use support (Qwen, Llama 3.1/3.2, Mistral).
Make sure Tools is enabled for the chat (right panel).
Try explicitly asking the model to search the web.
Search returns no results
DuckDuckGo occasionally blocks automated requests. Wait a moment and retry.
Check your network connection.
Dependency issues
If you see import errors, reinstall dependencies:
source venv/bin/activate
pip install -r requirements.txtUpdating the search backend
To use a different text search provider (Brave, SearXNG, Bing, Google), edit server.py and replace do_text_search() with your preferred API.
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 gradedqualityCmaintenanceEnables 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
- -licenseNot gradedqualityNot gradedmaintenanceProvides 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.
- FlicenseNot gradedqualityDmaintenanceEnables tool-calling LLMs to search the internet, capture website images, extract webpage text, and more via a local MCP server.14
- FlicenseNot gradedqualityCmaintenanceBrings DuckDuckGo search (web, news, images, videos) to any MCP-compatible AI client without requiring an API key.
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.
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/yenonn/lmstudio-websearch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server