jenny-mcp-server
by RhaDar12
README.md
# Jenny Tools ā MCP Server š¤
Server MCP (Model Context Protocol) lokal yang membungkus tool Python untuk AI Agent, memungkinkan interaksi langsung dengan Windows ā browser, clipboard, file, GitHub, Roblox Studio, screenshot, OCR, dan banyak lagi.
Dibangun dengan arsitektur **stdio MCP** + **privileged approval system**, cocok dipasangkan dengan Hermes Agent, Claude Code, atau MCP client lain.
## ⨠Fitur
| Modul | Fungsi |
|-------|--------|
| **š Brave Browser** | Buka URL, klik, isi form, screenshot, baca halaman via CDP |
| **š Brave Search** | Cari web + berita dengan parameter negara/bahasa |
| **š Web Tools** | Baca halaman, screenshot, click-and-read via browser headless |
| **š Archive** | Baca & ekstrak ZIP/RAR |
| **š Document Reader** | Baca DOCX, XLSX, PDF |
| **š¼ļø OCR** | Baca teks dari gambar via Tesseract |
| **š¬ Video Reader** | Ekstrak frame, audio, transkripsi dari video |
| **š Clipboard** | Baca, tulis, bersihkan clipboard Windows |
| **ā¬ļø Download** | Download file dari URL |
| **šø Screenshot** | Screenshot seluruh desktop |
| **š® Roblox Studio** | Baca hierarchy, inspect/edit properti, visual inspect via bridge plugin |
| **šØ ComfyUI** | Generate gambar via ComfyUI lokal |
| **š GitHub CLI** | Cek auth, repo list/view/clone, SSH key management |
| **š Credential Diagnostics** | Periksa token & SSH key tanpa mengekspos isinya |
| **š Market Watch** | Scan XAUUSD/GBPUSD/EURUSD M5 ā liquidity sweep, S&R, R:R, session filter |
| **š° MT5 Trading** | Account info, positions, pending orders, trade history ā market order, modify SL/TP, close, pending order, cancel |
## šļø Arsitektur
```
AI Agent (Hermes, Claude Code, dll)
ā
āāā MCP stdio
ā
āāā jenny_mcp_server.py
ā
āāā approval_store.py ā sistem approval manual
āāā jenny_privileged_tools.py ā tools berisiko (approval-only)
ā
āāā C:\AI-Agent\tools\ ā modul Python eksternal
āāā cli_*.py
āāā brave_browser_tool.py
āāā web_search_tool.py
āāā ...
```
## š Instalasi
```powershell
# 1. Install MCP SDK
py -m pip install "mcp[cli]"
# 2. Clone/extract ke C:\AI-Agent\mcp
# 3. Pastikan tools ada di C:\AI-Agent\tools
# 4. Tes server
cd C:\AI-Agent\mcp
py jenny_mcp_server.py
# 5. Tes interaktif dengan MCP Inspector
npx -y @modelcontextprotocol/inspector ^
py C:\AI-Agent\mcp\jenny_mcp_server.py
```
## š Konfigurasi Hermes Agent
Masukkan ini ke `~/.hermes/config.yaml`:
```yaml
mcp_servers:
jenny_tools:
command: "py"
args:
- "C:\\AI-Agent\\mcp\\jenny_mcp_server.py"
env:
JENNY_TOOLS_DIR: "C:\\AI-Agent\\tools"
JENNY_MCP_LOG_DIR: "C:\\AI-Agent\\logs"
JENNY_APPROVAL_DIR: "C:\\AI-Agent\\approvals"
JENNY_SHELL_ROOT: "C:\\AI-Agent"
enabled: true
timeout: 900
```
Lalu restart Hermes atau jalankan `/reload-mcp`.
## š”ļø Sistem Keamanan
- **Approval manual** ā tindakan berisiko (hapus file, edit script, push GitHub) memerlukan persetujuan manual via `approve_mcp_action.py`
- **Tanpa hardcoded credential** ā semua API key/token dibaca dari environment variable
- **Executable allowlist** ā shell execution hanya untuk binary yang diizinkan
- **Parallel calls disabled** ā karena banyak tool mengontrol GUI/clipboard/browser
## š® Roblox Studio Integration
Membutuhkan bridge plugin yang berjalan di Roblox Studio:
```powershell
cd C:\AI-Agent\tools
py cli_roblox_studio.py serve
```
Plugin tersedia di: `C:\\Users\\<user>\\AppData\\Local\\Roblox\\Plugins\\JennyRobloxBridge.rbxmx`
## š° MT5 Trading Integration
Berinteraksi dengan MetaTrader 5 broker (Exness) untuk data akun dan eksekusi trading.
### Read-Only Tools (tanpa konfirmasi)
| Tool MCP | Deskripsi |
|----------|-----------|
| `mt5_account` | Balance, equity, margin, leverage, profit |
| `mt5_positions` | Semua posisi terbuka ā ticket, symbol, volume, profit, SL/TP |
| `mt5_pending_orders` | Daftar pending order buy/sell limit & stop |
| `mt5_trade_history` | Riwayat transaksi N hari terakhir |
### Privileged Tools (butuh approval manual)
Semua eksekusi trading **wajib disetujui** via `approve_mcp_action.py`:
| Tool MCP | Deskripsi |
|----------|-----------|
| `mt5_order` | Market buy/sell ā auto hitung volume step, SL/TP |
| `mt5_modify` | Ubah SL/TP posisi terbuka |
| `mt5_close` | Tutup posisi (partial/full close) |
| `mt5_pending` | Buat pending order (buy_limit, sell_limit, buy_stop, sell_stop) |
| `mt5_cancel` | Batalkan pending order |
### Persyaratan
- **MetaTrader 5** harus terinstall dan login ke akun demo/real
- **Python package `MetaTrader5`** terinstall di MCP server Python
- Symbol Exness menggunakan suffix `m` (XAUUSDm, EURUSDm, GBPUSDm) ā otomatis diresolve
```powershell
# Install MT5 package
py -m pip install MetaTrader5
```
## š§ Environment Variables
| Variable | Default | Deskripsi |
|----------|---------|-----------|
| `JENNY_TOOLS_DIR` | `C:\AI-Agent\tools` | Direktori modul tool Python |
| `JENNY_MCP_LOG_DIR` | `C:\AI-Agent\logs` | Direktori log server |
| `JENNY_APPROVAL_DIR` | `C:\AI-Agent\approvals` | Direktori ticket approval |
| `JENNY_SHELL_ROOT` | `C:\AI-Agent` | Root untuk eksekusi shell |
| `ROBLOX_OPEN_CLOUD_API_KEY` | ā | API key untuk publish Roblox place |
> **Catatan:** MT5 trading tools tidak memerlukan environment variable tambahan ā koneksi MT5 menggunakan akun yang sudah login di terminal MT5.
## š Tool Prefix
Semua tool diregistrasi dengan prefix `mcp_jenny_tools_`:
| Tool MCP | Fungsi |
|----------|--------|
| `mcp_jenny_tools_system_status` | Status semua modul |
| `mcp_jenny_tools_web_search` | Cari web |
| `mcp_jenny_tools_brave_open` | Buka URL di Brave |
| `mcp_jenny_tools_roblox_hierarchy` | Baca hierarchy Studio |
| `mcp_jenny_tools_comfy_generate` | Generate gambar |
| `mcp_jenny_tools_document_read` | Baca DOCX/XLSX/PDF |
| `mcp_jenny_tools_market_watch` | Scan M5 market ā liquidity sweep entry |
| `mcp_jenny_tools_mt5_account` | Info akun MT5 |
| `mcp_jenny_tools_mt5_positions` | Posisi terbuka |
| `mcp_jenny_tools_mt5_order` | Market buy/sell (privileged) |
| `mcp_jenny_tools_mt5_modify` | Ubah SL/TP (privileged) |
| `mcp_jenny_tools_mt5_close` | Tutup posisi (privileged) |
| ...dan 35+ tool lainnya | |
## š Struktur Folder
```
C:\AI-Agent\mcp\
āāā jenny_mcp_server.py ā Main MCP server
āāā jenny_mcp_common.py ā Utility & availability check
āāā jenny_privileged_tools.py ā High-risk tools
āāā approval_store.py ā Approval ticket system
āāā approve_mcp_action.py ā CLI approval tool
āāā tools/
ā āāā core.py ā Shared response helpers
ā āāā mt5_data_tool.py ā Market data (tick, OHLC, bundle)
ā āāā mt5_trading_tool.py ā Trading execution (account, positions, orders)
ā āāā ... ā Other tool modules
āāā README_SETUP.md ā Setup instructions (original)
āāā hermes_config_snippet.yaml ā Contoh config YAML
āāā install_mcp.ps1 ā Instalasi script
āāā requirements.txt ā Dependency (mcp[cli])
āāā .gitignore
```
## š Lisensi
MIT ā Silakan gunakan, modifikasi, dan distribusikan.
---
Dibuat dengan ā oleh **RhaDar12**
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues