Skip to content

McNopper/MARS

Repository files navigation

🌌 MARS — Multi-Agent Runtime System

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.


What is MARS?

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.

What works today

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.


Quick start

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-mini

See 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).


Docs

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

📚 References

Standards

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.

Research papers

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

About

Multi-Agent Runtime System

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors