Skip to content

RafiulPaceProjects/go_syschecker

Repository files navigation

SysChecker

SysChecker is an AI-powered system monitoring platform that leverages the Model Context Protocol (MCP) to provide intelligent insights into system health, performance, and historical trends.

License Go Version MCP Gemini

Features

  • AI-Powered Q&A: Ask natural language questions like "Why is my server slow?" or "Show me memory trends" using GraphRAG.
  • Real-Time Monitoring: Instant access to CPU, Memory, Disk, and Network metrics via MCP tools.
  • Historical Analysis: Query time-series data stored in DuckDB for deep performance analysis.
  • Graph-Based Insights: Relationships between system components and alerts are stored in Neo4j for complex correlation.
  • MCP Integration: Seamlessly connects with Claude Desktop or any MCP-compatible client.
  • Interactive Chatbot: A dedicated terminal-based chatbot for direct interaction with the system.

Architecture

SysChecker consists of:

  1. MCP Server: The core engine exposing tools for metrics, graph queries, and AI analysis.
  2. GraphRAG Engine: Uses Google Gemini to synthesize answers from system data.
  3. Storage Layer: Neo4j for graph relationships and DuckDB for high-performance time-series data.
  4. Sensors: Low-level collectors for real-time system metrics.

Prerequisites

  • Go 1.25+
  • Docker (for Neo4j)
  • Google Gemini API Key: Get one here

Quick Start

1. Setup Environment

Create a .env file in ui/Testing/env/ (or set environment variables):

GEMINI_API_KEY=your_api_key_here
NEO4J_PASSWORD=password

2. Start Neo4j

docker run -d --name syschecker-neo4j \
    -p 7474:7474 -p 7687:7687 \
    -e NEO4J_AUTH=neo4j/password \
    neo4j:latest

3. Build and Run

You can use the provided scripts for a quick setup:

Run the Chatbot

./ui/Testing/run.sh

Run MCP Locally (Server + Client)

./scripts/run-mcp-local.sh

Usage

Chatbot Commands

Once the chatbot is running, you can ask:

  • "What is the current CPU usage?"
  • "Are there any disk space issues?"
  • "Show me the memory trend for the last hour."
  • "Why did the system flag a high load earlier?"

Claude Desktop Integration

To use SysChecker with Claude Desktop, add the configuration from configs/claude_desktop_config.json to your Claude configuration file.

Documentation

Detailed documentation is available in the docs/ directory:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors