MCP Developer Playground
Asisten pengembang interaktif bertenaga MCP dengan alat analisis ruang kerja berbasis LLM dan penalaran cerdas
Bagikan proyek ini:
Tentang Proyek
Workspace Developer MCP (MCP Developer Workspace)
Asisten pengembang bertenaga AI yang secara aman mengekspos konteks proyek melalui alat MCP (Model Context Protocol) standar.
Sistem ini mendemonstrasikan bagaimana LLM dapat berinteraksi dengan basis kode dunia nyata melalui arsitektur klien-server yang bersih, memberikan transparansi, keamanan, dan ekstensibilitas.
๐ฏ Fitur
- 6 Alat MCP: Membaca file, daftar file, cari konten, metadata file, struktur direktori, statistik workspace.
- Desain Safety-First: Workspace dalam sandbox, perlindungan path traversal, pembatasan tingkat permintaan (rate limiting).
- Pemanggilan Alat Transparan: Timeline visual yang menunjukkan setiap pemanggilan alat beserta input dan outputnya.
- Antarmuka Web Modern: Antarmuka React + TypeScript dengan mode gelap dan desain profesional.
- Penalaran Sederhana: Klasifikasi niat (intent) yang memetakan bahasa alami ke pemanggilan alat.
- Berfokus pada Pengembang: Dirancang untuk memahami konteks proyek, bukan menjalankan perintah arbiter.
๐๏ธ Arsitektur
โโโโโโโโโโโโโโโ
โ Web UI โ โ React + TypeScript + Vite
โ (Port 5173)โ
โโโโโโโโฌโโโโโโโ
โ HTTP
โโโโโโโโผโโโโโโโ
โ Klien MCP โ โ Klasifikasi Niat + Pemilihan Alat
โ (Browser) โ
โโโโโโโโฌโโโโโโโ
โ HTTP POST /invoke
โโโโโโโโผโโโโโโโ
โ Server MCP โ โ Express + Tool Registry
โ (Port 3000)โ
โโโโโโโโฌโโโโโโโ
โ Akses Sandbox
โโโโโโโโผโโโโโโโ
โ Direktori โ โ ./workspace/* (read-only)
โ Workspace โ
โโโโโโโโโโโโโโโ
๐ Alat MCP yang Tersedia
| Alat | Deskripsi | Input | Keamanan |
|---|---|---|---|
read_file |
Membaca konten file | { path: string } |
Batas ukuran 1MB, validasi path |
list_files |
Mencantumkan file dengan pola opsional | { directory?, pattern?, recursive? } |
Dibatasi dalam sandbox workspace |
search_files |
Mencari teks dalam file | { query, file_pattern?, case_sensitive? } |
Batas 100 hasil |
file_metadata |
Mendapatkan statistik file | { path: string } |
Operasi baca-saja |
directory_tree |
Struktur direktori visual | { depth?: number } |
Kedalaman maks 5 tingkat |
workspace_stats |
Statistik proyek | {} |
Komputasi yang dicache |
๐ Memulai
Prasyarat
- Node.js 20+
- npm 9+
Instalasi
-
Install dependensi server:
npm install -
Install dependensi UI:
cd src/ui && npm install && cd ../..
Menjalankan Sistem
-
Jalankan Server MCP (Terminal 1):
npm run serverServer berjalan di
http://localhost:3000 -
Jalankan Web UI (Terminal 2):
npm run uiUI berjalan di
http://localhost:5173 -
Buka browser Anda: Navigasi ke
http://localhost:5173
๐ก Contoh Pertanyaan
Coba pertanyaan bahasa alami ini di UI:
- "Tampilkan semua file TypeScript" โ Memanggil
list_filesdenganpattern: "*.ts" - "Baca utils.txt" โ Memanggil
read_filedenganpath: "utils.txt" - "Cari kata 'function'" โ Memanggil
search_filesdenganquery: "function" - "Tampilkan pohon direktori" โ Memanggil
directory_tree - "Tampilkan statistik workspace" โ Memanggil
workspace_stats - "Dapatkan metadata untuk utils.txt" โ Memanggil
file_metadata
๐ ๏ธ Struktur Proyek
mcp-playground/
โโโ src/
โ โโโ server/ # Server MCP (Express + TypeScript)
โ โ โโโ index.ts # Titik masuk server, rute, middleware
โ โ โโโ tools.ts # Pendaftaran alat dan handler
โ โ โโโ middleware/ # Pembatas tingkat permintaan
โ โ โโโ utils/ # Utilitas validasi
โ โ
โ โโโ client/ # Klien MCP (CLI + Penalaran)
โ โ โโโ index.ts # Titik masuk klien
โ โ โโโ reasoning.ts # Klasifikasi niat
โ โ
โ โโโ ui/ # Web UI (React + TypeScript + Vite)
โ โ โโโ src/
โ โ โ โโโ components/ # Komponen React
โ โ โ โโโ services/ # Klien API
โ โ โ โโโ types/ # Tipe TypeScript
โ โ โ โโโ styles/ # CSS Global
โ โ โโโ index.html
โ โ โโโ vite.config.ts
โ โ โโโ package.json
โ โ
โ โโโ types/ # Tipe TypeScript bersama
โ โโโ mcp.ts
โ
โโโ workspace/ # Direktori workspace dalam sandbox
โ โโโ utils.txt
โ
โโโ package.json
โโโ tsconfig.json
โโโ README.md
๐งช Mode CLI (Opsional)
Anda juga dapat menggunakan klien MCP dari baris perintah:
npm run client -- "Tampilkan semua file TypeScript"
๐ Mekanisme Keamanan
| Mekanisme | Implementasi | Tujuan |
|---|---|---|
| Validasi Jalur | validatePath() di utils/validation.ts |
Mencegah serangan directory traversal |
| Batas Ukuran File | Maks 1MB untuk operasi baca | Mencegah penipisan memori |
| Batas Hasil | Maks 100 hasil untuk pencarian | Mencegah serangan DoS |
| Pembatasan Tingkat | 100 permintaan/menit per IP | Mencegah penyalahgunaan |
| Batas Waktu Operasi | Eksekusi maks 5 detik | Menangani operasi yang berjalan lama |
| Sandbox Workspace | Akses file dibatasi ke ./workspace/ |
Mencegah akses file sistem |
๐จ Fitur UI
- Desain Mode Gelap: Palet warna profesional yang dioptimalkan untuk pengembang.
- Timeline Pemanggilan Alat: Riwayat visual semua pemanggilan alat dengan ikon status.
- Penampil Hasil Sadar-Konteks: Rendering berbeda untuk setiap tipe alat:
- Kode dengan penyorotan sintaks untuk
read_file. - Daftar file dengan metadata untuk
list_files. - Hasil pencarian dengan nomor baris untuk
search_files. - Dashboard statistik untuk
workspace_stats.
- Kode dengan penyorotan sintaks untuk
- Prompts Contoh: Saran awal cepat.
- Tata Letak Responsif: Berfungsi di desktop dan tablet.
๐ง Peningkatan Masa Depan
Fase 2: Alat Modifikasi File
- Tambahkan
write_file,delete_file,rename_file. - Implementasikan dialog konfirmasi dan fungsionalitas urungkan (undo).
Fase 3: Integrasi LLM Nyata
- Ganti penalaran berbasis kata kunci dengan API OpenAI/Anthropic/Gemini.
- Implementasikan penalaran chain-of-thought untuk pertanyaan kompleks.
Fase 4: Integrasi IDE
- Ekstensi VS Code.
- Plugin JetBrains.
- Integrasi LSP untuk pemahaman kode yang lebih mendalam.
๐งโ๐ป Pengembangan
Menjalankan Tes (Masa Depan)
npm test # Tes unit
npm run test:integration # Tes integrasi
npm run test:e2e # Tes end-to-end
Membangun untuk Produksi
cd src/ui && npm run build
๐ Lisensi
MIT
๐ Ucapan Terima Kasih
Dibangun dengan inspirasi dari:
- Anthropic's Model Context Protocol
- Cursor
- Claude Code
- Google Antigravity
๐ค Mengapa MCP?
MCP menyediakan antarmuka standar bagi LLM untuk berinteraksi dengan sistem eksternal secara aman:
- โ Alat eksplisit alih-alih perintah formulir bebas.
- โ Input terstruktur dengan validasi.
- โ Pemisahan klien-server yang jelas.
- โ Transparansi dalam pemanggilan alat.
- โ Desain safety-first dengan sandbox.
Proyek ini adalah demonstrasi portofolio yang memahami infrastruktur AI, mekanisme keamanan, dan pengembangan full-stack.
Dibuat dengan ๐ง mengikuti spesifikasi dan praktik terbaik MCP dalam keamanan AI.