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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。