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

pagenodes-mcp

v0.6.0

Published

Ainura MCP server - Multi-body PageNodes orchestration for distributed AI

Readme

pagenodes-mcp

MCP server that lets AI assistants build and deploy PageNodes flows.

Install

npm install -g pagenodes-mcp

Or run directly:

npx pagenodes-mcp

Quick Start

  1. Start the MCP server: npx pagenodes-mcp
  2. Open PageNodes in your browser
  3. Enable MCP in PageNodes: hamburger menu (☰) → Settings → Enable "MCP Server Connection"
  4. Configure your AI tool (see below)

AI Tool Configuration

Claude Code (CLI)

Claude Code connects via HTTP+SSE (recommended for network connections).

Option 1: CLI command

claude mcp add --transport sse pagenodes http://localhost:7778/sse

To make it available across all your projects, add --scope user:

claude mcp add --transport sse --scope user pagenodes http://localhost:7778/sse

Option 2: Edit config directly

Add to your settings file (~/.claude.json for user scope, or .mcp.json in your project root for project scope):

{
  "mcpServers": {
    "pagenodes": {
      "type": "sse",
      "url": "http://localhost:7778/sse"
    }
  }
}

Verify with: claude mcp list

Claude Desktop

Claude Desktop spawns MCP servers as subprocesses using stdio.

Open Settings → Developer → Edit Config (or edit ~/.config/claude/claude_desktop_config.json on Linux, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "pagenodes": {
      "command": "npx",
      "args": ["pagenodes-mcp", "--stdio"]
    }
  }
}

Restart Claude Desktop after saving.

OpenAI Codex CLI

Codex stores MCP config in ~/.codex/config.toml.

For HTTP/SSE (edit config directly):

Add to ~/.codex/config.toml:

[mcp_servers.pagenodes]
url = "http://localhost:7778/sse"

For stdio (CLI command):

codex mcp add pagenodes -- npx pagenodes-mcp --stdio

Or edit config directly:

[mcp_servers.pagenodes]
command = "npx"
args = ["pagenodes-mcp", "--stdio"]

VS Code + GitHub Copilot

VS Code uses .vscode/mcp.json in your project (or workspace settings).

Create .vscode/mcp.json:

{
  "servers": {
    "pagenodes": {
      "type": "http",
      "url": "http://localhost:7778/sse"
    }
  }
}

Or for stdio:

{
  "servers": {
    "pagenodes": {
      "command": "npx",
      "args": ["pagenodes-mcp", "--stdio"]
    }
  }
}

Open Copilot Chat → click the tools icon to see available MCP servers.

Cursor

Cursor supports global (~/.cursor/mcp.json) or project-level (.cursor/mcp.json) config.

Create or edit the config file:

{
  "mcpServers": {
    "pagenodes": {
      "url": "http://localhost:7778/sse"
    }
  }
}

Or for stdio:

{
  "mcpServers": {
    "pagenodes": {
      "command": "npx",
      "args": ["pagenodes-mcp", "--stdio"]
    }
  }
}

You can also use Command Palette → "MCP: Add Server" to configure via UI.

Server Options

-p, --port <number>  HTTP/WebSocket port (default: 7778, env: PAGENODES_MCP_PORT)
--stdio              Enable stdio MCP transport

Transport Modes

| Mode | Use Case | How it works | |------|----------|--------------| | HTTP+SSE | Network connections (Claude Code, Codex, VS Code, Cursor) | Client connects to /sse, posts to /message | | stdio | Spawned subprocess (Claude Desktop) | JSON-RPC over stdin/stdout |

Both modes can run simultaneously - the server listens on HTTP while also accepting stdio if --stdio is passed.

Connection Flow

PageNodes (browser) ──WebSocket──► MCP Server ◄──HTTP/stdio──► Claude
  1. Start the MCP server
  2. Open PageNodes in browser
  3. Enable MCP connection in PageNodes settings (hamburger menu → Settings)
  4. Claude can now create and deploy flows

Endpoints

| Endpoint | Method | Description | |----------|--------|-------------| | /sse | GET | SSE connection for MCP clients (returns endpoint event with POST URL) | | /message | POST | JSON-RPC messages from SSE clients | | /mcp | POST | Legacy direct JSON-RPC endpoint | | /health | GET | Health check: { status, pagenodes: "connected"\|"waiting" } | | ws:// | WebSocket | PageNodes browser connection (internal) |

Tools

Once connected, the AI assistant has access to:

| Tool | Description | |------|-------------| | get_started | CALL THIS FIRST. Returns guide, node catalog, and current state | | get_flows | Get current flows, nodes, and config nodes | | get_node_details | Get full details for a specific node type | | create_flow | Create a new flow tab | | add_nodes | Add multiple nodes with automatic wire resolution | | update_node | Update a node's properties or position | | delete_node | Delete a node from a flow | | deploy | Deploy flows to the runtime | | get_debug_output | Get recent debug panel messages | | get_errors | Get recent runtime errors | | get_logs | Get recent logs (UI, runtime, audio, etc.) with optional filters | | clear_logs | Clear the log buffer | | get_inject_nodes | List all inject nodes (triggerable) | | inject_node | Trigger an inject node | | trigger_node | Send a message to any node's input | | clear_debug | Clear debug message buffer | | clear_errors | Clear error message buffer | | get_node_statuses | Get status of all nodes (connection states, etc.) | | get_canvas_svg | Get SVG of the flow canvas

License

ISC