OrbitMCP

OrbitMCP

A lightweight, air-gapped desktop cockpit connecting local LLMs (Llama 3.2) to standard MCP tools with deterministic hardware safety, acting as an edge-native MCP control plane and autonomous tool dispatcher.

Category
Visit Server

README

<div align="center">

<img src="./orbitmcp-cover.png" alt="OrbitMCP Cover Banner" width="100%" style="border-radius: 12px; margin-bottom: 20px;" />

OrbitMCP

Edge-Native Model Context Protocol (MCP) Control Plane & Autonomous Tool Dispatcher

A lightweight, air-gapped desktop cockpit connecting local LLMs (Llama 3.2) to standard MCP tools with deterministic hardware safety.

Tauri v2 React 18 FastMCP Ollama Tailwind CSS License: MIT

</div>


The Core Problem

Standard Large Language Models—both proprietary cloud APIs and local weights—are isolated text predictors. They are fundamentally blind to the physical machine they execute on:

  1. No Native Hardware Awareness: An LLM cannot independently check remaining VRAM, inspect project repositories, run shell routines, or read SQLite databases without external glue code.
  2. Cloud Privacy & Egress Risk: Transmitting proprietary codebase structures, internal documents, and host machine telemetry across cloud APIs introduces recurring token costs and data compliance vulnerabilities.
  3. Electron Bloat: Existing agent GUIs frequently rely on Electron, consuming 800MB–1.5GB of RAM before an inference model even loads into memory.

What OrbitMCP Solves

OrbitMCP converts your local workstation into a zero-latency, air-gapped agent environment.

Built with a native Rust (Tauri v2) shell and a Python FastMCP sidecar, OrbitMCP operates at under 100MB RAM overhead, reserving your system resources entirely for model weights and fast local inference.


┌────────────────────────────────────────────────────────────────────────┐
│                        User Prompt / Directive                         │
└───────────────────────────────────┬────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────┐
│               Local Quantized LLM (Ollama / Llama-3.2)                 │
│  - Analyzes intent & generates standard JSON tool execution schema     │
└───────────────────────────────────┬────────────────────────────────────┘
│ (MCP Tool Call)
▼
┌────────────────────────────────────────────────────────────────────────┐
│               OrbitMCP FastMCP Gateway (Local :8765)                   │
│  - Validates sandbox path boundaries & executes kernel functions       │
└───────────────────┬────────────────────────────────┬───────────────────┘
│                                │
▼                                ▼
┌─────────────────────────┐      ┌─────────────────────────┐
│   system_telemetry()    │      │      list_files()       │
│  (RAM / CPU / Headroom) │      │  (Safe Workspace Tree)  │
└────────────┬────────────┘      └────────────┬────────────┘
│                                │
└────────────────┬───────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────┐
│           React 18 Control Plane (Geist UI + Claude Thinking)          │
│  - Real-time hardware stream, collapsible trace & typewriter output    │
└────────────────────────────────────────────────────────────────────────┘


Key Features

1. Autonomous MCP Tool Execution Loop

OrbitMCP translates user queries into OpenAI-compatible tool specifications for local Ollama models. When a query requires OS context, the model interrupts standard generation, dispatches structured tool arguments to the FastMCP gateway, executes the Python script locally, and summarizes the final payload.

2. Live Kernel Telemetry Polling

Direct hardware polling via psutil monitors CPU core utilization, resident RAM consumption, and available memory headroom every 3 seconds to prevent Out-Of-Memory (OOM) lockups during heavy inference.

3. Claude-Style Thinking Process Block

Includes an oscillating 4-bar waveform animation and live elapsed timer (Thought for 11.4s). Thinking blocks can be collapsed into an internal monologue scratchpad detailing schema resolution and safety boundary checks.

4. Four Curated Developer Themes

Includes four high-contrast developer color palettes switchable at runtime with instant token re-rendering:

  • Obsidian Amber (Dark Charcoal + Warm Amber)
  • Tokyo Violet (Cyber Synth Indigo + Purple)
  • Matrix Emerald (Terminal Green + Jet Black)
  • Linear Cobalt (Deep Space Slate + Sky Blue)

5. Dynamic Model Discovery & Parameter Tuning

  • Model Dropdown: Auto-queries the local Ollama daemon on launch (/api/tags) to populate installed weights (llama3.2:3b, qwen2.5-coder, mistral, etc.).
  • Sampling Temperature: Integrated slider (0.0 to 1.0) to dynamically adjust generation determinism.
  • Tool Gating: Independent toggles on each tool card to enable or disable specific MCP functions from the model's schema dynamically.

Tech Stack

