Divlens

io.github.LohithryPublished by GitHub account Lohithryv0.1.0Updated Oct 24, 2026

Real-time system diagnostics for AI agents — CPU, RAM, disk, network, hardware health. 17 tools.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

A local MCP server that gives an AI assistant live read-only diagnostics of the host machine: CPU, RAM, disk, network, hardware health, processes, and logs.

What you can do
DivLens exposes 17 diagnostic tools over stdio, covering live performance metrics (CPU, RAM, swap, uptime), process lists, storage health and file-type inventories, largest and stale files, IOPS and SMART status, hardware specs and battery, network throughput and configuration, system identity, installed developer runtimes, kernel drivers, directory scans, recent system logs, and an optional semantic recall of past diagnoses. It collects and returns raw system data only; it does not run LLM inference.
When to use it
Useful when you want an assistant to answer questions about the machine it runs on, such as why a system is slow, whether a drive is healthy, what is consuming disk space, or what runtimes and drivers are installed, without switching to separate monitoring tools.
Requirements
Runs as a local process on the user's machine (desktop only, no web executable). No API keys, accounts, or environment variables are declared. The README offers a one-command installer that downloads a pre-built binary, or building from source with Rust 1.82+. Optional semantic memory requires building with the vector-memory feature.
Before you install
The tools read system-level information, including process lists, file inventories, directory contents, network configuration, machine fingerprint, and system logs, and pass it to the connected AI client. The README states all data stays local and nothing is sent anywhere, but the assistant client itself may transmit tool output. The documented install method pipes a remote script into a shell, which executes third-party code; review it or build from source instead.

Installation

In SourceWeft

  1. Open Divlens in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[DivLens Logo]

DivLens MCP

Real-time system intelligence for AI agents.
Give Claude, Cursor, and Windsurf eyes into your machine — CPU, RAM, disk, network, processes, hardware health, and more.

[License: Apache 2.0] [Built with Rust] [MCP Compatible] [Platform] [Version]

[Claude] [Cursor] [Windsurf] [Zero Cloud]


What is DivLens MCP?

DivLens MCP is a high-performance Model Context Protocol (MCP) server written in Rust.

It bridges the gap between AI assistants and your machine — giving Claude, Cursor, Windsurf, and any other MCP-compatible agent live, structured access to hardware sensors, storage metrics, network diagnostics, process trees, developer runtimes, system logs, and more.

No cloud. No API keys. No configuration required. Just build and run.

"Why is my Mac slow?" → Claude calls get_live_metrics() → Instant answer."Is my SSD healthy?"  → Claude calls get_hardware_diagnostics() → SMART data returned."What's eating disk?"  → Claude calls get_advanced_storage_stats() → Largest files listed.

✦ 17 Diagnostic Tools

CategoryToolWhat it returns
⚡ Performanceget_live_metricsCPU %, RAM, swap, blocked processes, uptime
⚡ Performanceget_process_listTop processes by CPU / RAM with PID
💾 Storageget_storage_healthFree/used/total per mount point
💾 Storagescan_storage_inventoryFull file-type inventory with sizes
💾 Storageget_file_type_summaryFile counts and sizes by extension
💾 Storageget_specific_file_typeAll files matching a specific extension
💾 Storageget_advanced_storage_statsTop 50 largest files + stale data analysis
💾 Storageget_storage_diagnosticsIOPS, read/write latency, SMART status
🖥️ Hardwareget_hardware_diagnosticsCPU/GPU specs, battery %, temps, SMART
🌐 Networkget_network_diagnosticsThroughput, active connections, signal
🌐 Networkget_network_configIP, DNS, interface config per adapter
🔬 Identityget_system_dnaOS, hostname, uptime, machine fingerprint
🛠️ Dev Stackget_dev_stackNode, Python, Rust, Go, Java runtimes + packages
🛠️ Dev Stackget_driversKernel modules and device drivers
📂 Utilityscan_directoryRecursive directory listing with sizes
🧠 Memoryrecall_memorySemantic search over past AI diagnoses
📋 Logsget_system_logsRecent OS/kernel errors clustered by pattern

🚀 Install — One Command, Any Platform

No Rust required. No compilation. No manual config editing. The installer downloads a pre-built binary and automatically configures your AI clients.

macOS & Linux

bash
curl -fsSL https://raw.githubusercontent.com/Lohithry/divlens-mcp/main/install.sh | bash

Windows (PowerShell — no admin required)

