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
npxbuat 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.jsonpermission-nya ketat (misalnya cuma600punya usermcpproxy), user SFTP kamu nggak bakal bisa buka file itu meskipun udah masuk ke group yang sama. Cek dulu pakaigetfacl, siapa tau ada ACL tambahan yang nge-override permission biasa. Solusi cepatnya, ubah permission jadi660lewatchmod. - Permission balik lagi setelah restart service: kalau service mcpproxy kamu punya
ExecStartPostyang 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.
























