🖥️ fastmcp-linux-desktop
High-performance FastMCP Server empowering AI Agents (Claude Desktop, Cursor, Antigravity, OpenRig) with native Linux desktop and compositor control.
Provides deep primitives for Hyprland/Wayland window management, PipeWire audio routing, systemd health diagnosis and self-healing, notifications, and long-term agent memory.
⚡ Features & MCP Tool Catalog
🪟 Wayland & Hyprland Window Management
get_windows(): Enumerate all active windows, classes, floating status, and workspace geometry.focus_window(target): Focus window by title, class, or hex address (e.g.Alacritty,Chrome).dispatch_hyprland(dispatcher, args): Run any arbitraryhyprctl dispatchinstruction.switch_workspace(workspace_id): Switch workspace dynamically.get_monitors(): List connected outputs, resolutions, scale factors, and refresh rates.
🔊 Audio & DSP Routing
get_audio_status(): Query default sink volume, mute state, and driver.set_volume(percentage): Smoothly adjust sink volume (0-150%).toggle_audio_sink(): Cycle audio output between HDMI, line-out, headphones, or Bluetooth.
🩺 System Diagnostics & Self-Healing
get_system_health(): Instant diagnosis of failed system/user systemd units, load, and RAM.heal_system(): Automatically reset-failed and restart degraded units, recovering audio if stalled.get_resource_usage(): View filesystem disk usage and top CPU/memory consuming processes.desktop_notify(title, message, urgency): Trigger native desktop notifications vianotify-send.take_screenshot(output_path): Capture Wayland screenshots usinggrim.
🧠 Agentic Memory & Context (Optional)
condense_context(raw_text, query): Real-time BM25 context compression (up to 98% token reduction) viacontext-condenser.memory_retain(fact, category, importance): Long-term episodic memory storage viaagent-hindsight.memory_recall(query, category, limit): Fast memory retrieval with recency decay.
🚀 Installation & Usage
1. Install via pip
pip install fastmcp-linux-desktop
2. Connect to Claude Desktop / Cursor / Antigravity
Generate configuration or install automatically with one command:
# Print configuration JSON
fastmcp-linux-desktop config --claude
fastmcp-linux-desktop config --cursor --sse
# Automatically merge into client config file with safe timestamped backup:
fastmcp-linux-desktop config --claude --write
Manual configuration block for claude_desktop_config.json or .cursor/mcp.json:
{
"mcpServers": {
"linux-desktop": {
"command": "fastmcp-linux-desktop",
"args": ["--transport", "stdio"]
}
}
}
3. Run as a Persistent Daemon (SSE / HTTP)
# Run over SSE on port 8991
fastmcp-linux-desktop --sse --port 8991
# Or run as a systemd user service
systemctl --user enable --now fastmcp-linux-desktop.service
🔧 Systemd User Unit Example
Create ~/.config/systemd/user/fastmcp-linux-desktop.service:
[Unit]
Description=FastMCP Linux Desktop MCP Server
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/local/bin/fastmcp-linux-desktop --sse --port 8991
Restart=on-failure
RestartSec=3
[Install]
WantedBy=default.target
🧪 Testing
python3 -m unittest discover tests
📄 License
MIT License. Designed and maintained by apravint.
Metadata
Release files for fastmcp-linux-desktop 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fastmcp_linux_desktop-0.1.0.tar.gz | 14.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastmcp_linux_desktop-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.0 kB
Release files / fastmcp_linux_desktop-0.1.0.tar.gz
| Download URL | fastmcp_linux_desktop-0.1.0.tar.gz |
|---|---|
| Size | 14.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
adb167b7e5716ec4b16505dbe5b62d51a2fd2a87f05e396c4300912de738b14a
|
|
BLAKE2b-256 checksum How to use checksums |
37ac8f432b4025cd649e8ad0434455c9406ec03d51abc634df633b5fea051a7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / fastmcp_linux_desktop-0.1.0-py3-none-any.whl
| Download URL | fastmcp_linux_desktop-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
09cf2493f7f9ad70214b90c01849d202bff46adc20787e137822b339be4099b2
|
|
BLAKE2b-256 checksum How to use checksums |
ec05c84b67d6f7cc15af704e641baf5bbd02c88d83e517ee4fb8a5a1bc53f5ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Security for fastmcp-linux-desktop 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.