MARS is an open multi-agent runtime where humans and heterogeneous AI agents share a live message bus, discover each other's skills, and collaborate — without central orchestration or hard-wired pipelines.
Every participant — human, LLM agent, or service agent — connects via the same JSON-over-TCP protocol, registers its skills, and is addressable by any other participant. There is no master controller.
- Rooms — humans and agents join named rooms; messages fan out to every member.
- Natural language routing — agents read the room and respond when addressed, not because a router dispatched a function call.
- Service marketplace — service agents (math, file I/O, profiler, …) advertise skills. LLM agents discover and call them as MCP tool calls.
- A2A federation — MARS nodes connect to each other using the Agent2Agent protocol; remote agents appear as local participants.
- Research grounding — the architecture traces to LARS (Nopper, 2000) and earlier work on mobile agents and federated discovery. See References below.
Core
- LLM agents — Anthropic Claude, GitHub Copilot, Ollama (local), offline mock
- Rooms, artifacts, thinking spinner, CLI commands (see USER.md)
- Three-pane TUI (
mars/python -m mars.client.cli.main)
Service marketplace — auto-spawned at server start via MCP stdio:
| Agent | Skills |
|---|---|
clock |
time, location, datetime |
profiler |
profiler, cpu, memory |
status |
status, introspection, runtime |
sympy |
math, solve, algebra, calculus, … |
scipy |
scipy, numerical, optimize, linalg, stats, ode, … |
file |
file, read, write, storage, filesystem |
url |
url, fetch, http, web |
ollama-models |
models, list-models |
launcher |
spawn_agent, launch |
git |
git, diff, status, log, commit, blame |
memory |
remember, recall, forget |
session |
save_session, load_session, list_sessions |
filesystem (needs Node.js) |
read_file, write_file, edit_file, list_directory, … |
shell (on-demand) |
shell, run, exec, bash |
scheduler (on-demand) |
schedule_after, schedule_every |
github (on-demand) |
search_repositories, create_issue, list_pull_requests, … |
Any third-party MCP stdio server plugs in via a one-line agents.ini entry.
Roadmap (from the papers, not yet implemented): multiline input, LSP integration, scheduled prompt dispatch, domain scopes, agent FSM engine, mobile agent beaming.
pip install -e ".[dev]"
# Offline — no setup needed
python -m mars.client.cli.main --provider mock
# Local Ollama — free, no API key
python -m mars.client.cli.main --provider ollama
# GitHub Copilot — gh auth login once
python -m mars.client.cli.main --provider copilot# Server + two providers side-by-side
python -m mars.runtime.server.main # Terminal 1
python -m mars.client.cli.main --remote localhost:7432 # Terminal 2
# /spawn ollama
# /spawn copilot gpt-4o-miniSee SETUP.md for credentials, providers, and server mode.
See USER.md for the full command cheat sheet.
Ports: TCP 7432 (agents + CLI), HTTP 7433 (REST), WebSocket 7434 (browser UI).
| File | Contents |
|---|---|
| SETUP.md | Install, credentials, run |
| USER.md | CLI commands and walkthrough |
| ARCHITECTURE.md | Runtime stack, MCP, A2A, providers |
| AGENTS.md | Service-agent catalogue and wire protocol |
| BUILD.md | Tests, packaging, Git LFS |
| CONTRIBUTING.md | Layout, conventions, how to contribute |
| Standard | Description |
|---|---|
| Model Context Protocol (MCP) | Agent ↔ tool communication via JSON-RPC 2.0 over stdio. MARS service agents implement MCP. |
| Agent2Agent Protocol (A2A) | Agent ↔ agent communication via HTTP/JSON-RPC 2.0. MARS uses A2A to connect MARS nodes. |
The architecture is grounded in work by the author predating modern LLMs. Features are added as they become technically feasible, not before.
| Reference | Relevance |
|---|---|
| Nopper, N. (1997). Intelligent Mobile Agents in the Intra/Internet. Diploma thesis, HFU. | Mobile agent lifecycle and platform-independence — conceptual predecessor of MARS |
| Nopper, N. (2000). LARS — Living Agents Runtime System. AgentLink. | Platform-independence, lifecycle, clustering, XML messaging |
| Müller, Eymann, Nopper et al. (2004). EMIKA. | Sensor-to-agent middleware, self-organising coordination |
| Lohmann, Nopper, Henning (1998). Agent-Based Counterparty Matching. | Specialist agent discovery over a shared runtime |
| Nopper, Kammerer (2000). Location-Aware Agent Retrieval. European Patent. | Federated, context-threaded agent retrieval |
| Müller, Nopper et al. (~2003). Patient Technology. | Governance framework for self-organising systems |