systerd-lite
An AI-Native OS Core that enables LLMs to autonomously monitor, control, and optimize Linux systems with 200+ system control tools covering process management, security, containers, and self-editing capabilities.
README
systerd-lite
<div align="center">
AI-Native OS Core for Linux Systems
LLMがシステムを自律的に監視・制御・最適化するためのMCPサーバー
</div>
🎯 概要
systerd-lite は、LLM(大規模言語モデル)がLinuxシステムを「自分の体」として操作できるようにするMCPサーバーです。
主な特徴
- 🔧 200+ のシステム制御ツール: プロセス管理、ネットワーク、ストレージ、セキュリティなど
- 🤖 LLM自己編集機能: LLMが自身のコードや環境を読み書き・修正可能
- 📡 汎用MCP対応: HTTP/SSE/stdio の3トランスポートをサポート
- 🎛️ Gradio UI: ブラウザベースの管理インターフェース
- 🔐 柔軟な権限管理: ツールごとの権限設定とテンプレート
📦 クイックスタート
起動
# リポジトリをクローン
git clone https://github.com/your/sisterd_lite.git
cd sisterd_lite
# 起動(依存関係は自動インストール)
chmod +x start-mcp.sh
./start-mcp.sh
エンドポイント
| サービス | URL | 説明 |
|---|---|---|
| HTTP API | http://localhost:8089 | MCP JSON-RPC エンドポイント |
| Gradio UI | http://localhost:7861 | Web管理インターフェース |
| Health | http://localhost:8089/health | ヘルスチェック |
動作確認
# ヘルスチェック
curl http://localhost:8089/health
# システム情報取得
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_system_info","arguments":{}}}'
🛠️ ツールカテゴリ
📊 Monitoring(監視)
| ツール | 説明 |
|---|---|
get_system_info |
システム全体の情報 |
get_cpu_info |
CPU詳細情報 |
get_memory_info |
メモリ使用量 |
get_disk_usage |
ディスク使用量 |
get_temperature |
温度センサー |
list_processes |
プロセス一覧 |
get_top_processes |
リソース消費上位 |
🔐 Security(セキュリティ)
| ツール | 説明 |
|---|---|
get_selinux_status |
SELinux状態 |
get_apparmor_status |
AppArmor状態 |
list_firewall_rules |
ファイアウォールルール |
scan_suid_files |
SUID/SGIDファイル検索 |
get_failed_logins |
失敗ログイン試行 |
audit_permissions |
パーミッション監査 |
🖥️ System(システム)
| ツール | 説明 |
|---|---|
manage_service |
systemdサービス制御 |
list_units |
systemdユニット一覧 |
get_kernel_modules |
カーネルモジュール |
get_hardware_info |
ハードウェア情報 |
get_usb_devices |
USBデバイス一覧 |
�� Container(コンテナ)
| ツール | 説明 |
|---|---|
list_containers |
コンテナ一覧 |
start_container |
コンテナ起動 |
stop_container |
コンテナ停止 |
run_container |
新規コンテナ実行 |
get_container_logs |
ログ取得 |
🤖 Self(LLM自己編集)
LLMが自分自身の環境を操作するためのツール群
| ツール | 説明 |
|---|---|
read_workspace_file |
ワークスペース内ファイル読み取り |
write_workspace_file |
ファイル書き込み・作成 |
append_to_file |
ファイル追記 |
list_workspace_directory |
ディレクトリ一覧 |
search_workspace |
ファイル/コンテンツ検索 |
execute_shell_command |
シェルコマンド実行 |
install_python_package |
Pythonパッケージインストール |
get_python_environment |
Python環境情報 |
set_environment_variable |
環境変数設定 |
restart_self |
サーバー自己再起動 |
get_self_status |
サーバー状態取得 |
backup_workspace |
ワークスペースバックアップ |
🧮 Calculator(計算)
| ツール | 説明 |
|---|---|
calculate |
数式評価 |
convert_units |
単位変換 |
matrix_operation |
行列演算 |
statistics |
統計計算 |
solve_equation |
方程式求解 |
⚙️ MCP Config(設定管理)
| ツール | 説明 |
|---|---|
get_mcp_config |
現在の設定取得 |
list_mcp_tools |
ツール一覧 |
set_mcp_tool_permission |
個別権限設定 |
apply_mcp_template |
テンプレート適用 |
get_mcp_templates |
利用可能テンプレート |
📋 テンプレート
用途に応じてツールセットを一括設定できます:
| テンプレート | ツール数 | 用途 |
|---|---|---|
minimal |
~18 | 安全な監視のみ |
monitoring |
~18 | システム監視 |
development |
~47 | 開発用(コンテナ、自己編集含む) |
security |
~31 | セキュリティ監査 |
full |
~200 | 全ツール有効 |
# テンプレート適用
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"apply_mcp_template","arguments":{"template":"development"}}}'
🔌 クライアント設定
VS Code
.vscode/mcp.json:
{
"servers": {
"systerd": {
"type": "http",
"url": "http://localhost:8089"
}
}
}
Claude Desktop
~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"systerd": {
"command": "python3",
"args": ["/path/to/mcp_server_unified.py"]
}
}
}
Ollama / HTTP クライアント
# ツール一覧取得
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
# ツール呼び出し
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_uptime","arguments":{}}}'
🏗️ アーキテクチャ
┌─────────────────────────────────────────────────────────────────┐
│ Clients │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ VS Code │ │ Claude │ │ Ollama │ │ Gradio UI│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │ │
│ └─────────────┴──────┬──────┴─────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ MCP HTTP │ Port 8089 │
│ │ Endpoint │ │
│ └──────┬──────┘ │
│ │ │
└────────────────────────────┼─────────────────────────────────────┘
│
┌────────────────────────────▼─────────────────────────────────────┐
│ systerd-lite │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ MCPHandler │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │Monitoring│ │ Security │ │ Container│ │ Self │ │ │
│ │ │ Tools │ │ Tools │ │ Tools │ │ Tools │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼───────────────────────────────────┐ │
│ │ Permission Manager │ │
│ │ DISABLED │ READ_ONLY │ AI_ASK │ AI_AUTO │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
└────────────────────────────┼─────────────────────────────────────┘
│
┌────────────────────────────▼─────────────────────────────────────┐
│ Linux System │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ systemd │ │ psutil │ │ Docker │ │ File I/O │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────────────────────────────────────────────────┘
📁 ファイル構成
sisterd_lite/
├── start-mcp.sh # 推奨起動スクリプト
├── start-lite.sh # 代替起動スクリプト
├── systerd-lite.py # メインアプリケーション
├── mcp_server_unified.py # stdio/HTTP/SSE統合サーバー
├── README.md # このファイル
├── .vscode/
│ └── mcp.json # VS Code MCP設定
├── .state/
│ └── permissions.json # ツール権限設定(自動生成)
└── systerd_lite/ # Pythonモジュール
├── mcp.py # MCPハンドラー(200+ツール)
├── permissions.py # 権限管理
├── sensors.py # システムセンサー
├── tuner.py # システムチューニング
├── container.py # コンテナ管理
├── scheduler.py # タスクスケジューラ
└── ui/ # Gradio UIモジュール
🔧 起動オプション
# 基本起動
./start-mcp.sh
# カスタムポート
./systerd-lite.py --port 9000 --gradio 9001
# ヘッドレスモード(UIなし)
./systerd-lite.py --no-ui
# デバッグモード
./systerd-lite.py --debug
🔐 セキュリティ
権限レベル
| レベル | 説明 |
|---|---|
DISABLED |
ツール無効 |
READ_ONLY |
読み取りのみ |
AI_ASK |
実行前に確認 |
AI_AUTO |
自動実行許可 |
推奨事項
- 本番環境では
minimalまたはmonitoringテンプレートを使用 selfカテゴリのツールは信頼できる環境でのみ有効化- HTTP APIは必要に応じてファイアウォールで保護
systerd-lite (English)
<div align="center">
AI-Native OS Core for Linux Systems
An MCP server that allows LLMs to autonomously monitor, control, and optimize Linux systems as their own body.
</div>
🎯 Overview
systerd-lite is an MCP server that enables LLMs (Large Language Models) to operate Linux systems as their own body.
Key Features
- 🔧 200+ System Control Tools: Process management, network, storage, security, and more
- 🤖 LLM Self-Editing: LLM can read, write, and modify its own code and environment
- 📡 Universal MCP Support: Supports HTTP/SSE/stdio transports
- 🎛️ Gradio UI: Browser-based management interface
- 🔐 Flexible Permission Management: Per-tool permission settings and templates
📦 Quick Start
Launch
# Clone repository
git clone https://github.com/your/sisterd_lite.git
cd sisterd_lite
# Start (dependencies auto-installed)
chmod +x start-mcp.sh
./start-mcp.sh
Endpoints
| Service | URL | Description |
|---|---|---|
| HTTP API | http://localhost:8089 | MCP JSON-RPC endpoint |
| Gradio UI | http://localhost:7861 | Web management interface |
| Health | http://localhost:8089/health | Health check |
Verification
# Health check
curl http://localhost:8089/health
# Get system info
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_system_info","arguments":{}}}'
🛠️ Tool Categories
📊 Monitoring
| Tool | Description |
|---|---|
get_system_info |
System overview |
get_cpu_info |
Detailed CPU info |
get_memory_info |
Memory usage |
get_disk_usage |
Disk usage |
get_temperature |
Temperature sensors |
list_processes |
Process list |
get_top_processes |
Top resource usage |
🔐 Security
| Tool | Description |
|---|---|
get_selinux_status |
SELinux status |
get_apparmor_status |
AppArmor status |
list_firewall_rules |
Firewall rules |
scan_suid_files |
SUID/SGID file scan |
get_failed_logins |
Failed login attempts |
audit_permissions |
Permission audit |
🖥️ System
| Tool | Description |
|---|---|
manage_service |
systemd service control |
list_units |
systemd unit list |
get_kernel_modules |
Kernel modules |
get_hardware_info |
Hardware info |
get_usb_devices |
USB device list |
🐳 Container
| Tool | Description |
|---|---|
list_containers |
Container list |
start_container |
Start container |
stop_container |
Stop container |
run_container |
Run new container |
get_container_logs |
Get logs |
🤖 Self (LLM Self-Editing)
Tools for LLM to operate its own environment
| Tool | Description |
|---|---|
read_workspace_file |
Read workspace file |
write_workspace_file |
Write/create file |
append_to_file |
Append to file |
list_workspace_directory |
List directory |
search_workspace |
Search files/content |
execute_shell_command |
Run shell command |
install_python_package |
Install Python package |
get_python_environment |
Python environment info |
set_environment_variable |
Set environment variable |
restart_self |
Restart server |
get_self_status |
Get server status |
backup_workspace |
Backup workspace |
🧮 Calculator
| Tool | Description |
|---|---|
calculate |
Evaluate expression |
convert_units |
Unit conversion |
matrix_operation |
Matrix operations |
statistics |
Statistics |
solve_equation |
Equation solving |
⚙️ MCP Config
| Tool | Description |
|---|---|
get_mcp_config |
Get current config |
list_mcp_tools |
List tools |
set_mcp_tool_permission |
Set individual permission |
apply_mcp_template |
Apply template |
get_mcp_templates |
Available templates |
📋 Templates
Set toolsets for different use cases:
| Template | Tool Count | Use Case |
|---|---|---|
minimal |
~18 | Safe monitoring only |
monitoring |
~18 | System monitoring |
development |
~47 | Development (includes container, self-edit) |
security |
~31 | Security audit |
full |
~200 | All tools enabled |
# Apply template
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"apply_mcp_template","arguments":{"template":"development"}}}'
🔌 Client Configuration
VS Code
.vscode/mcp.json:
{
"servers": {
"systerd": {
"type": "http",
"url": "http://localhost:8089"
}
}
}
Claude Desktop
~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"systerd": {
"command": "python3",
"args": ["/path/to/mcp_server_unified.py"]
}
}
}
Ollama / HTTP Client
# List tools
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
# Call tool
curl -X POST http://localhost:8089 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_uptime","arguments":{}}}'
🏗️ Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Clients │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ VS Code │ │ Claude │ │ Ollama │ │ Gradio UI│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │ │
│ └─────────────┴──────┬──────┴─────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ MCP HTTP │ Port 8089 │
│ │ Endpoint │ │
│ └──────┬──────┘ │
│ │ │
└────────────────────────────┼─────────────────────────────────────┘
│
┌────────────────────────────▼─────────────────────────────────────┐
│ systerd-lite │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ MCPHandler │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │Monitoring│ │ Security │ │ Container│ │ Self │ │ │
│ │ │ Tools │ │ Tools │ │ Tools │ │ Tools │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────▼───────────────────────────────────┐ │
│ │ Permission Manager │ │
│ │ DISABLED │ READ_ONLY │ AI_ASK │ AI_AUTO │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
└────────────────────────────┼─────────────────────────────────────┘
│
┌────────────────────────────▼─────────────────────────────────────┐
│ Linux System │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ systemd │ │ psutil │ │ Docker │ │ File I/O │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────────────────────────────────────────────────┘
📁 File Structure
sisterd_lite/
├── start-mcp.sh # Recommended startup script
├── start-lite.sh # Alternative startup script
├── systerd-lite.py # Main application
├── mcp_server_unified.py # Unified stdio/HTTP/SSE server
├── README.md # This file
├── .vscode/
│ └── mcp.json # VS Code MCP config
├── .state/
│ └── permissions.json # Tool permission config (auto-generated)
└── systerd_lite/ # Python modules
├── mcp.py # MCP handler (200+ tools)
├── permissions.py # Permission management
├── sensors.py # System sensors
├── tuner.py # System tuning
├── container.py # Container management
├── scheduler.py # Task scheduler
└── ui/ # Gradio UI module
🔧 Startup Options
# Basic startup
./start-mcp.sh
# Custom ports
./systerd-lite.py --port 9000 --gradio 9001
# Headless mode (no UI)
./systerd-lite.py --no-ui
# Debug mode
./systerd-lite.py --debug
🔐 Security
Permission Levels
| Level | Description |
|---|---|
DISABLED |
Tool disabled |
READ_ONLY |
Read-only |
AI_ASK |
Confirm before execution |
AI_AUTO |
Auto-execute allowed |
Recommendations
- Use
minimalormonitoringtemplate in production - Enable
selfcategory tools only in trusted environments - Protect HTTP API with firewall as needed
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.