mcp.js
Allows sending notifications to macOS from scheduled jobs, including automatic failure alerts with sound and on-demand @notify messages.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp.jsCreate a daily job that runs my backup script at 2am and pings me when done."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ElianBot
An AI-controlled local script scheduler. One job = one .sh file on disk, run
by plain deterministic code — on a cron schedule or on click. The AI (any MCP
client: Grok, Claude, Cursor, …) writes the script once; ElianBot runs it
forever — free, offline, and reproducible. No tokens burned per run.
The idea in one line: AI for creation, code for execution.
AI writes script ──▶ ElianBot schedules & runs it ──▶ output routed anywhere
(once) (forever, free) (feed · jobs · notify · webhook)Quick start
npm install # once (installs Electron)
npm start # open the app — open = the scheduler runs; closed = nothing fires
npm test # headless engine checks (cron, safety, mentions, webhooks)macOS: double-click ElianBot.command — it installs on first run, then launches.
Related MCP server: Arcanna Input MCP Server
The app
A small Electron window with two tabs:
Jobs — job list + detail pane. Per job: Run now, Pause, Edit, Delete, reveal script/log in Finder. Schedules are built with plain dropdowns (every X minutes / hourly / daily / weekdays / weekly / monthly at a time); a raw cron field stays underneath for power users, with a live plain-English preview ("weekdays at 08:00 — next: Mon 08:00").
Dashboard — a calendar of past runs (green = ok, red = failed, blue = scheduled, computed from the crons), a per-day timeline with one-click log viewing, and the live message feed.
A "?" button opens the built-in manual.
Every finished run auto-pings: a feed entry plus a macOS notification (failures ping with sound).
Routing output with @ lines
A job talks by printing lines that start with @:
line printed by the script | what happens |
| posts to the message feed (the AI reads it via MCP |
| runs that job with this output as its input ( |
| immediate macOS notification |
| POSTs |
Each job also has a WEBHOOK panel in the UI: paste a URL and (optionally) an
Authorization value — every successful run then POSTs its output there. The
secret is written straight into a local, gitignored secrets.json; it can never
be read back from the UI and never appears in output, feed, logs, or git. Any
paste shape works: bare key, Bearer key, or a full Authorization: … header line.
What a script receives as environment:
variable | meaning |
| input handed over by a mention or |
| identity |
| this run's log file |
| the data folder |
AI remote control (MCP)
mcp.js is a zero-dependency MCP stdio server. Register it in any MCP client:
{ "command": "node", "args": ["/path/to/elianbot/mcp.js"] }Tools: list_jobs · get_job · create_job · update_job · run_job · pause_job · resume_job · get_output · read_messages · send_message · delete_job.
The AI can create a job from a plain script body (create_job with
script_content), set its schedule and webhook URL, hand a run input, and read
every outcome from the feed. Each job carries a description — the original
prompt that created it, shown read-only in the UI as a record (never executed).
One brain rule: the MCP only edits data files and queues run requests; the open app is the only thing that ever executes a job.
Included template: video brief
templates/video-brief.sh turns any text (typically another job's output, via
@video-brief) into a narrated MP4 — designed title cards, Ken Burns motion,
crossfades, per-slide narration — using only free native tools (say,
qlmanage, sips, ffmpeg). No AI at runtime.
Safety model (small on purpose)
A job runs as
spawn("/bin/bash", [script_path])— the script path is argv and job values are env vars. Nothing a job contains is ever parsed as shell source, so there is no injection surface.All JSON writes are atomic (tmp + rename).
AI-written scripts land in
scripts/with unique names — never overwriting.delete_jobrequiresconfirm:trueand never deletes script files.Secrets live only in a local gitignored file, referenced by name.
Data layout
Everything lives in data/ next to the app (the green tab in the header shows
the location — click it to move everything elsewhere; the choice persists):
jobs.json job configs (the MCP edits this too)
state.json run results, history (app-only)
messages.json the feed: pings, @grok mentions, handoffs
secrets.json Authorization values, by name (gitignored, local only)
scripts/ AI-written .sh files
runs/<id>/ one log per run
requests/ run-now queue (MCP → app)
videos/ rendered video briefsStack
Electron + vanilla JS, zero runtime dependencies beyond Electron itself. Engine, cron parser, MCP protocol: ~1,200 lines total, all readable in one sitting. Tests run headless with no Electron.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create and manage scheduled, guarded AI agent jobs with built-in quality control and 900+ connectors
Discover, preview, estimate, run, and retrieve reusable AI workflows.
Connect, monitor, and control AI agents — tasks, approvals, schedules, and governance.
Create, test, publish, and manage Dreamlit notification workflows from AI clients.
Related MCP Servers
- AlicenseAqualityDmaintenanceAllows AI agents to query and manage asynchronous jobs in the Agent Jobs system of the AI Connect platform, supporting operations like listing, creating, and canceling jobs.6182MIT
- AlicenseAqualityDmaintenanceEnables interaction with Arcanna's AI use cases through MCP, supporting job management, event processing, feedback, and health monitoring.4Apache 2.0
- -licenseNot gradedqualityNot gradedmaintenanceEnables kicking off deployed CrewAI workflows and inspecting their status and results.
- AlicenseNot gradedqualityBmaintenanceEnables coordinating specialist agents through an event-driven backend, allowing submission of goals, retrieval of job status and results, and listing of jobs via MCP tools.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ElianNotes/elian-bot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server