powershell
irm https://raw.githubusercontent.com/Lohithry/divlens-mcp/main/install.ps1 | iex

The installer will:

  • ✅ Detect your OS and chip (Apple Silicon / Intel / Linux / Windows)
  • ✅ Download the correct pre-built binary from GitHub Releases
  • ✅ Verify the SHA-256 checksum
  • ✅ Install to your PATH with no admin rights needed
  • ✅ Auto-configure Claude Desktop, Cursor, Windsurf, and Antigravity
  • ✅ Test the server works before finishing

Then just restart your AI client and ask "What's using my CPU right now?"


Build from Source (Advanced)

Requires Rust 1.82+.

bash
git clone https://github.com/Lohithry/divlens-mcp.gitcd divlens-mcp/apps/corecargo build --release./target/release/divlens-core --mcp

Connect to Your AI

Claude Desktop

Config file: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows)

jsonc
{  "mcpServers": {    "divlens": {      "command": "/usr/local/bin/divlens-core",      "args": ["--mcp"]    }  }}

Quit and relaunch Claude Desktop. A 🔌 plug icon confirms the connection.

Cursor

Config file: ~/.cursor/mcp.json

jsonc
{  "mcpServers": {    "divlens": {      "command": "/usr/local/bin/divlens-core",      "args": ["--mcp"]    }  }}

Cmd+Shift+P → Reload Window

Windsurf

Config file: ~/.codeium/windsurf/mcp_config.json

jsonc
{  "mcpServers": {    "divlens": {      "command": "/usr/local/bin/divlens-core",      "args": ["--mcp"]    }  }}

For complete setup details, see DEPLOYMENT.md.


How It Works

  ┌─────────────────────────────────────────┐  │   AI Client  (Claude / Cursor / etc.)   │  │         LLM reasoning lives here        │  └──────────────────┬──────────────────────┘                     │  JSON-RPC 2.0  (stdio)                     ▼  ┌─────────────────────────────────────────┐  │          divlens-core  (Rust)           │  │                                         │  │  ┌───────────────┐  ┌───────────────┐   │  │  │  MCP Layer    │  │  17 Tools     │   │  │  │  (JSON-RPC)   │  │  (Rust + OS)  │   │  │  └───────────────┘  └───────────────┘   │  │  ┌───────────────┐  ┌───────────────┐   │  │  │  SQLite Cache │  │  Native APIs  │   │  │  │  (sysinfo/OS) │  │  (IOKit/WMI)  │   │  │  └───────────────┘  └───────────────┘   │  └─────────────────────────────────────────┘
      Zero cloud.  Zero API keys.  100% local.

Transport: Every MCP message is a newline-delimited JSON-RPC 2.0 object over stdio.
AI logic: DivLens never runs LLM inference — it only collects and returns raw system data.
Privacy: All data stays on your machine. Nothing is sent anywhere.


Project Structure

divlens-mcp/└── apps/    └── core/                      # Rust MCP engine        ├── src/        │   ├── tools/             # 17 tool implementations        │   ├── mcp/               # JSON-RPC 2.0 protocol handler        │   ├── mcp_server.rs      # stdio transport loop        │   ├── collectors/        # Native OS data collectors        │   │   ├── volatile/      # CPU, RAM, network (live)        │   │   ├── persistent/    # Storage, hardware (cached)        │   │   └── ondemand/      # Drivers, logs, packages        │   ├── modules/           # Core business logic        │   ├── db/                # SQLite caching layer        │   ├── models/            # Shared data types        │   └── utils/             # Shell env rehydration        ├── Cargo.toml        └── env.example

Optional: Semantic Memory

Enable the vector-memory feature to give recall_memory true semantic search using a local ONNX embedding model (no cloud, no API key):

bash
cargo build --release --features vector-memory

When enabled, DivLens creates a local LanceDB vector store and uses fastembed to embed and recall past diagnoses semantically.

When disabled (default), recall_memory returns an empty list — no functionality is broken.


Verify the Server

Test the MCP wire protocol without a client:

bash
# Initialize handshakeecho '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"test","version":"0.1"}}}' \  | divlens-core --mcp
# Call a tool directlyecho '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_live_metrics","arguments":{}}}' \  | divlens-core --mcp

License

Licensed under the Apache License, Version 2.0.
See LICENSE for the full text.

Copyright © 2024 DivLens Contributors.


[DivLens]
Built with ❤️ in Rust · Zero cloud · AI-native diagnostics

Source: README.md at commit ed62ea4

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.