When running a formation that has a MCP server and type is HTTP the runtime hits 100% and stays there even after letting it run 10 minutes. Running with type: command work as expected.
muxi up
muxi down <-- cpu goes to normal
top - 09:35:05 up 4:58, 2 users, load average: 1.45, 1.18, 1.06
Tasks: 653 total, 2 running, 650 sleeping, 0 stopped, 1 zombie
%Cpu(s): 6.4 us, 0.9 sy, 0.0 ni, 92.3 id, 0.1 wa, 0.2 hi, 0.1 si, 0.0 st
MiB Mem : 61082.9 total, 25221.6 free, 13585.6 used, 22364.2 buff/cache
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 47497.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
**120176 scot 20 0 4002652 1.2g 176776 R 99.4 2.0 6:33.02 python**
muxi --version 43s Py base
muxi version 0.20260324.0
9:27AM INF MUXI Server (v0.20260323.0): Starting...
9:27AM INF Installation: User-level
cat /proc/120176/cmdline | tr '\0' ' '; echo
tr '\0' '\n' < /proc/120176/environ | sed 's/^/ENV: /'
/usr/local/bin/python -m muxi.runtime.utils.run_formation /formation --port 8002 --host 127.0.0.1
ENV: APPTAINER_APPNAME=
ENV: APPTAINER_BIND=/formation,/tmp,/opt/muxi-tools/bin/node,/opt/muxi-tools/bin/npm,/opt/muxi-tools/bin/npx,/opt/muxi-tools/bin/uv,/opt/muxi-tools/bin/uvx,/opt/muxi-tools/bin/git,/opt/muxi-tools/bin/curl,/opt/muxi-tools/bin/wget,/opt/muxi-tools/bin/jq,/opt/muxi-tools/bin/tar,/opt/muxi-tools/bin/gzip,/opt/muxi-tools/bin/unzip,/opt/muxi-tools/bin/ssh,/opt/muxi-tools/bin/sqlite3,/opt/muxi-tools/bin/python3,/opt/muxi-tools/bin/ffmpeg,/opt/muxi-tools/bin/ffprobe,/opt/muxi-tools/bin/pdftotext,/opt/muxi-tools/bin/pdfinfo,/opt/muxi-tools/bin/dot,/opt/muxi-tools/bin/make,/opt/muxi-tools/bin/gcc,/opt/muxi-tools/bin/g++,/opt/muxi-tools/bin/cc,/opt/muxi-tools/lib/lib,/opt/muxi-tools/lib/lib64,/opt/muxi-tools/lib/lib,/opt/muxi-tools/lib/lib64,/opt/muxi-tools/lib/node_modules,/opt/muxi-tools/share/fonts,/opt/muxi-tools/share/certs/ca-certificates.crt
ENV: APPTAINER_COMMAND=exec
ENV: APPTAINER_CONTAINER=/home/scot/.muxi/server/runtimes/muxi-runtime-0.20260326.3-linux-amd64.sif
ENV: APPTAINER_ENVIRONMENT=/.singularity.d/env/91-environment.sh
ENV: APPTAINER_NAME=muxi-runtime-0.20260326.3-linux-amd64.sif
ENV: COLORTERM=truecolor
ENV: CONDA_DEFAULT_ENV=base
ENV: CONDA_EXE=/home/scot/miniforge3/bin/conda
ENV: CONDA_PREFIX=/home/scot/miniforge3
ENV: CONDA_PROMPT_MODIFIER=(base)
ENV: CONDA_PYTHON_EXE=/home/scot/miniforge3/bin/python
ENV: CONDA_SHLVL=1
ENV: DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
ENV: DEBUGINFOD_IMA_CERT_PATH=/etc/keys/ima:
ENV: DEBUGINFOD_URLS=ima:enforcing https://debuginfod.fedoraproject.org/ ima:ignore
ENV: DESKTOP_SESSION=gnome
ENV: DISPLAY=:0
ENV: EDITOR=/usr/bin/nano
ENV: FIRECRAWL_API_KEY=fc-bee863a9781142d3ba9bcef6400c835f
ENV: FLATPAK_TTY_PROGRESS=1
ENV: FONTCONFIG_PATH=/opt/muxi-tools/share/fonts
ENV: FORMATION_ID=testmcp
ENV: GDMSESSION=gnome
ENV: GDM_LANG=en_US.UTF-8
ENV: GIO_LAUNCHED_DESKTOP_FILE_PID=16536
ENV: GNOME_SETUP_DISPLAY=:1
ENV: GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
ENV: GPG_TTY=/dev/pts/15
ENV: HF_HOME=/opt/hf-cache
ENV: HISTCONTROL=ignoredups
ENV: HISTSIZE=50000
ENV: HOME=/home/scot
ENV: HOST=127.0.0.1
ENV: HOSTNAME=ryzen
ENV: INVOCATION_ID=b799d67ed6fa4f37ac1928820f0086bf
ENV: JOURNAL_STREAM=9:45231
ENV: KDEDIRS=/usr
ENV: LANG=C.UTF-8
ENV: LC_ALL=C.UTF-8
ENV: LD_LIBRARY_PATH=/.singularity.d/libs
ENV: LESS=-R
ENV: LESSOPEN=||/usr/bin/lesspipe.sh %s
ENV: LOGNAME=scot
ENV: LSCOLORS=Gxfxcxdxbxegedabagacad
ENV: LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.jxl=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:
ENV: MAIL=/var/spool/mail/scot
ENV: MAMBA_EXE=/home/scot/miniforge3/bin/mamba
ENV: MAMBA_ROOT_PREFIX=/home/scot/miniforge3
ENV: MANAGERPID=1495
ENV: MANAGERPIDFDID=1496
ENV: MEMORY_PRESSURE_WATCH=/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/session.slice/org.gnome.SettingsDaemon.MediaKeys.service/memory.pressure
ENV: MEMORY_PRESSURE_WRITE=c29tZSAyMDAwMDAgMjAwMDAwMAA=
ENV: MOZ_GMP_PATH=/usr/lib64/mozilla/plugins/gmp-gmpopenh264/system-installed
ENV: MUXI_ENV=production
ENV: MUXI_RCE_TOKEN=rce_fb1757c031f145b84f7e163c950c76273eca0ccbcb959ced6e32e10350171945
ENV: MUXI_RCE_URL=http://127.0.0.1:7891
ENV: MUXI_SERVER_URL=http://localhost:7890
ENV: NODE_PATH=/opt/muxi-tools/lib/node_modules
ENV: NVM_BIN=/home/scot/.nvm/versions/node/v22.14.0/bin
ENV: NVM_CD_FLAGS=-q
ENV: NVM_DIR=/home/scot/.nvm
ENV: NVM_INC=/home/scot/.nvm/versions/node/v22.14.0/include/node
ENV: OLDPWD=/home/scot/.muxi/server
ENV: P9K_SSH=0
ENV: P9K_TTY=old
ENV: PAGER=less
ENV: PATH=/opt/muxi-tools/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV: PNPM_HOME=/home/scot/.local/share/pnpm
ENV: PORT=8002
ENV: PROMPT_COMMAND=PS1="Apptainer> "; unset PROMPT_COMMAND
ENV: PS1=Apptainer>
ENV: PTYXIS_PROFILE=6cd45ad8ba1cb1cfb37270df6772fc2d
ENV: PTYXIS_VERSION=49.3
ENV: PWD=/home/scot/muxi_agents/testmcp
ENV: PYTHONDONTWRITEBYTECODE=1
ENV: PYTHONPATH=/app/src:/app
ENV: PYTHONUNBUFFERED=1
ENV: PYTHON_SHA256=de6517421601e39a9a3bc3e1bc4c7b2f239297423ee05e282598c83ec0647505
ENV: PYTHON_VERSION=3.10.20
ENV: QT_IM_MODULE=ibus
ENV: QT_IM_MODULES=wayland;ibus
ENV: SHELL=/usr/bin/zsh
ENV: SHLVL=1
ENV: SINGULARITY_BIND=/formation,/tmp,/opt/muxi-tools/bin/node,/opt/muxi-tools/bin/npm,/opt/muxi-tools/bin/npx,/opt/muxi-tools/bin/uv,/opt/muxi-tools/bin/uvx,/opt/muxi-tools/bin/git,/opt/muxi-tools/bin/curl,/opt/muxi-tools/bin/wget,/opt/muxi-tools/bin/jq,/opt/muxi-tools/bin/tar,/opt/muxi-tools/bin/gzip,/opt/muxi-tools/bin/unzip,/opt/muxi-tools/bin/ssh,/opt/muxi-tools/bin/sqlite3,/opt/muxi-tools/bin/python3,/opt/muxi-tools/bin/ffmpeg,/opt/muxi-tools/bin/ffprobe,/opt/muxi-tools/bin/pdftotext,/opt/muxi-tools/bin/pdfinfo,/opt/muxi-tools/bin/dot,/opt/muxi-tools/bin/make,/opt/muxi-tools/bin/gcc,/opt/muxi-tools/bin/g++,/opt/muxi-tools/bin/cc,/opt/muxi-tools/lib/lib,/opt/muxi-tools/lib/lib64,/opt/muxi-tools/lib/lib,/opt/muxi-tools/lib/lib64,/opt/muxi-tools/lib/node_modules,/opt/muxi-tools/share/fonts,/opt/muxi-tools/share/certs/ca-certificates.crt
ENV: SINGULARITY_CONTAINER=/home/scot/.muxi/server/runtimes/muxi-runtime-0.20260326.3-linux-amd64.sif
ENV: SINGULARITY_ENVIRONMENT=/.singularity.d/env/91-environment.sh
ENV: SINGULARITY_NAME=muxi-runtime-0.20260326.3-linux-amd64.sif
ENV: SSH_ASKPASS=/usr/bin/ksshaskpass
ENV: SSH_AUTH_SOCK=/run/user/1000/gcr/ssh
ENV: SSL_CERT_FILE=/opt/muxi-tools/share/certs/ca-certificates.crt
ENV: SYSTEMD_EXEC_PID=4327
ENV: TERM=xterm-256color
ENV: USER=scot
ENV: USERNAME=scot
ENV: USER_PATH=/home/scot/.local/share/pnpm:/home/scot/.nvm/versions/node/v22.14.0/bin:/home/scot/miniforge3/bin:/home/scot/miniforge3/condabin:/home/scot/bin:/home/scot/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/home/scot/.lmstudio/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
ENV: VTE_VERSION=8203
ENV: WAYLAND_DISPLAY=wayland-0
ENV: XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.A555M3
ENV: XDG_CURRENT_DESKTOP=GNOME
ENV: XDG_DATA_DIRS=/home/scot/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/
ENV: XDG_MENU_PREFIX=gnome-
ENV: XDG_RUNTIME_DIR=/run/user/1000
ENV: XDG_SESSION_CLASS=user
ENV: XDG_SESSION_DESKTOP=gnome
ENV: XDG_SESSION_TYPE=wayland
ENV: XML_CATALOG_FILES=file:///home/scot/miniforge3/etc/xml/catalog file:///etc/xml/catalog
ENV: XMODIFIERS=@im=ibus
ENV: ZSH=/home/scot/.oh-my-zsh
ENV: _=/home/scot/.local/bin/muxi-server
ENV: _CE_CONDA=
ENV: _CE_M=
ENV: _P9K_SSH_TTY=/dev/pts/15
ENV: _P9K_TTY=/dev/pts/15
ENV: _bind_host=127.0.0.1
ENV: _port=8002
from fastmcp import FastMCP
mcp = FastMCP("My MCP Server")
@mcp.tool
async def greet(name: str) -> str:
""" Greet the user by name. """
return f"Hellos, {name}!"
@mcp.tool()
async def get_users() -> str:
""" Get a list of Techo Corp users. """
print("Looking up users...")
return "Cindy Rella"
@mcp.tool
async def add_numbers(a: int, b: int) -> int:
"""Add two numbers together."""
return a + b
@mcp.tool(description="Get the current weather for a city.")
async def get_weather(city: str) -> str:
"""Get the current weather for a city."""
# This would normally call a weather API
return f"The weather in {city} is sunny and 72°F"
# Run the server
if __name__ == "__main__":
#mcp.run(transport="streamable-http", stateless_http=True)
mcp.run(transport="streamable-http")
When running a formation that has a MCP server and type is HTTP the runtime hits 100% and stays there even after letting it run 10 minutes. Running with type: command work as expected.
Command that starts 100% cpu
Output from top
formation.afs
muxi cli version
muxi server version
muxi runtime version
9:28AM INF Resolved 'latest' to actual version version=0.20260326.3
Output of Proc
FastMCP code