Skip to main content

🖥️ fastmcp-linux-desktop

CI License: MIT Python: 3.10+ FastMCP Glama Score

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 arbitrary hyprctl dispatch instruction.
  • 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 via notify-send.
  • take_screenshot(output_path): Capture Wayland screenshots using grim.

🧠 Agentic Memory & Context (Optional)

  • condense_context(raw_text, query): Real-time BM25 context compression (up to 98% token reduction) via context-condenser.
  • memory_retain(fact, category, importance): Long-term episodic memory storage via agent-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)

Source distribution for fastmcp-linux-desktop 0.1.0
File Size Uploaded Provenance
fastmcp_linux_desktop-0.1.0.tar.gz 14.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fastmcp-linux-desktop 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page