Skip to main content
Glama

๐ŸŽฏ The Problem

Deploying ROS 2 on Arm is a guessing game. Developers don't know:

  • Which ROS 2 variant fits their board (ros-desktop, ros-base, micro-ros, zenoh-pico)

  • Optimal DDS configuration for their specific CPU cache topology and RAM

  • Compiler flags that unlock Arm ISA capabilities (NEON, LSE, SVE)

  • Kernel/sysctl tuning for real-time robotic workloads

Result: Suboptimal performance, wasted resources, failed deployments.


Related MCP server: ROS2 MCP Server

๐Ÿ’ก The Solution: Argus

Argus is an Arm-native, MCP-enabled diagnostic and optimization platform for ROS 2 that bridges the gap between Arm hardware capabilities and ROS 2 deployment decisions.

Name origin: Argus Panoptes โ€” the all-seeing giant of Greek mythology with 100 eyes. Argus sees every detail of your Arm hardware.


โœจ Features

๐Ÿ” Hardware Profiling

  • Cross-platform: macOS (sysctl), Linux (/proc, /sys, vcgencmd)

  • Deep detection: CPU topology (P/E cores), cache hierarchy, ISA features (NEON, SVE, SVE2, LSE), RAM, thermal zones

  • Fingerprinting: SHA-256 hardware identity for reproducibility

  • Compiler target mapping: -mcpu=cortex-a72, apple-m4, neoverse-v2, etc.

๐Ÿ“Š ROS 2 Tier Assessment

  • 5-tier scoring (0โ€“100): ros-desktop โ†’ ros-base-full โ†’ ros-base โ†’ micro-ros โ†’ zenoh-pico

  • Weighted breakdown: RAM (30), Compute (20), ISA (15), Cache (10), Thermal (10), RT (15)

  • Recommendations: RMW (CycloneDDS/FastDDS/Zenoh), DDS profile, warnings

โš™๏ธ Config Generation (7 Artifacts)

Artifact

Purpose

cyclonedds.xml

FragmentSize aligned to cache line, watermarks scaled to RAM

fastdds.xml

SHM+UDP transport, buffer sizes scaled to RAM

zenoh_advice.yaml

When to switch from DDS to Zenoh

sysctl.conf

Network buffers, VM dirty ratios, scheduler tuning

build_flags.json

-mcpu, -march, -O3 -flto=auto, vectorization

install_ros2.sh

OS-specific ROS 2 install + RMW setup

metadata.yaml

Fingerprint, tier, score, artifact manifest

๐Ÿ›ก๏ธ Safety & Governance

  • Blast-radius gatekeeper: NONE/LOW โ†’ auto-approve, MEDIUM โ†’ prompt, HIGH โ†’ warn + prompt, CRITICAL โ†’ deny

  • Blocklist: rm -rf /, sudo, dd, mkfs, pipe-to-shell, fork bombs

  • Audit trail: Every permission decision logged with reason


๐Ÿค– MCP Integration โ€” AI-Native by Design

Argus exposes all capabilities via MCP (Model Context Protocol) โ€” making any AI agent (OpenCode, Claude Code, Gemini CLI, Cursor) hardware-aware on Arm.

// ~/.opencode/mcp.json  (or claude_desktop_config.json)
{
  "mcpServers": {
    "argus": {
      "command": "argus",
      "args": ["mcp", "serve", "--transport", "stdio"]
    },
    "argus-pi4": {
      "command": "ssh",
      "args": ["pi@raspberrypi.local", "argus", "mcp", "serve", "--transport", "stdio"]
    }
  }
}

๐Ÿงฐ 14 MCP Tools

Category

Tools

Discovery

detect_arm_soc, detect_os

Profiling

stress_cpu, stress_memory, measure_thermal, measure_ram

Assessment

assess_hardware

Generation

generate_cyclonedds_config, generate_fastdds_config, generate_zenoh_advice, generate_sysctl_config, generate_build_flags, generate_install_script, generate_all_configs

Project

project_list_files, project_read_file, project_write_file, project_git_status, project_git_diff, project_pip_install, project_pytest, project_run_command

๐Ÿ“š 10 MCP Resources

URI

Content

argus://system/info

Full hardware profile

argus://system/cpu

CPU topology, cache, ISA

argus://system/memory

RAM usage, available

argus://sensors/temperature

Live thermal readings

argus://stress/latest

Latest stress test results

argus://configs/cyclonedds

Generated CycloneDDS XML

argus://configs/fastdds

Generated FastDDS XML

argus://configs/sysctl

Generated sysctl.conf

argus://scorecard/latest

Latest assessment scorecard

argus://reports/latest

Latest diagnostic report

๐Ÿ’ฌ 4 MCP Prompts

Prompt

Description

tune-ros2

Full ROS 2 optimization workflow

profile-arm

Profile Arm SoC and explain results

optimize-dds

Analyze hardware + generate optimal DDS config

debug-thermal

Run thermal stress + analyze throttling risk


