Skip to content

Latest commit

 

History

History
263 lines (184 loc) · 10.4 KB

File metadata and controls

263 lines (184 loc) · 10.4 KB

Evaluasi Kesiapan OSS: SecureMCP-Lite

Tanggal evaluasi: 2026-03-21 UTC

Ringkasan proyek

SecureMCP-Lite adalah proxy firewall lokal untuk server MCP berbasis stdio. Posisi produknya jelas: duduk di antara client MCP dan target MCP server, membaca trafik JSON-RPC secara real time, lalu memutuskan apakah request boleh diteruskan berdasarkan policy YAML lokal.

Secara konsep, ini relevan dengan kebutuhan yang sedang tumbuh di ekosistem MCP: banyak server MCP terlalu permisif, sementara client dan agen makin sering diberi otonomi. Produk seperti ini bisa berguna sebagai lapisan kontrol yang kecil, mudah diaudit, dan tidak memaksa developer pindah ke platform tertentu.

Apa yang sudah kuat

  • Scope produk sempit dan jelas. Ini penting untuk proyek OSS solo-maintained.
  • Implementasi inti sudah cukup rapi untuk MVP serius: config parsing, policy engine, proxy, transport, logger, CLI, dan test terpisah dengan cukup masuk akal.
  • Mekanisme block lokal sudah benar secara prinsip: request yang ditolak tidak diteruskan ke target.
  • Error JSON-RPC lokal sudah lebih kredibel. Input malformed dan invalid request sekarang ditangani secara lokal, bukan dibiarkan bocor ke target.
  • Ada penanganan saat target gagal start atau mati sebelum membalas, sehingga client tidak dibiarkan menggantung tanpa respons.
  • Logging ke stderr menjaga stdout tetap bersih untuk trafik JSON-RPC. Ini penting untuk tool berbasis stdio.
  • Packaging sudah lebih siap publish: bin benar, build membersihkan dist, npm pack --dry-run sudah diverifikasi.
  • Dokumentasi sudah jauh lebih jujur dan praktis daripada template OSS biasa. README menjelaskan batasan dan threat model, bukan hanya fitur.

Apa yang masih lemah

  • Produk masih stdio-only. Untuk MVP ini masuk akal, tetapi dampak ekosistemnya masih sempit.
  • Validasi argumen masih regex-based. Ini cukup untuk v0.1.0, tetapi belum cukup kuat untuk policy yang lebih kompleks atau konteks tool yang kaya.
  • Belum ada bukti penggunaan nyata. Tidak ada compatibility matrix dengan MCP client/server populer, tidak ada contoh integrasi production, tidak ada user feedback.
  • Test suite sudah baik untuk MVP, tetapi belum memberi keyakinan tinggi untuk klaim “security middleware” di lingkungan production yang beragam.
  • Smoke test CLI masih bergantung pada bash dan timeout, jadi cakupan lintas platform belum merata.
  • Belum ada jaminan kuat untuk interoperability dengan banyak implementasi MCP nyata. Saat ini mayoritas test masih memakai fixture dan command sederhana.
  • Narasi “ecosystem impact” untuk program Anthropic belum kuat karena belum ada bukti adopsi atau dependensi downstream.

Hasil audit teknis

Arsitektur

Arsitektur sekarang cukup sehat untuk proyek kecil:

  • transport client dan target dipisahkan dengan baik
  • policy engine tidak tercampur dengan kode stream
  • CLI tidak memegang logika enforcement
  • config validation dipisah dari advisory config

Ini terasa maintainable untuk solo maintainer. Tidak ada overengineering besar.

Korektness protokol

Area ini sudah membaik signifikan:

  • malformed JSON sekarang menghasilkan parse error lokal
  • invalid JSON-RPC message sekarang menghasilkan invalid request lokal
  • pending request dilacak, lalu diberi fallback error jika target mati
  • request blocked dengan id mendapat response lokal yang benar
  • notification yang diblok tidak dipaksa mendapat respons palsu

