Skip to main content
Glama
lmstudio-connectors

lmstudio-connectors

by MaskwaSam

LM Studio Connectors

Local MCP tools for LM Studio:

  • DuckDuckGo/metasearch through ddgs

  • Web scraping and article extraction through httpx + Trafilatura

  • yt-dlp metadata, subtitles, audio, and video downloads

  • MFLUX image generation on macOS/Apple Silicon when MFLUX is installed

  • Playwright CLI browser automation through @playwright/cli

The project is intentionally one MCP server so LM Studio only needs one local entry.

Install

cd /absolute/path/to/LMStudioConnectors
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U pip
python -m pip install -e ".[dev,browser]"
python -m playwright install chromium
npm install
npx playwright install chromium

LM Studio should launch bin/lmstudio-connectors-mcp. The wrapper sets PYTHONPATH explicitly and then starts the server from the project virtual environment.

MFLUX is optional. Install it separately on the Mac that will generate images:

python -m pip install mflux

Related MCP server: webmcp

LM Studio mcp.json

Open LM Studio's MCP settings and add:

{
  "mcpServers": {
    "lmstudio-connectors": {
      "command": "/absolute/path/to/LMStudioConnectors/bin/lmstudio-connectors-mcp",
      "args": []
    }
  }
}

The same content is checked in at lmstudio.mcp.example.json.

If you install uv later, this entry also works:

{
  "mcpServers": {
    "lmstudio-connectors": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/LMStudioConnectors",
        "run",
        "lmstudio-connectors-mcp"
      ]
    }
  }
}

Tools

Tool

Purpose

web_search

Search the web and return ranked title/URL/snippet results.

web_scrape

Fetch a page and extract clean Markdown, text, JSON, or HTML.

yt_info

Return metadata for a video or, when explicitly enabled, a playlist.

yt_subtitles

Save subtitles/transcripts and return cleaned text.

yt_download

Download audio or video into the controlled output directory.

mflux_generate

Generate an image by calling the local MFLUX CLI.

mflux_info

Read MFLUX metadata from a generated image.

playwright_cli_open

Open a URL in a named Playwright CLI browser session.

playwright_cli_goto

Navigate the current Playwright CLI page.

playwright_cli_snapshot

Capture an accessibility snapshot with element refs.

playwright_cli_action

Run safe CLI actions like click, fill, press, console, requests, and tabs.

playwright_cli_save

Save screenshots or PDFs under outputs/playwright-cli/.

playwright_cli_close

Close the named Playwright CLI session.

playwright_cli_health

Report local Playwright CLI availability.

connector_health

Report installed optional dependencies and output paths.

Playwright CLI

This repo uses Microsoft's @playwright/cli package for the CLI-first browser workflow. The wrapper is bin/playwright-cli, and it loads .playwright/cli.config.json from the repo root.

Useful manual commands:

bin/playwright-cli --help
bin/playwright-cli open https://example.com
bin/playwright-cli snapshot --depth=4
bin/playwright-cli screenshot --filename=outputs/playwright-cli/example.png
bin/playwright-cli close

LM Studio can use the same CLI through the playwright_cli_* MCP tools exposed by lmstudio-connectors.

Safety Defaults

  • Tools only accept http and https URLs.

  • Localhost, private IPs, loopback, multicast, link-local, and reserved networks are blocked unless LMSTUDIO_CONNECTORS_ALLOW_PRIVATE_NET=1.

  • Files are written only under outputs/ or LMSTUDIO_CONNECTORS_OUTPUT_DIR.

  • yt-dlp playlists are disabled unless the tool call explicitly opts in.

  • MFLUX command arguments are built from validated typed fields, not raw shell strings.

  • Playwright CLI output is constrained to outputs/playwright-cli/, and the MCP wrapper only exposes an allowlist of CLI commands/options.

Useful Environment Variables

Variable

Default

Purpose

LMSTUDIO_CONNECTORS_OUTPUT_DIR

./outputs

Root for all generated files.

LMSTUDIO_CONNECTORS_ALLOW_PRIVATE_NET

0

Allow localhost/private URLs when set to 1.

LMSTUDIO_CONNECTORS_HTTP_TIMEOUT

20

HTTP fetch timeout in seconds.

LMSTUDIO_CONNECTORS_MAX_RESPONSE_BYTES

5000000

