MCP Filesystem Server: Cara Instal di MCPProxy Biar Bisa Akses Folder VPS

Kalau kamu udah pakai AI agent kayak Claude buat ngurusin server, cepat atau lambat bakal kepikiran: enak kali ya kalau AI-nya bisa langsung baca dan edit file di VPS, bukan cuma ngasih saran yang harus kita copas manual. Nah, itu fungsinya MCP Filesystem Server. Di artikel ini gue share step by step instalasinya di mcpproxy, termasuk drama error yang muncul pas nyoba mount folder WordPress dan cara benerinnya satu-satu.

Apa Itu MCP Filesystem Server?

MCP Filesystem Server adalah salah satu server resmi dari Model Context Protocol yang fungsinya sederhana: kasih akses baca-tulis file ke AI agent, tapi dibatasi cuma ke folder tertentu yang kita izinkan. Jadi bukan akses bebas ke seluruh filesystem, cuma folder yang kita daftarin doang. Paketnya ada di npm sebagai @modelcontextprotocol/server-filesystem, dan biasanya dijalankan lewat proxy kayak mcpproxy biar bisa dipakai bareng-bareng sama MCP server lain.

Kalau kamu belum familiar sama mcpproxy sendiri, bisa cek dulu panduan instalasi MCPProxy di Ubuntu Server biar nggak bingung soal dasar-dasarnya.

Prasyarat Sebelum Instal MCP Filesystem Server

Sebelum mulai, pastiin beberapa hal ini udah beres di VPS kamu:

  • mcpproxy udah terinstal dan jalan sebagai service (systemd)
  • Node.js/npx tersedia di server, mcpproxy bakal manggil npx buat jalanin server-nya
  • Akses root atau sudo, karena kita bakal edit config file dan permission sistem
  • Docker terpasang, ini opsional tapi sangat direkomendasiin, apalagi kalau service mcpproxy kamu di-hardening pakai systemd (kayak kasus yang bakal gue bahas di bawah)

Langkah 1: Tambahkan MCP Filesystem Server ke mcpproxy

Nambahin MCP Filesystem Server ke mcpproxy itu sendiri gampang, tinggal daftarin server stdio baru pakai command npx. Kalau lewat tool upstream_servers di mcpproxy atau lewat Web UI, konfigurasinya kira-kira begini:

{
  "name": "filesystem",
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/ke/folder"],
  "protocol": "stdio"
}

Ganti /path/ke/folder sama folder yang emang mau diakses, misalnya folder WordPress kamu. Setelah ditambahin, server ini otomatis berstatus quarantined, ini fitur keamanan bawaan mcpproxy buat cegah Tool Poisoning Attack, jadi jangan kaget kalau tools-nya belum bisa langsung dipakai.

Langkah 2: Approve Server dari Security Quarantine

Server baru yang ditambahin ke mcpproxy selalu masuk status quarantine dulu. Buat ngeluarinnya, buka system tray icon mcpproxy atau Web UI-nya, cari nama server yang baru kamu tambahin, terus klik Unquarantine atau Approve. Proses ini sengaja nggak bisa dilakuin lewat API/tool call, harus manual, biar nggak ada yang bisa nge-bypass review keamanannya.

Kenapa MCP Filesystem Server Bisa Error Cannot Access Directory?

Ini bagian yang paling sering bikin bingung. Setelah di-approve, banyak yang masih nemuin error kayak gini di log:

Warning: Cannot access directory /home/user/folder, skipping
Error: None of the specified directories are accessible

Kalau folder yang dituju emang ada dan permission-nya udah bener, curigain dulu setting ProtectHome di systemd service mcpproxy kamu. Banyak instalasi mcpproxy yang service-nya di-hardening pakai opsi kayak ProtectSystem=strict dan ProtectHome=true. Nah, ProtectHome=true ini bikin folder /home beneran nggak kelihatan sama sekali dari proses mcpproxy, apapun izin file di dalamnya. Cek dulu pakai:

systemctl cat mcpproxy | grep ProtectHome

Kalau hasilnya true, itu penyebabnya.

Solusi: Aktifkan Docker Isolation Buat MCP Filesystem Server

Godaan pertama biasanya langsung matiin ProtectHome. Tapi itu bukan solusi yang bagus, soalnya proteksi itu emang sengaja dipasang buat ngelindungin data sensitif service lain juga. Cara yang lebih aman: pakai fitur Docker Isolation bawaan mcpproxy. Konsepnya, server MCP Filesystem dijalankan di dalam container Docker terpisah, dan container itu dikelola oleh Docker daemon sendiri, bukan bagian dari sandbox systemd mcpproxy. Jadi bind mount folder host tetap bisa jalan meskipun ProtectHome nyala.