๐Ÿ–ฅ๏ธ Hardware Support

Platform

SoC

CPU

RAM

Cache Line

Tier

Configs

Raspberry Pi 4

BCM2711

4ร— Cortex-A72

2/4/8 GB

64 B

micro-ros / ros-base

โœ… 7 files

Raspberry Pi 5

BCM2712

4ร— Cortex-A76

4/8 GB

64 B

ros-base

โœ… 7 files

Apple M1

M1

4P+4E

8/16 GB

128 B

ros-base-full

โœ… 7 files

Apple M2

M2

4P+4E

8/24 GB

128 B

ros-base-full

โœ… 7 files

Apple M3

M3

4P+4E

8/24 GB

128 B

ros-base-full

โœ… 7 files

Apple M4

M4

4P+6E

24/48 GB

128 B

ros-desktop

โœ… 7 files

Jetson Orin

T234

12ร— Cortex-A78AE

8/32 GB

64 B

ros-desktop

๐Ÿ”œ

Generic Arm

Any

Any

Any

64 B

Auto

๐Ÿ”œ

Pre-generated configs in configs/ for instant deployment โ€” no profiling needed on known boards.


๐Ÿš€ Quick Start

Installation

# From PyPI (when published)
pip install argus

# Or from source (hackathon)
git clone https://github.com/roniejosephv-star/argus.git
cd argus
pip install -e .

Basic Usage

# Full hardware profile
argus diagnose --detailed

# Stress test (CPU + memory + thermal)
argus stress --duration 30

# Full ROS 2 assessment + config generation
argus assess --output-dir ./my-robot-configs

# Start MCP server for AI agents
argus mcp serve --transport stdio

Example Output

              Hardware Profile: Raspberry Pi 4 Model B Rev 1.5             
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Property                 โ”ƒ Value                                        โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ OS / Arch                โ”‚ Linux / aarch64                              โ”‚
โ”‚ Model                    โ”‚ BCM2711 (Pi 4)                               โ”‚
โ”‚ Cores                    โ”‚ 4 (P:4 E:0)                                  โ”‚
โ”‚ RAM                      โ”‚ 1.8 GB total, 1.4 GB available               โ”‚
โ”‚ Cache Line               โ”‚ 64 bytes                                     โ”‚
โ”‚ NEON / LSE / SVE         โ”‚ โœ“ / โœ— / โœ—                                  โ”‚
โ”‚ Compiler Target          โ”‚ cortex-a72                                   โ”‚
โ”‚ Fingerprint              โ”‚ a1b2c3d4e5f6...                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

     ROS 2 Assessment Scorecard       
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Metric          โ”ƒ Score            โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ Total Score     โ”‚ 33/100           โ”‚
โ”‚ Tier            โ”‚ micro-ros        โ”‚
โ”‚ Recommended RMW โ”‚ cyclonedds       โ”‚
โ”‚ DDS Profile     โ”‚ low-memory       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ—๏ธ Architecture

argus/
โ”œโ”€โ”€ cli.py                    # Click commands: diagnose, stress, assess, mcp
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ profiler.py           # Hardware detection (macOS + Linux)
โ”‚   โ”œโ”€โ”€ assess.py             # 5-tier scoring algorithm
โ”‚   โ”œโ”€โ”€ optimizer.py          # 7 config generators
โ”‚   โ”œโ”€โ”€ stresser.py           # CPU/mem/thermal stress (multiprocessing + numpy)
โ”‚   โ”œโ”€โ”€ ram_sampler.py        # Process/system RAM sampling
โ”‚   โ”œโ”€โ”€ toolbox.py            # 14-tool registry + dispatcher
โ”‚   โ””โ”€โ”€ models.py             # Pydantic models (HardwareProfile, Scorecard, etc.)
โ”œโ”€โ”€ safety/
โ”‚   โ”œโ”€โ”€ blast_radius.py       # NONE/LOW/MEDIUM/HIGH/CRITICAL
โ”‚   โ”œโ”€โ”€ blocklist.py          # Destructive command patterns
โ”‚   โ””โ”€โ”€ gatekeeper.py         # Auto/ask/deny permission flow
โ”œโ”€โ”€ mcp/
โ”‚   โ”œโ”€โ”€ server.py             # FastMCP server, 14 tools + resources + prompts
โ”‚   โ”œโ”€โ”€ resources.py          # 10 resource URIs
โ”‚   โ”œโ”€โ”€ auth.py               # Bearer token middleware (HTTP)
โ”‚   โ””โ”€โ”€ transports.py         # stdio + HTTP config
โ”œโ”€โ”€ state/
โ”‚   โ”œโ”€โ”€ report.py             # Report, Diff, Lesson models
โ”‚   โ”œโ”€โ”€ report_store.py       # Persistence + diff engine
โ”‚   โ””โ”€โ”€ knowledge.py          # Lesson extraction from diffs
โ”œโ”€โ”€ safety/                   # Blast radius + blocklist
โ”œโ”€โ”€ state/                    # Reports, diffs, lessons
โ””โ”€โ”€ cli.py                    # Click CLI

