
Moira
io.github.moira-mcpPublished by GitHub account moira-mcpv0.3.4Updated Nov 3, 2026
Agent Workflow Engine — multi-step MCP workflows with per-step directives and validation.
Overview
Moira is a self-hostable workflow engine that gives an AI agent multi-step workflows with per-step instructions, completion criteria and schema-checked…
- What you can do
- Discover available workflows and pick the exact owner/slug for a task
- Prepare and execute workflow steps, with step attempts, continuation of a run and guarded cancellation
- Submit schema-checked responses against each step's completion criteria
- Read runtime help topics and the current typed tool catalog
- Persist execution state so another agent session can continue the same run
- Edit workflows and inspect runs through a bundled Web UI and workflow CLI
- When to use it
- Use it when you want an agent to follow a defined, multi-step procedure with explicit instructions and completion criteria per step, and to be able to resume a run across sessions. It suits teams willing to self-host the engine or use the managed service rather than a single-purpose tool server.
- Requirements
- Runs as a local process over stdio, or as a streamable-http endpoint on your own instance's /mcp path. Self-hosting needs Docker with the Compose plugin and the deployment files; the image pulls from a public registry. Connecting an agent requires completing the instance's authenticated authorization flow, and self-host accounts need administrator approval.
Installation
In SourceWeft
- Open Moira in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
MCP Moira
Moira is a workflow engine for AI agents. An agent connects through the Model Context Protocol (MCP), receives the current instruction and completion criteria, performs the work, and submits a schema-checked response. Moira persists execution state so another agent session can continue the same run. The Web UI provides workflow editing, run inspection and account administration. Schema validation checks a response's structure; it does not prove that the work happened.
Run the open-source application on your own infrastructure, or use the managed service at moira-mcp.com. This repository contains the engine, MCP server, Web API/UI, documentation and self-host deployment. See the documentation index and project structure for source ownership.
Self-host
Install Docker with the Compose plugin. Use this checkout, or download the three deployment files
following the Self-Hosting guide:
docker-compose.yml, .env.example and config/traefik-self-host.yml. Keep the ingress configuration
beside the Compose file.
The localhost defaults pull the public image without a source build. Open:
- Web UI: http://localhost:8080
- Documentation: http://localhost:8080/docs/ (English) or http://localhost:8080/ru/docs/ (Russian)
- MCP endpoint: http://localhost:8080/mcp
For another host, set MOIRA_HOST, MOIRA_PORT and STATIC_ARTIFACTS_DOMAIN together in .env.
Published HTML artifacts use individual subdomains of the artifact domain; public deployments need
the matching DNS and wildcard TLS. Preserve the supplied workspace Upgrade route through ingress;
an ordinary frontend-port mapping is not equivalent. Configure proxy trust for your actual topology.
See deployment configuration for origins, secrets, email and network admission.
Self-host registration requires administrator approval. On first start the image generates missing
secrets and prints the generated administrator password once; the default administrator email is
[email protected]. Preserve data/.secrets.env with the database. Sign in, then approve new
accounts through Admin Panel → Users. Self-host uses email/password; social login and broader
cross-user administration/analytics follow the separate SaaS policy. See
account administration for approval, blocking, password recovery and
administrator access recovery, including installations without real email delivery.
Connect an agent and use workflows
Connect your MCP client to your instance's /mcp endpoint and complete its authenticated
authorization flow. Use the MCP Clients guide
for the configuration generated for each supported client. The connection name moira-local is a
client label, independent of the optional Local companion executable.
Ask the agent to discover available workflows and choose the current exact owner/slug for the
task. The workflow catalog
explains the choices; the Agent Guide
owns prepare/execute, step attempts, continuation and guarded cancellation. Runtime help discovers
English topics; help({ topic: "tools" }) renders the current typed tool catalog. The website also
provides Russian translations.
Use workflow authoring and the workflow CLI to create or edit definitions. Node syntax, templates, tool schemas and examples stay in their canonical references rather than a second README catalog. For public HTML results, see artifacts for upload, ownership, quotas, expiry and browser isolation.
Update and recover
Use the image selection in your installation's .env, then:
Before startup migrations of an existing self-host database, the image verifies a coherent SQLite
snapshot and the prompt-manifest state. It retains rotating recovery states and an interruption
marker; failure attempts restoration and keeps services unavailable. A first start has a separate
cleanup path because no previous database exists. These safeguards do not replace operator backups.
If initialization fails, inspect docker compose logs moira and follow
Updating and Recovery;
do not bypass the guard or repeatedly restart an unchanged failure. A confirmed bundled-workflow
conflict uses the catalog reconciliation procedure.
Application accounts, workflows and executions persist in ./data. Workspace files, full command
output, operation receipts and immutable publications remain with their workspace service or paired
controller. Back up those private owner stores and disks separately; a database backup does not
contain their file bytes. Preserve encryption keys, and collect original operations after uncertain
outcomes before considering another mutation. See workspace recovery
and GitHub Releases.
Optional workspace and extension support
The paired Local controller can provision the common workspace service in GitHub Codespaces and run approved repositories in Local microVMs. Controller enrollment does not require initializing a physical Local VM. Local VM execution requires the supported macOS Apple-silicon runtime and explicit owner grants; repository Git authority is separate from social login. From the checkout:
Follow workspace setup and custody for pairing, physical capability,
permissions, installation and explicit maintenance. Staging a release does not replace the running
owner; client exit does not stop its VMs. The common moira-workspace guest CLI owns commands, files,
sessions and original results in both Local and GitHub guests. Lost replies require collecting the
original operation, not replaying the command or creating a replacement environment.
Extensions are disabled by default. The optional Compose profile builds a separate runner from this checkout; binary channels execute beside their source owner. Follow Enable extensions and Writing an Extension for bundle installation, permissions, user settings and failure boundaries.
Contribute
Read CONTRIBUTING for issue coordination, pull requests, DCO and release policy. Use Node.js 24 and the root npm workspace:
Contributor setup explains the isolated development container, environment selection and native build commands. The testing guide owns suite selection and root npm entrypoints; the coverage map locates maintained fixtures. Do not use the disposable contributor container for persistent installation data.
Start at docs/README.md for architecture, execution, HTTP/authentication, workspaces, UI patterns, documentation ownership, observability and operator procedures. Custom Claude Code commands are documented in commands/README.md. Current work is tracked in GitHub Issues.
License, security and branding
Source code is licensed under Apache-2.0. See third-party notices, the trademark policy for name/logo use, the code of conduct, and SECURITY.md for vulnerability reporting. Private deployment branding, secrets and operational material belong outside this public repository.
Source: README.md at commit 46fffaf
Tools
0Version history
1- v0.3.4LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts