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

webos-mcp

v0.1.7

Published

MCP server providing Palm/HP webOS development context for Claude

Downloads

956

Readme

webos-mcp

An MCP (Model Context Protocol) server that gives Claude deep, persistent knowledge of legacy Palm/HP webOS development — so you don't have to re-teach Claude platform basics every session, and neither does anyone else. This effort compliments the SDK restoration at sdk.webosarchive.org

This covers the original Palm/HP webOS (2009–2012), not LG's webOS TV platform. Maintained in conjunction with the webOS Archive project.


How It Works

Claude needs to be taught webOS once per session — things like how novacom works, what sources.json does, how the Luna service bus operates. Without help, that knowledge disappears when the session ends and has to be re-established the next time.

This package solves that with a two-layer approach:

┌─────────────────────────────────────────────────────┐
│  Layer 1: webos-mcp (this package)                  │
│  Installed once globally. Holds all the curated     │
│  webOS knowledge. Updated centrally via npm.        │
└─────────────────────────────────────────────────────┘
                          +
┌─────────────────────────────────────────────────────┐
│  Layer 2: CLAUDE.md in your project                 │
│  Added once per project. Tells Claude to load the   │
│  MCP knowledge at the start of every session,       │
│  automatically — no slash command to remember.      │
└─────────────────────────────────────────────────────┘

The result: open any webOS project in Claude Code, and Claude already knows the platform. No setup, no /commands to remember, no copy-pasting documentation.


Setup

Step 1 — Install the MCP server (once, globally)

Prerequisites: Node.js 18+, Claude Code CLI

Run this command once — no separate npm install needed:

claude mcp add webos-mcp -s user -- npx -y webos-mcp

The -s user flag registers the server globally (available in every project). The server starts automatically in new Claude Code sessions — you can verify it's connected with claude mcp list.

Running a local clone instead of npx?

claude mcp add webos-mcp -s user -- node /path/to/webos-mcp/index.js

Prefer to edit ~/.claude.json manually? Add this under the top-level mcpServers key:

"webos-mcp": {
  "type": "stdio",
  "command": "npx",
  "args": ["-y", "webos-mcp"],
  "env": {}
}

Step 2 — Add a CLAUDE.md to your webOS project (once per project)

Copy templates/CLAUDE.md from this repo into the root of your webOS app and fill in your project details:

curl -o CLAUDE.md https://raw.githubusercontent.com/webosarchive/webos-mcp/main/templates/CLAUDE.md

Then edit it — set your app ID, framework, target devices, and add any project-specific notes Claude should know.

The key part that makes loading automatic is this section in the template:

## Session Setup

At the start of every session, load the full webOS platform context:

    webos://knowledge/all

When Claude opens your project, it reads CLAUDE.md, sees that instruction, fetches the knowledge bundle from the MCP server, and arrives pre-loaded with webOS context — without you doing anything.


Knowledge Included

All files in knowledge/ are auto-discovered and served as webos://knowledge/<filename>. Load everything at once with webos://knowledge/all, or fetch individual topics as needed mid-session.

Core Platform

| Resource | Contents | |----------|----------| | webos://knowledge/overview | Platform architecture, versions, device matrix, Luna service bus | | webos://knowledge/app-structure | appinfo.json, sources.json, directory layout, IPK packaging | | webos://knowledge/sdk-tools | palm-package, palm-install, palm-launch, novacom, full dev workflow | | webos://knowledge/gotchas | Hard-won knowledge — things that bite every developer |

UI Frameworks

| Resource | Contents | |----------|----------| | webos://knowledge/mojo | Mojo framework — scenes, assistants, widgets, events (phones + early TouchPad) | | webos://knowledge/enyo | Enyo 1 framework — kinds, published properties, events (TouchPad) | | webos://knowledge/enyo2 | Enyo 2.x — cross-platform build, Cordova, LuneOS, Android | | webos://knowledge/pdk | Native C/C++ PDK apps — toolchain, SDL, packaging, jail |

Services & Backend

| Resource | Contents | |----------|----------| | webos://knowledge/services | Luna built-in services quick reference; privileged service calls | | webos://knowledge/js-services | Writing Node.js background services that register on the Luna bus | | webos://knowledge/synergy | Synergy account/sync framework — Contacts, Messaging, Calendar integration | | webos://knowledge/ls2-roles | LS2 hub role files — service-name registration, the lunasend impersonation pattern for recovery/migration |

System Features

| Resource | Contents | |----------|----------| | webos://knowledge/system-features | Just Type, noWindow, dashboard stage, key events, system sounds | | webos://knowledge/system-internals | Below-the-SDK plumbing — encrypted /var/db, mountcrypt/NDUID, boot event graph, jail /proc, debug-info binaries, binary patching | | webos://knowledge/exhibition | Touchstone dock / Exhibition mode — full implementation guide | | webos://knowledge/alarms | Background timers via palm://com.palm.power/timeout; TouchPad workaround | | webos://knowledge/touch2share | Touch2Share — tap-to-share URLs over Bluetooth between TouchPads | | webos://knowledge/url-handlers | Registering an app as handler for URL patterns (reverse-engineered) |

Distribution & Packaging

| Resource | Contents | |----------|----------| | webos://knowledge/postinst-packaging | postinst/prerm scripts, setuid helpers, upstart daemons | | webos://knowledge/patches | Preware/AUSMT system file patches — raw .patch and packaged .ipk | | webos://knowledge/updater | App self-update via App Museum II API | | webos://knowledge/nizovn-packages | Qt 5, modern glibc, OpenSSL ports for advanced PDK apps |

Networking & Portability

| Resource | Contents | |----------|----------| | webos://knowledge/tls-and-networking | TLS 1.0 limitations, SSL-bump proxy, HTTP workarounds | | webos://knowledge/pwa-portability | Multi-platform builds: webOS IPK + Android APK + PWA from one Enyo 2 codebase |

Bundle

| Resource | Contents | |----------|----------| | webos://knowledge/all | All files concatenated — use for automatic session loading |

Also includes prompts:

  • webos-session-start — manually prime Claude with full webOS context
  • webos-new-app — scaffold a new Mojo or Enyo app

Developer Experience

Once set up, the flow is:

1. Open your webOS project in Claude Code
2. Claude reads CLAUDE.md → fetches webos://knowledge/all automatically
3. Start working — Claude already knows webOS

You can also load specific topics mid-session:

"Read webos://knowledge/sdk-tools before we continue"

Or manually trigger the session prompt if you're starting a webOS session outside a project:

"Use the webos-session-start prompt"


Project-Level Config (alternative to global)

If you only want the MCP server active for specific webOS projects, register it at project scope instead:

claude mcp add webos-mcp -s project -- npx -y webos-mcp

This writes to .mcp.json in the project root (commit it to share with your team). Team members will be prompted to approve the server the first time they open the project.


Keeping Knowledge Current

The knowledge lives in knowledge/ as plain Markdown files — easy to read, easy to edit, easy to contribute to.

To improve or correct anything:

  1. Edit the relevant .md file in knowledge/
  2. Submit a PR to webosarchive/webos-mcp
  3. When a new version is published to npm, everyone using npx gets it automatically on their next session

License

MIT