1. Pastikan User mcpproxy Bisa Akses Docker Socket

usermod -aG docker mcpproxy

Docker socket (/var/run/docker.sock) biasanya cuma bisa diakses root dan group docker, jadi user service mcpproxy wajib jadi anggota grup itu.

2. Aktifkan Docker Isolation di Config mcpproxy

Buka /etc/mcpproxy/mcp_config.json, cari dua flag ini dan ubah jadi true:

"docker_isolation": {
  "enabled": true
}
...
"enable_docker_isolation": true

Restart service-nya biar kepakai:

systemctl restart mcpproxy

3. Mount Folder Host Lewat extra_args

Terakhir, set isolation khusus buat server MCP Filesystem-nya, sekalian mount folder host yang mau diakses:

{
  "isolation": {
    "enabled": true,
    "image": "node:20",
    "extra_args": ["-v", "/home/user/folder:/home/user/folder"]
  }
}

Setelah ini, coba reconnect server-nya. Kalau docker_status.available udah true dan container-nya kebentuk, server MCP Filesystem harusnya langsung connect normal dan bisa baca-tulis folder yang di-mount.

Kecualikan Server Lain dari Docker Isolation

Satu hal yang gampang kelewat: begitu Docker isolation diaktifin secara global, semua server stdio lain di mcpproxy juga otomatis ikut dibungkus container, bukan cuma MCP Filesystem Server aja. Ini bisa bikin server lain yang tadinya jalan normal, kayak server yang manggil file lokal atau konek ke database di 127.0.0.1, jadi error, soalnya file atau port itu nggak ada di dalam container.

Solusinya, matiin isolation khusus buat server-server itu satu-satu:

{
  "isolation": {
    "enabled": false
  }
}

Biarin mereka tetap jalan native di host, dan cuma MCP Filesystem Server aja yang dibungkus Docker isolation.

Troubleshooting MCP Filesystem Server

Beberapa masalah lain yang mungkin muncul pas setup MCP Filesystem Server:

  • Permission denied pas edit config lewat SFTP: kalau file mcp_config.json permission-nya ketat (misalnya cuma 600 punya user mcpproxy), user SFTP kamu nggak bakal bisa buka file itu meskipun udah masuk ke group yang sama. Cek dulu pakai getfacl, siapa tau ada ACL tambahan yang nge-override permission biasa. Solusi cepatnya, ubah permission jadi 660 lewat chmod.
  • Permission balik lagi setelah restart service: kalau service mcpproxy kamu punya ExecStartPost yang otomatis reset permission file config, permission manual bakal ketimpa lagi tiap restart. Perlu diedit langsung di override.conf-nya biar konsisten.
  • usermod gagal cannot lock /etc/passwd: biasanya karena dijalanin tanpa sudo/root. Pastiin kamu jalanin sebagai root.

Penutup

Setelah semua langkah di atas beres, MCP Filesystem Server kamu bakal bisa diakses AI agent buat baca dan edit file di folder yang udah ditentuin, tanpa perlu ngorbanin proteksi ProtectHome di service mcpproxy. Kalau kamu juga lagi eksperimen sama MCP server lain, bisa lanjut baca setup MCP LinkedIn buat auto-posting pakai Claude AI atau cara benerin error invalid host header MCPProxy kalau kamu jalanin mcpproxy di belakang reverse proxy.

Jundi Husni Mubaraq

Jundi Husni Mubaraq

Saya seorang software engineer yang sejak awal 2026 megang penuh (sendirian) tanggung jawab infrastruktur server di tempat saya kerja: deploy dan maintain server Linux Ubuntu on-premises, bangun keamanan berlapis pakai CrowdSec dan Cloudflare, kelola job scheduling dan monitoring pakai Cronicle, deploy aplikasi containerized pakai Docker, sampai ngurusin mail server korporat dari nol. Sebelumnya saya 3+ tahun jadi Software Engineer/Fullstack Developer di beberapa perusahaan, termasuk proyek skala internasional (EUDR compliance system buat Lindt & Sprungli) dan sistem rumah sakit (SIMRS, rekam medis elektronik, integrasi BPJS Kesehatan) di RS PKU Muhammadiyah Surakarta. jundi.hm ini tempat saya dokumentasiin apa yang beneran saya kerjain dan pelajarin di lapangan, bukan sekadar riset teori, S.Kom dari Universitas Duta Bangsa Surakarta jadi bekal awal, tapi yang nulis di sini adalah pengalaman langsung ngelola server production sehari-hari. Selengkapnya: https://iam.jundi.hm

Lihat Juga Nih

Selanjutnya Nih

Kasih Komentar

Email kamu gak bakal ditampilin ke publik. Kalau ada tanda ini artinya wajib diisi ya *

Rekomendasi.

Lagi Viral.