Masih ada batasan:

  • coverage terhadap perilaku MCP nyata masih terbatas
  • fokus implementasi masih pada newline-delimited stdio JSON-RPC, bukan variasi transport lain

Keamanan

Kekuatan utama:

  • policy deny betul-betul menghentikan request sebelum mencapai target
  • log dipisah ke stderr
  • ada advisory untuk config yang berisiko
  • ada rate limiting dasar untuk loop/runaway agent

Kelemahan yang masih nyata:

  • regex policy mudah salah tulis
  • belum ada schema-aware validation per tool
  • belum ada sandboxing, isolation, atau boundary keamanan di luar policy middleware
  • target stderr hanya convenience signal, bukan bukti audit yang kuat

DX dan CLI

CLI sudah cukup baik:

  • init
  • validate-config
  • validate-config --strict
  • start --target ...

Kelebihan:

  • command naming jelas
  • error message cukup masuk akal
  • config init sekarang bisa membuat parent directory

Yang masih bisa ditingkatkan:

  • contoh integrasi client nyata masih kurang
  • belum ada helper untuk compatibility diagnosis dengan target MCP server tertentu

Packaging dan publish

Packaging sudah layak:

  • bin benar
  • exports, main, types benar
  • engines jelas
  • prepack dan build hygiene sudah ada
  • tarball publish sudah diperiksa dengan npm pack --dry-run

Temuan penting yang sudah diperbaiki:

  • sebelumnya ada risiko artifact lama di dist ikut terpublikasi
  • sekarang build membersihkan dist dulu, jadi tarball lebih bersih dan konsisten

Hasil audit dokumentasi

README sudah cukup kredibel untuk publik karena:

  • menjelaskan apa produk ini dan apa yang tidak dilakukan
  • menuliskan limitation dengan jujur
  • memberi contoh config dan blocked response
  • menjelaskan model error JSON-RPC lokal
  • memasukkan threat model

Dokumentasi pendukung juga sudah cukup:

  • CONTRIBUTING.md tidak normatif berlebihan
  • SECURITY.md fokus ke boundary yang benar
  • threat scenarios dan release notes sudah ada

Yang masih lemah:

  • belum ada compatibility matrix client/server MCP nyata
  • belum ada contoh benchmark operasional sederhana
  • belum ada “known good setups” untuk beberapa environment populer

Hasil audit testing

Kondisi test suite saat ini:

  • 7 file test
  • 23 test lulus
  • ada kombinasi unit test, regression test, dan smoke test CLI

Hal yang sudah tercakup:

  • validasi config
  • advisory config
  • allowlist enforcement
  • regex argument rules
  • malformed JSON
  • invalid tools/call
  • rate limiting
  • blocked request tidak diteruskan
  • allowed request diteruskan
  • concurrent request handling
  • malformed output dari target
  • end-to-end multi-message flow dengan fixture MCP
  • target start failure
  • target close saat request masih pending
  • pemisahan stdout dan stderr

Yang belum cukup tercakup:

  • integrasi dengan server MCP nyata yang lebih kompleks
  • kompatibilitas lintas platform
  • stress/load test untuk burst request besar
  • perilaku terhadap tool argument yang sangat besar atau nested ekstrem

Kesimpulan audit test: cukup kuat untuk MVP OSS yang serius, tetapi belum cukup untuk klaim security-assurance tinggi.

Hasil verifikasi command

Command yang diverifikasi:

  • npm run lint
  • npm run build
  • npm run test -- --run
  • npm pack --dry-run
  • node dist/cli/index.js init --config <tempfile>
  • node dist/cli/index.js validate-config --config <tempfile>
  • smoke test blocked-call via shell pipe

Hasil:

  • seluruh command utama lulus
  • tarball publish kering berhasil
  • test suite stabil
  • perilaku block lokal dan forwarding dasar sudah tervalidasi

Penilaian kelayakan untuk open-source serius

Untuk ukuran proyek infra kecil yang fokus, proyek ini sudah layak dipublikasikan secara serius.