Layer Technology Purpose
Desktop Container Tauri v2 (Rust) Native Windows window lifecycle, minimal RAM footprint, zero-overhead IPC
Frontend UI React 18, TypeScript, Vite Reactive dashboard state, live metrics polling, hotkeys
Styling & Icons Tailwind CSS, Lucide Icons Responsive slate theme, micro-transitions, developer glyphs
Typography Geist Sans & JetBrains Mono Claude-inspired developer readability and monospace traces
Tool Engine FastMCP, FastAPI, Uvicorn Standardized Model Context Protocol implementation
Local Inference Ollama (Llama 3.2 3B) Fully offline, privacy-first local language model execution

Project Structure

orbit-mcp/
├── backend/                  # FastMCP Python engine
│   ├── tools/
│   │   ├── telemetry.py      # Kernel hardware metrics polling
│   │   └── fs.py             # Sandboxed workspace filesystem inspector
│   ├── server.py             # FastAPI gateway & Ollama tool loop dispatcher
│   └── requirements.txt      # Python dependencies
├── src/                      # React frontend source
│   ├── App.tsx               # Main OrbitMCP Control Plane component
│   ├── main.tsx              # React DOM entry point
│   ├── index.css             # Tailwind base styles & Claude wave keyframes
│   └── vite-env.d.ts         # Vite client TypeScript definitions
├── src-tauri/                # Native Rust desktop application
│   ├── capabilities/         # Tauri v2 security policies
│   ├── icons/                # Multi-platform application icon sets
│   ├── src/main.rs           # Rust application entry point
│   ├── Cargo.toml            # Rust dependencies & metadata
│   └── tauri.conf.json       # Window geometry, title, and build targets
├── orbitmcp-cover.png        # Repository hero cover banner
├── orbit-icon.png            # Master 1024x1024 application icon
├── package.json              # Node dependencies and scripts
├── tailwind.config.js        # Color tokens & typography configuration
└── tsconfig.json             # TypeScript compiler rules (TS5 bundler mode)


Getting Started

Prerequisites

Ensure the following runtimes are installed on your host system:


Installation & Setup

1. Clone the Repository

git clone [https://github.com/Velocity07/OrbitMCP.git](https://github.com/Velocity07/OrbitMCP.git)
cd OrbitMCP

2. Configure the Python FastMCP Backend

Create and activate a virtual environment, then install the dependencies:

# Windows PowerShell
python -m venv .venv
.\.venv\Scripts\Activate.ps1

# Install backend requirements
pip install -r backend/requirements.txt

3. Install Frontend Dependencies

npm install

4. Pull the Local Inference Model

Ensure Ollama is running, then pull the default lightweight tool-calling model:

ollama pull llama3.2:3b


Running OrbitMCP

Step A: Start the FastMCP Backend Server

In your first terminal (with .venv activated):

python backend/server.py

The gateway will initialize on http://127.0.0.1:8765.

Step B: Launch the Native Desktop Window

In your second terminal:

npx tauri dev

OrbitMCP will compile the native Rust binary, launch the desktop window, and automatically establish a live IPC bridge with the FastMCP backend.


Writing Custom FastMCP Tools

OrbitMCP is designed to be easily extensible. To register a new tool with the agent loop:

  1. Define your tool function in backend/tools/ using FastMCP:
# backend/tools/network.py
import socket
from typing import Dict, Any

def test_port(host: str, port: int) -> Dict[str, Any]:
    """Check if a specific host and port is accepting connections."""
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(2.0)
    try:
        s.connect((host, port))
        s.close()
        return {"host": host, "port": port, "open": True}
    except Exception as e:
        return {"host": host, "port": port, "open": False, "error": str(e)}

  1. Register the tool decorator and schema in backend/server.py:
from tools.network import test_port

@mcp.tool()
def check_port(host: str, port: int) -> Dict[str, Any]:
    """Test connection status for a remote host and port."""
    return test_port(host, port)

  1. Restart server.py. The tool will instantly populate in the Registered Tools panel and be available for autonomous invocation.

Roadmap

  • [x] FastMCP Python gateway integration
  • [x] Real-time host hardware telemetry polling (CPU / RAM)
  • [x] Llama 3.2 autonomous tool execution loop
  • [x] Claude-style thinking accordion and elapsed timer
  • [x] Multi-theme runtime switcher (Obsidian, Tokyo, Emerald, Cobalt)
  • [x] Native Tauri v2 Windows shell integration
  • [ ] Server-Sent Events (SSE) token-by-token streaming
  • [ ] Automated PyInstaller sidecar binary packaging
  • [ ] Multi-turn conversational memory scratchpad

License

Distributed under the MIT License. See LICENSE for more information.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured