VELA

Stateful workflows for MCP servers

View on GitHub Read the docs
Open Source · MIT

MCP servers have tools. But tools without process are just a bag of functions — the AI has to guess what comes next, state gets lost between sessions, and multi-step tasks fall apart. Vela gives any MCP server pausable, resumable, stateful workflows, defined as YAML.

Three lines. Any MCP server.

pip install vela-sdk[fastmcp]
from fastmcp import FastMCP
from vela_sdk import VelaWorkflows

mcp = FastMCP("cooking-assistant")
workflows = VelaWorkflows(mcp, workflows_dir="./workflows/")
npm install vela-sdk
import { FastMCP } from "fastmcp";
import { VelaWorkflows } from "vela-sdk";
import { FastMcpAdapter } from "vela-sdk/adapters/fastmcp";

const server = new FastMCP({ name: "my-server", version: "1.0.0" });
const vela = new VelaWorkflows({
  server: new FastMcpAdapter(server),
  workflows: [myWorkflowYaml],
});

Define your process as YAML — 7 step types, branching, pause/resume across sessions.

id: cook-recipe
name: Cook a Recipe
steps:
  - id: choose
    type: choice
    prompt: "What do you want to cook?"
    options:
      - key: pasta
        label: Pasta Carbonara
      - key: curry
        label: Thai Green Curry
  - id: ingredients
    type: confirm
    prompt: "Check these ingredients: {{state.recipe_ingredients}}"
  - id: cooking
    type: execute
    prompt: "Follow the recipe step by step."

Stateful & Resumable

Pause a workflow, come back tomorrow, resume exactly where it left off — identity-based state, not just chat history.

Framework-Agnostic

Adapters for FastMCP, the official @modelcontextprotocol/sdk, and LangChain — bring your own server.

Processes as YAML

7 step types — freeform, choice, confirm, execute, dialog, workflow, mcp_call — with templating and branching.

One Engine, Two SDKs

Python and TypeScript share the same state-machine architecture — pick whichever your server runs on.

Examples

Example Framework Language
mcp-fastmcp FastMCP Python
langchain LangChain Python
mcp-fastmcp FastMCP TypeScript
mcp-sdk @modelcontextprotocol/sdk TypeScript
langchain LangChain TypeScript