npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@milaboratories/pl-mcp-server

v14.0.0

Published

MCP server for Platforma Desktop

Downloads

2,155

Readme

Platforma MCP Server

MCP (Model Context Protocol) server that enables AI assistants to interact with the Platforma Desktop App. It exposes tools for project management, block control, UI interaction, screenshot capture, and data queries through the standardized MCP interface.

Capabilities

| Tool group | What it does | | ------------------ | ---------------------------------------------------------------- | | Connection | Connect/disconnect to a running Platforma backend server | | Projects | List, open, and manage projects | | Blocks | Add blocks, read block state, configure inputs/arguments | | UI interaction | Click, type, scroll, and send keyboard events to the desktop app | | Screenshots | Capture window screenshots (full composited or per-WebContents) | | Data query | Query PColumn data and result pool contents | | Logs | Retrieve application logs | | Sandbox | Execute JavaScript in the app's renderer process |

How It Works

The MCP server runs as a worker process inside the Platforma Desktop App (Electron). It communicates with the main process via IPC and exposes tools over the MCP protocol (stdio transport by default, HTTP also supported).

Claude Code  ──MCP──▶  pl-mcp-server (worker)  ──IPC──▶  Desktop App (main process)
                                                           ├── Main window
                                                           ├── Block view
                                                           └── Modals

Connecting From Claude Code

  1. Start the Platforma Desktop App and enable MCP — the MCP server feature marked as Alpha for now. To enable it open Settings, scroll down to the bottom, enable checkbox "Enable MCP Server". Then copy MCP Server URL.

  2. Add the MCP server to Claude Code by creating or editing .claude/settings.json (don't forget to change the MCP URL):

    {
      "mcpServers": {
        "pl": {
          "type": "sse",
          "url": "http://127.0.0.1:4200/<!!CHANGE ME!!>/mcp"
        }
      }
    }
  3. Verify the connection — run /mcp in Claude Code to see the pl server status. All tools will be available as mcp__pl__*.

  4. Connect to the backend — use list_connections to see already saved connections. You could easily reuse them. Or call connect_to_server directly with URL, username and password to create new connection.

  5. Open a project — use open_project to start working with a specific project.

Connecting From Claude Desktop App (Chat)

Claude Desktop App uses stdio transport, so it cannot connect to the HTTP MCP endpoint directly. Use mcp-remote to bridge the two.

  1. Enable MCP in the Platforma Desktop App — same as step 1 above (Settings -> "Enable MCP Server"). Copy the MCP Server URL.

  2. Edit Claude Desktop config — open ~/Library/Application Support/Claude/claude_desktop_config.json and add the mcpServers entry:

    {
      "mcpServers": {
        "platforma": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "http://127.0.0.1:4200/<your-session-id>/mcp"]
        }
      }
    }

    Replace the URL with the actual MCP Server URL from the Platforma Desktop App settings.

  3. Restart Claude Desktop App — the Platforma tools will appear in your chat sessions. Follow the same workflow: list_connections -> connect_to_server -> open_project.

Skill

There is a mcp-desktop-testing skill for Claude in ecosystem overlay. Should be found and used automatically if overlay enabled.

Coordinate System

The desktop app uses Electron with potentially multiple WebContents layers. Screenshots are captured in device pixels (2x on Retina displays), while input events use CSS pixels.

To click on an element visible in a screenshot: divide the screenshot pixel coordinates by the device pixel ratio (typically 2 on macOS Retina).

Development

# Build
pnpm --filter @milaboratories/pl-mcp-server build

# Run tests
pnpm --filter @milaboratories/pl-mcp-server test

# Pack for desktop app
pnpm --filter @milaboratories/pl-mcp-server do-pack

# Then reinstall in desktop app
cd ../../platforma-desktop-app && pnpm install

After changes, rebuild the desktop app's worker package and restart the app to pick up the new server code.