MCP Developer Playground

Asisten pengembang interaktif bertenaga MCP dengan alat analisis ruang kerja berbasis LLM dan penalaran cerdas

typescriptnodejsexpressreactmcpllmai-toolsasisten-developerotomasi-workspacevite

Bagikan proyek ini:

Tentang Proyek

Workspace Developer MCP (MCP Developer Workspace)

image

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

  1. Install dependensi server:

    npm install
    
  2. Install dependensi UI:

    cd src/ui && npm install && cd ../..
    

Menjalankan Sistem

  1. Jalankan Server MCP (Terminal 1):

    npm run server
    

    Server berjalan di http://localhost:3000

  2. Jalankan Web UI (Terminal 2):

    npm run ui
    

    UI berjalan di http://localhost:5173

  3. Buka browser Anda: Navigasi ke http://localhost:5173


๐Ÿ’ก Contoh Pertanyaan

Coba pertanyaan bahasa alami ini di UI:

  • "Tampilkan semua file TypeScript" โ†’ Memanggil list_files dengan pattern: "*.ts"
  • "Baca utils.txt" โ†’ Memanggil read_file dengan path: "utils.txt"
  • "Cari kata 'function'" โ†’ Memanggil search_files dengan query: "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.
  • 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:


๐Ÿค” 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.

MCP Developer Playground | Daffathan Labs | Daffathan Labs