Alasannya:

  • masalah yang diselesaikan jelas
  • implementasi inti tidak terlihat asal jadi
  • dokumentasi sudah cukup untuk pengguna awal
  • test dan verification bukan formalitas
  • batasan produk dijelaskan dengan cukup jujur

Kalau tujuan Anda adalah public launch, early users, dan iterasi dengan feedback nyata, proyek ini sudah masuk kategori layak.

Penilaian kelayakan untuk dinilai Anthropic Claude Open Source Program

Dilihat dari perspektif Ecosystem Impact Track, kualitas kode saja tidak cukup.

Posisi proyek saat ini:

  • secara teknis: cukup kuat untuk dibawa ke review
  • secara dampak ekosistem: belum punya bukti yang kuat
  • secara narasi aplikasi: potensial, tetapi masih perlu data pendukung nyata

Yang belum kuat untuk program seperti itu:

  • belum ada bukti adopsi
  • belum ada integrasi resmi dengan client/server MCP populer
  • belum ada downstream package atau tooling lain yang bergantung padanya
  • belum ada studi kasus penggunaan nyata
  • belum ada sinyal komunitas seperti issue eksternal berkualitas, contributor awal, atau demo publik yang dipakai orang lain

Jadi, kalau apply sekarang, kemungkinan penilaian akan sangat bergantung pada narasi dan momentum, bukan bukti dampak yang sudah terbentuk.

Verdict yang jelas

HAMPIR LAYAK

Alasan verdict

Verdict ini dipilih karena:

  • dari sisi engineering, proyek sudah melewati level “toy project”
  • dari sisi OSS launch, repositori sudah cukup rapi dan kredibel
  • dari sisi evaluasi Anthropic Ecosystem Impact, bukti dampak eksternal masih kurang

Kalau tolok ukurnya “boleh dipublish dan diuji publik”, jawabannya ya. Kalau tolok ukurnya “sudah punya argumen kuat untuk diterima karena impact ekosistem”, jawabannya belum.

Prioritas perbaikan berikutnya

  1. Uji dengan beberapa MCP server nyata dan dokumentasikan hasilnya.
  2. Tambahkan compatibility matrix untuk client dan server yang benar-benar dites.
  3. Kumpulkan minimal 2-3 demo use case yang realistis, bukan synthetic.
  4. Tambahkan satu atau dua end-to-end test terhadap MCP server nyata.
  5. Kurangi ketergantungan smoke test pada utilitas shell yang tidak lintas platform.
  6. Tambahkan contoh policy yang lebih dekat dengan kasus nyata, misalnya filesystem, shell, dan SQL yang lebih defensif.

Checklist yang masih harus dilakukan sebelum apply

  • publish package ke npm
  • publish repo GitHub publik dengan release pertama
  • dokumentasikan compatibility matrix
  • siapkan demo singkat yang menunjukkan block request berbahaya secara live
  • dapatkan setidaknya beberapa user atau reviewer eksternal
  • buka issue roadmap yang jelas dan realistis
  • tambahkan contoh integrasi dengan minimal satu MCP server populer
  • pastikan deskripsi impact tidak hanya berbunyi “security proxy”, tetapi menjelaskan siapa yang benar-benar terbantu dan bagaimana

Saran strategi non-code untuk meningkatkan peluang diterima

  • Tulis announcement yang fokus pada masalah nyata: prompt injection, over-permissioned MCP servers, dan runaway agent loops.
  • Buat demo video singkat yang menunjukkan request berbahaya diblok tanpa mengubah target server.
  • Minta feedback dari maintainer MCP server atau tooling lain, lalu dokumentasikan hasilnya.
  • Cari 2-3 pengguna awal yang benar-benar mencoba tool ini dan minta testimoni teknis.
  • Buat narasi aplikasi yang menekankan bahwa proyek ini adalah lapisan keamanan yang reusable untuk banyak implementasi MCP, bukan tool satu-off.
  • Tunjukkan bahwa proyek ini bisa jadi fondasi untuk ekosistem yang lebih aman, tetapi jangan melebih-lebihkan seolah sudah menjadi standar.