๐Ÿงช Testing

# Run all tests
pytest tests/ -v

# Run with coverage
pytest --cov=argus --cov-report=html

# Run specific module
pytest tests/test_core.py::test_pi4_cpu_part_mapping -v

Current Status: 9/9 core tests passing โœ…


๐Ÿ“ Project Structure

argus/
โ”œโ”€โ”€ .github/workflows/ci.yml          # CI/CD pipeline
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ LICENSE                           # MIT
โ”œโ”€โ”€ pyproject.toml                    # Build config (excludes configs/ from package)
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ argus/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ __main__.py
โ”‚   โ”œโ”€โ”€ cli.py
โ”‚   โ”œโ”€โ”€ core/                         # Business logic
โ”‚   โ”œโ”€โ”€ safety/                       # Blast radius + blocklist
โ”‚   โ”œโ”€โ”€ mcp/                          # FastMCP server
โ”‚   โ””โ”€โ”€ state/                        # Reports + knowledge
โ”œโ”€โ”€ configs/                          # Pre-generated configs (excluded from package)
โ”‚   โ”œโ”€โ”€ raspberry-pi-4/               # 2GB Pi 4 โ€” micro-ros tier
โ”‚   โ”œโ”€โ”€ raspberry-pi-5/               # 8GB Pi 5 โ€” ros-base tier
โ”‚   โ”œโ”€โ”€ apple-m4/                     # 24GB M4 โ€” ros-desktop tier
โ”‚   โ””โ”€โ”€ raspberry-pi-5/               # Alias for bcm2712
โ”œโ”€โ”€ docs/                             # 8 documentation files
โ”œโ”€โ”€ scripts/
โ”‚   โ””โ”€โ”€ pi4_profile_collector.sh      # Auto-profile Pi via SSH
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ test_core.py                  # 9 tests
โ”‚   โ””โ”€โ”€ fixtures/                     # Pi 4, Pi 5, Jetson, Apple fixtures
โ”œโ”€โ”€ scripts/
โ””โ”€โ”€ pyproject.toml

๐Ÿ“š Documentation

Document

Description

docs/ARCHITECTURE.md

System architecture diagrams

docs/API_REFERENCE.md

Full CLI + MCP tool reference

docs/DEPLOYMENT.md

Pi deployment, ROS 2 install, systemd

docs/SECURITY.md

Blast radius, blocklist, threat model

docs/TEST_PLAN.md

Test strategy, fixtures, CI

docs/USER_MANUAL.md

End-user guide

docs/UX_DESIGN.md

CLI/UX design decisions

docs/DATA_SCHEMA.md

Pydantic model schemas

Planning & Analysis (for judges)

Document

Purpose

PRD.md

Product Requirements Document

PRS.md

Project Requirements Specification

IMPLEMENTATION_SPEC.md

Consolidated technical spec

PHASE_BUILD_PLAN.md

35-day build plan

EDGE_CASE_ANALYSIS.md

47 edge cases catalogued

DECISION_SUMMARY.md

7 key decisions (D1โ€“D7)

DECISION_GUIDE.md

Explanations for each decision

SELF_HOSTED_DEV_LOOP_PLAN.md

Full self-hosted dev loop architecture

PI4_ROS2_ANALYSIS_PLAN.md

Pi 4 specific analysis


๐Ÿค Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Development Setup

git clone https://github.com/roniejosephv-star/argus.git
cd argus
python -m venv .venv && source .venv/bin/activate
pip install -e .[dev]
pre-commit install

Code Quality

ruff check .           # Linting
ruff format .          # Formatting
mypy argus/            # Type checking
pytest                 # Tests

๐Ÿ† Hackathon Highlights

Category

Achievement

Innovation

First Arm-native ROS 2 optimizer with MCP integration

Completeness

Full stack: profiler โ†’ assessor โ†’ generator โ†’ MCP server

Hardware Coverage

4 platforms pre-configured, extensible to any Arm

AI-Native

14 MCP tools + 10 resources + 4 prompts for AI agents

Safety-First

Blast-radius gatekeeper + destructive command blocklist

Self-Hosted Dev

OpenCode on Mac โ†’ SSH โ†’ Pi โ†’ Argus builds/tests itself

Production Ready

Pre-generated configs for Pi 4, Pi 5, Apple M4


๐Ÿ“œ License

MIT License โ€” see LICENSE for details.


๐Ÿ™ Acknowledgments

  • FastMCP โ€” Excellent MCP server framework

  • Pydantic โ€” Data validation & serialization

  • Click โ€” Beautiful CLI interfaces

  • Rich โ€” Beautiful terminal output

  • NumPy โ€” High-performance stress testing

  • psutil โ€” Cross-platform system profiling

  • ROS 2 Community โ€” Inspiration & documentation


A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/roniejosephv-star/argus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server