Max web page bytes before extraction.

LMSTUDIO_CONNECTORS_DEFAULT_MAX_CHARS

12000

Default text returned to LM Studio.

LMSTUDIO_CONNECTORS_MFLUX_BIN

auto-detect

Override MFLUX image generation binary.

LMSTUDIO_CONNECTORS_MFLUX_INFO_BIN

auto-detect

Override MFLUX metadata binary.

Top Next Integrations

  1. Playwright MCP for full browser interaction, login-dependent pages, and dynamic apps.

  2. Local document/PDF extraction for classroom handouts, Moodle exports, and PDFs.

  3. Strict-root filesystem search for local course and code folders.

  4. Local vector memory using LM Studio embeddings for durable notes and retrieved context.

  5. Moodle/local-service tools for the user's existing course workflows.

  6. Optional remote MCPs: Hugging Face, Notion, Linear, Atlassian, Sentry.

License

MIT. See LICENSE. Third-party Python and npm dependencies retain their own licenses.

Available Tools

15 tools
connector_healthB

Report connector configuration and optional dependency availability.

Inputs: no named parameters. Returns: object

mflux_generateC

Generate an image by calling the local MFLUX CLI.

Inputs: prompt (required), seed, model, steps, +7 more. Returns: object

mflux_infoB

Read MFLUX metadata for a generated image.

Inputs: image_path (required). Returns: object

playwright_cli_actionC

Run a safe Playwright CLI action such as click, fill, press, console, requests, or tabs.

Inputs: command (required), args, session, max_chars, +1 more. Returns: object

playwright_cli_closeC

Close the current page/browser for a named Playwright CLI session.

Inputs: session, max_chars, timeout_seconds. Returns: object

playwright_cli_gotoC

Navigate the current Playwright CLI page to a public URL.

Inputs: url (required), session, max_chars, timeout_seconds. Returns: object

playwright_cli_healthB

Report local Playwright CLI availability.

Inputs: no named parameters. Returns: object

playwright_cli_openC

Open a public URL in a named Playwright CLI session.

Inputs: url (required), headed, browser, session, +3 more. Returns: object

playwright_cli_saveC

Save a screenshot or PDF from the current Playwright CLI page.

Inputs: ref, kind, session, filename, +2 more. Returns: object

playwright_cli_snapshotB

Capture an accessibility snapshot and element refs from the current page.

Inputs: ref, boxes, depth, session, +2 more. Returns: object

web_scrapeC

Fetch a page and extract clean Markdown, text, JSON, or HTML.

Inputs: url (required), max_chars, use_browser, include_links, +2 more. Returns: object

yt_downloadC

Download audio or video into the controlled output directory.

Inputs: url (required), mode, quality, playlist. Returns: object

yt_infoB

Return yt-dlp metadata for a video or explicit playlist.

Inputs: url (required), playlist, max_entries. Returns: object

yt_subtitlesC

Download subtitles/transcripts when yt-dlp can access them.

Inputs: url (required), auto, languages, max_chars. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 15 tools

    Disambiguation4/5

    Each tool targets a distinct operation within its connector group, but playwright_cli_open and playwright_cli_goto both involve navigation and could be confused. The two health checks are also similar in purpose but for different subsystems.

    Naming Consistency4/5

    All tools follow a snake_case pattern with a connector-specific prefix (web_, yt_, mflux_, playwright_cli_), but the suffix is a mix of verbs and nouns (e.g., yt_info vs yt_download), introducing minor inconsistency.

    Tool Count5/5

    With 15 tools across several connectors, the count is within the ideal 3-15 range. Each connector has a minimal but useful set (web: 2, yt: 3, mflux: 2, playwright: 6, health: 2), so no tool feels unnecessary.

    Completeness4/5

    The server covers the main workflows for each connector: web search and scrape, YouTube metadata/subtitles/download, MFLUX generation and info, and Playwright browser automation with open/goto/snapshot/action/save/close. Some minor gaps exist, such as no YouTube search or no way to list Playwright sessions, but the core lifecycle is covered.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for web search and content extraction using DuckDuckGo or SearXNG, with Playwright-based fetching and LLM-powered data extraction.
      139
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that provides web search scraping from DuckDuckGo (with Mojeek fallback) and URL content fetching as markdown/text or raw HTML.
      1
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      A fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.
      MIT