ojnadjarm

Navi 🧚

Community ojnadjarm
Updated

A little MCP server to notify the user when it needs you.

Navi 🧚

Hey! Listen!

A desktop notifier for AI agents, styled after the fairy from The Legend ofZelda: Ocarina of Time. Navi floats on your screen; when an agent (ClaudeCode or any MCP client) calls her notify tool, she rings, changes color,and shows the message in a speech bubble — so you know when an agent needsyou without watching the terminal.

Kind Meaning Color Chime volume
urgent Agent needs your approval 🔴 Red 100%
warning Something needs attention 🟡 Yellow 60%
success Task finished 🟢 Green 35%

Idle, she glows soft blue, bobs, flaps her wings, sheds sparks, and driftslazily around her corner of the screen. Drag her anywhere by her body.

How it works

One Electron app hosts both:

  • An MCP server (streamable HTTP, stateless) on 0.0.0.0:8641, exposinga single tool:

    notify(kind: "urgent" | "warning" | "success", message: string, title?: string)
    
  • The fairy overlay — a transparent, frameless, always-on-top window.

A tray icon provides per-kind test notifications, a "Copy MCP add command"shortcut, and Quit.

Requirements

  • Windows 10/11 with Node.js LTS (the app is Windows-only: transparentoverlay + audio).
  • Agents can run anywhere that can reach port 8641 — including WSL2.

Run from source

npm install
npm start

Allow the Windows Firewall prompt on first launch (tick Public if youragents connect from WSL2 — the WSL virtual adapter is usually classifiedPublic).

Build the exe

npm run package

Output: release/navi-win32-x64/navi.exe. Launching it starts the MCPserver automatically; on startup Navi's speech bubble shows the exactcommand to register her with Claude Code.

Connect an agent

From Windows:

claude mcp add --transport http navi http://localhost:8641/mcp

From WSL2 (NAT mode — the default), use the Windows host IP instead:

HOST=$(ip route show default | awk '{print $3}')
claude mcp add --transport http navi http://$HOST:8641/mcp

The NAT IP can change after a reboot — re-run the command if calls stopconnecting, or enable networkingMode=mirrored in .wslconfig solocalhost works from WSL too. The tray's Copy MCP add command alwayshas the current URL.

Then just ask your agent to use it, or add a standing instruction like:

When you finish a task, need my approval, or hit a problem, call thenotify tool (kind: success / urgent / warning).

The chime

Drop your own sound at assets/hey_listen.mp3 (gitignored — bring your own;Nintendo's audio cannot be distributed with this repo). Without the file,Navi synthesizes a two-note fairy chime with WebAudio.

Development notes

  • No bundler: two tsc projects (tsconfig.json for main/preload,tsconfig.renderer.json for browser-global renderer scripts).
  • npm run build compiles both; see CLAUDE.md for the full developmentlog and environment gotchas.

Known limitations

  • The server listens on 0.0.0.0, so any LAN host can triggernotifications. Fine for a home setup; firewall the port if that bothersyou.
  • Always-on-top does not cover exclusive-fullscreen games.

MCP Server · Populars

MCP Server · New

    bibinprathap

    veritasgraph

    VeritasGraph — open-source Knowledge Graph & GraphRAG framework on GitHub. Build multi-hop reasoning, ontology-aware retrieval, and verifiable attribution over your own data. Nodes, edges, RDF, linked-data — runs locally or in the cloud.

    Community bibinprathap
    sher1096

    KLinePic MCP Server and Agent API Examples

    MCP server and OpenAPI examples for AI agents that turn broker and exchange fills into annotated KLinePic trade-review charts

    Community sher1096
    zerx-lab

    FluxDown

    Rust 驱动的多协议下载管理器,支持 HTTP/FTP/BitTorrent 磁力链接及 HLS/DASH 流媒体,智能多线程加速与浏览器无缝集成。精美界面,极致性能,永久免费,零广告。

    Community zerx-lab
    MasihMoafi

    Project Elpis:

    You put an agent into an Elpis, and it becomes Elpis; Be Elpis my friend.

    Community MasihMoafi
    ROCTUP

    1C Metacode MCP Server

    MCP сервер с встроенным AI агентом для поиска по графу метаданных и кода конфигураций 1С

    Community ROCTUP