Installing & Sharing Plugins
Monday Morning has no central plugin marketplace. Community plugins are shared directly — you hand someone a zip (or a folder) and they install it locally. This keeps you in full control of what runs on your machine: nothing is fetched or auto-updated from a remote registry.
Installation is a file-system operation: a plugin lives at
~/.monday-morning/plugins/{plugin-id}/, where the MCP server discovers and
loads it at startup. A zip is just that folder in transit.
What a Distributable Plugin Contains
Section titled “What a Distributable Plugin Contains”A plugin you share is a folder of compiled files:
hello-world/├── index.js # Compiled plugin entry point (required)├── manifest.json # Plugin metadata (required)├── package.json # Must include "type": "module" (required)├── node_modules/ # Bundled dependencies like zod (required)│ └── zod/├── plugin-types.js # Compiled type definitions (if you split them out)└── lib/ # Optional: additional compiled modules └── helpers.jsThe minimum required files are index.js, manifest.json, package.json
(with "type": "module"), and a bundled node_modules/zod. See
Creating a Plugin for how to build these.
manifest.json
Section titled “manifest.json”Every plugin folder must contain a manifest.json. It carries the metadata the
desktop app shows for an installed plugin:
{ "id": "hello-world", "name": "Hello World", "version": "1.0.0", "description": "A minimal example plugin that greets the user", "author": { "name": "Your Name", "github": "your-github-username", "url": "https://optional-website.com" }, "category": "integration", "uiCategory": "development", "icon": "👋", "minAppVersion": "1.0.0", "keywords": ["hello", "example", "starter"], "license": "MIT"}Required Fields
Section titled “Required Fields”| Field | Description |
|---|---|
id | Unique plugin identifier. Lowercase with hyphens (e.g., my-plugin). Must match the id in your MondayMorningPlugin export. |
name | Human-readable name shown in plugin listings. |
version | Semver version string. |
description | Short description shown in plugin listings. |
author.name | Your name or organization. |
Optional Fields
Section titled “Optional Fields”| Field | Description |
|---|---|
author.github / author.url | Links shown alongside the plugin. |
category | One of integration, migration, export (defaults to integration). |
uiCategory | Listing group: communications, development, project-management, financial, data-storage, export-reporting. |
icon | Emoji or SVG for the plugin listing. |
minAppVersion | Minimum Monday Morning version the plugin expects. |
keywords | Descriptive tags. |
license | SPDX license identifier (e.g., MIT, Apache-2.0). |
Installing a Plugin
Section titled “Installing a Plugin”Whether it arrives as a zip or a folder, installation ends the same way: the
plugin folder sits in ~/.monday-morning/plugins/{plugin-id}/.
-
If you received a zip, extract it. The folder containing
manifest.jsonandindex.jsis the plugin. -
Copy the folder into the plugins directory (created on first use):
Terminal window mkdir -p ~/.monday-morning/pluginscp -r hello-world ~/.monday-morning/plugins/Terminal window mkdir "$env:USERPROFILE\.monday-morning\plugins" -Forcecp -r hello-world "$env:USERPROFILE\.monday-morning\plugins\" -
Load it. Restart the MCP server (or the desktop app) — or ask an agent to call
mm_reload_plugins, which hot-loads new community plugins without a restart. Check the logs for:[plugin-registry] INFO: Loaded plugin "Hello World" (hello-world) v1.0.0
Once loaded, the plugin’s tools join the MCP tool surface, and the plugin shows up in the desktop app — a plugin with a settings schema appears in Settings → Integrations with a connection status, and its settings form is reachable from the Plugins section.
Updating & Removing
Section titled “Updating & Removing”- Update: replace the folder with a newer
version, then restart the MCP server or callmm_reload_plugins. - Remove: delete the plugin’s folder from
~/.monday-morning/plugins/and restart (or reload) — the registry unloads community plugins whose directories are gone.
A Note on Trust
Section titled “A Note on Trust”Because plugins are shared directly and run as code inside the MCP server process, only install plugins from sources you trust. There is no automated review or sandbox. Read the source where you can, and prefer plugins distributed with their source repository.
Next Steps
Section titled “Next Steps”- Creating a Plugin — Build a plugin from scratch.
- Plugin Architecture — Understand the full plugin lifecycle.
- Tool Registration — Define MCP tools with Zod schemas.