Mcp Plesk Dev Docs

io.github.baratezaPublished by GitHub account baratezav0.6.0Updated Oct 24, 2026

An MCP server that indexes and retrieves Plesk documentation.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Lets an assistant search and retrieve Plesk extension-development documentation from a locally indexed corpus of guides, API, CLI, and SDK references.

What you can do
Indexes five Plesk documentation sources (admin guide, REST API reference, CLI reference, PHP SDK, JS SDK) into a local vector and full-text store, then exposes a unified search tool. Tools include search_plesk_unified for hybrid search with reranking, get_file_content for full documents, resolve_references for symbol lookups, refresh_knowledge and trigger_index_sync for updating the index, and daemon_health for readiness and latency stats. It also exposes table-of-contents resources for the API, CLI, guide, and PHP stubs, and can synthesize answers with inline citations when sampling is enabled.
When to use it
Useful when developing Plesk extensions and needing to look up API, CLI, or SDK details across several documentation sets without searching each one manually. It is a documentation retrieval tool, not a way to manage a live Plesk server.
Requirements
Runs locally over stdio, installed from PyPI (for example via uvx) or from source with Python tooling. Initial indexing must be run before use. Optional environment variables configure the model profile, sampling, warmup, summaries, and an OPENROUTER_API_KEY for AI-synthesized answers. Optimized for Apple Silicon; memory use grows with the model profile.
Before you install
The optional OPENROUTER_API_KEY is a credential and should be stored securely; enabling sampling sends search results to that external service. refresh_knowledge and trigger_index_sync re-fetch sources and rewrite the local index. The project is a personal effort, not affiliated with or endorsed by Plesk, and licensing of some Plesk-owned files is uncertain.

Installation

In SourceWeft

  1. Open Mcp Plesk Dev Docs in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-plesk-dev-docs

[Python 3.12+] [PyPI Version] [PyPI Downloads] [MCP Registry] [License: MIT] [MCP Compatible] [Code style: black] [Ruff] [MCP Badge]

[!NOTE] This MCP server provides unified documentation search for extension developers. If you are looking to manage your live Plesk server via AI, please see the official Plesk MCP Server.

State-of-the-Art (SOTA) semantic search across the entire Plesk documentation surface, optimized for sub-second latency on Apple Silicon.


Why this exists

Plesk documentation is spread across five separate sources: an admin guide, a REST API reference, a CLI reference, a PHP SDK, and a JS SDK. Answering a single extension development question often means searching all of them manually, cross-referencing results, and still missing the relevant section.

This server ingests all five sources, embeds them with a multilingual model, and exposes a single search_plesk_unified MCP tool. It uses hybrid search (Vector + FTS), Reciprocal Rank Fusion (RRF), and Cross-Encoder reranking to deliver high-precision results in milliseconds.


Architecture & Performance

mermaid
flowchart TD    Client["MCP Client\n(Claude Desktop / Cursor / etc.)"]
    Client -->|"search_plesk_unified(query)"| Server
    subgraph Server["FastMCP Server · Modular Architecture"]        direction TB        Main["Bootstrap · server/main.py"]        Life["Lifecycle Hooks · server/lifecycle.py"]        Tools["MCP Tools · server/mcp_app.py"]
        Main --> Life --> Tools    end
    subgraph Pipeline["Retrieval Pipeline"]        direction TB        E["1 · Embed query\n(Hardware-accelerated)"]        S["2 · Hybrid Search\nVector (LanceDB) + FTS (Tantivy)"]        R["3 · RRF Merge + Rerank\n(MiniLM-L4-v2)"]        N["4 · Neighbor Expansion\n(Context Enrichment)"]        A["5 · AI Synthesis\n(sampling-enabled)"]        E --> S --> R --> N --> A    end
    subgraph Store["LanceDB Vector & FTS Store"]        direction LR        G["Guide"]        A_["API"]        C["CLI"]        P["PHP Stubs"]        J["JS SDK"]    end
    Tools --> Pipeline    S <--> Store

Performance Benchmarks (2026-05-04)

Optimized for Apple Silicon (M2/M3) using MPS acceleration and memory-resident table caching.

ProfileEmbed ModelHR@5MRR@5Avg LatencyEst. RAM
lightBAAI/bge-small100.0%0.9171.007 s~200 MB
mediumBAAI/bge-base100.0%0.917~0.60s~600 MB
full-tqBAAI/bge-m375.0%0.750~0.40s~1300 MB

Metrics measured on Apple M2 Pro with LanceDB connection caching enabled.


Key Features

  • Single-Instance Lock: PID-based lock prevents concurrent LanceDB access when multiple MCP clients or IDE sessions try to launch the server simultaneously.
  • Sub-Second Hybrid Search: Combined Vector + Tantivy FTS with RAM-cached table connections for instant retrieval.
  • AST-Aware Chunking: Uses tree-sitter to respect class and method boundaries in PHP, JS, and TS documentation.
  • TurboQuant Acceleration: Fast 4-bit quantized search for the full-tq profile, delivering 10x lower latency for large models.
  • Neighborhood Retrieval: Automatically fetches adjacent chunks (prev/next) to provide complete context for grounding.
  • Macro-Context Summaries: Injects file-level purpose summaries into every chunk using the SummaryCache.
  • AI-Synthesized Answers: Generates concise answers from search results with structured inline citations [1], [2].

MCP Components

This server provides tools, prompts, and resources. See docs/mcp-components.md for a full reference.

Primary Tools

ToolDescription
search_plesk_unifiedHybrid search with RRF and Cross-Encoder reranking.
get_file_contentRetrieve the full content of a specific documentation file.
resolve_referencesFind all files referencing a specific symbol or topic.
refresh_knowledgeRe-fetch sources and update the index (incremental).
trigger_index_syncStart a background indexing job.
daemon_healthCheck readiness, hardware acceleration (MPS/CUDA), and latency stats.

Resources

  • plesk://toc/api - Table of Contents for API documentation.
  • plesk://toc/cli - Table of Contents for CLI reference.
  • plesk://toc/guide - Table of Contents for Extensions Guide.
  • plesk://toc/php-stubs - Hierarchical list of PHP classes.

🚀 Installation & Setup

Because this server is published to PyPI and listed on the MCP Registry, you don't even need to clone the repository to run it!

Option 1: Run instantly via uvx (Recommended)

You can run or integrate the server in seconds.

1. Add to Claude Desktop

Add the server config to your claude_desktop_config.json (typically at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{  "mcpServers": {    "plesk-dev-docs": {      "command": "uvx",      "args": ["mcp-plesk-dev-docs"]    }  }}
2. Configure in Cursor

Go to Settings > Features > MCP, click + Add New MCP Server:

  • Name: plesk-dev-docs
  • Type: command
  • Command: uvx mcp-plesk-dev-docs

Option 2: Local Developer Setup (Manual Build)

If you want to modify the source code, run benchmarks, or manage database migrations:

Quick bootstrap (recommended):

bash
git clone https://github.com/barateza/mcp-plesk-dev-docs.gitcd mcp-plesk-dev-docs./install.sh          # Linux / macOS# powershell -ExecutionPolicy Bypass -File install.ps1   # Windows

Manual setup:

bash
git clone https://github.com/barateza/mcp-plesk-dev-docs.gitcd mcp-plesk-dev-docsuv pip install -e ".[dev]"
  1. Run Initial Indexing: Generate the offline vector database and full-text search indexes:

    bash
    uv run python -m mcp_plesk_dev_docs.server.main refresh_knowledge
  2. Start the Server:

    bash
    uv run python -m mcp_plesk_dev_docs.server.main

Configuration

Set environment variables in .env:

env
PLESK_MODEL_PROFILE=light       # light | medium | full-tqPLESK_ENABLE_SAMPLING=true     # AI-Synthesized answersPLESK_DAEMON_AUTO_WARMUP=true  # Preload models on startupPLESK_INDEX_SUMMARIES=true     # Enable file-level summariesOPENROUTER_API_KEY=sk-or-v1-...

Documentation


License

MIT. See LICENSE.

Ownership & Disclaimer

This is a personal project by Gilson Siqueira. It is not officially affiliated with, endorsed by, or supported by Plesk or WebPros International GmbH. Plesk is a trademark of WebPros International GmbH.

Important notice about Plesk-owned deliverables

Portions of this repository were developed under contract for Plesk International GmbH ("Plesk") only if specifically identified as such. The MIT license above applies only to material the repository owner is authorized to license. Files or directories owned by Plesk, if any, are listed in NOTICE. If you need assurance about licensing for a particular file, contact Plesk or seek legal counsel before relying on the MIT License for Plesk-owned files.


Built to make Plesk extension development faster.

Source: README.md at commit 246bce8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.6.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts