Plugged.in MCP Server
resmiProksi komprehensif yang menggabungkan beberapa server MCP menjadi satu MCP. Menyediakan penemuan dan pengelolaan alat, prompt, sumber daya, dan template di seluruh server, serta playground untuk debugging saat membangun server MCP.
Dokumentasi
plugged.in MCP Hub — Proxy · Pengetahuan · Memori · Alat
Persimpangan untuk Pertukaran Data AI
Hub MCP terpadu yang memberikan AI Anda Pengetahuan, Memori, dan Alat — bukan sekadar proxy. Kelola dan uji semua server MCP dari satu koneksi sambil mendukung alur kerja yang sadar dokumen dan diperkaya memori di berbagai klien.
📋 Gambaran Umum
Server Proxy MCP plugged.in adalah middleware canggih yang menggabungkan beberapa server Model Context Protocol (MCP) ke dalam satu antarmuka terpadu. Server ini mengambil konfigurasi alat, prompt, dan sumber daya dari aplikasi plugged.in dan secara cerdas merutekan permintaan ke server MCP yang sesuai.
Proxy ini memungkinkan integrasi mulus dengan klien MCP apa pun (Claude, Cline, Cursor, dll.) sambil menyediakan kemampuan manajemen tingkat lanjut melalui ekosistem plugged.in.
Pilar Hub: Pengetahuan · Memori · Alat · Proxy
Pengetahuan (RAG v2 / Pertukaran Dokumen AI)
Cari dan dasarkan keluaran model dengan pengambilan dokumen terpadu yang sadar atribusi. Server MCP dapat membuat dan mengelola dokumen di pustaka Anda dengan pembuatan versi, kontrol visibilitas, dan atribusi model. Gunakan RAG bawaan untuk mencari di semua sumber yang terhubung dan mengembalikan cuplikan serta metadata yang relevan.
Memori (Memori AI Persisten)
Memori berumur panjang dengan cakupan ruang kerja/profil yang bertahan di berbagai sesi. Hub terintegrasi dengan memori persisten aplikasi plugged.in sehingga tindakan dan wawasan agen dapat disimpan dan dipanggil kembali di berbagai tugas. Alat memori bawaan ada dalam peta jalan untuk mengekspos pola get/put/search dengan gesekan rendah di bawah model autentikasi yang sama.
Alat
Gabungkan kemampuan bawaan dengan server MCP hilir (STDIO, SSE, HTTP Streamable). Penemuan alat di-cache dan dapat disegarkan sesuai permintaan; penemuan tingkat hub mengembalikan katalog terpadu untuk klien MCP apa pun. Hub mendukung alat, sumber daya, templat sumber daya, dan prompt.
Proxy
Satu koneksi untuk setiap klien. Berjalan sebagai STDIO (default) atau HTTP Streamable dengan autentikasi API opsional dan mode stateless. Bekerja dengan Claude Desktop, Cline, Cursor, MCP Inspector, dan lainnya; pertahankan konfigurasi klien yang ada sambil memusatkan kebijakan dan telemetri.
⭐ Jika proyek ini bermanfaat, mohon pertimbangkan untuk memberikan bintang di GitHub! Ini membantu kami menjangkau lebih banyak pengembang dan memotivasi kami untuk terus meningkatkan.
✨ Fitur Utama
🚀 Kemampuan Inti
- AI Playground Bawaan: Uji MCP Anda secara instan dengan Claude, Gemini, OpenAI, dan xAI tanpa pengaturan klien apa pun
- Kompatibilitas MCP Universal: Bekerja dengan klien MCP apa pun termasuk Claude Desktop, Cline, dan Cursor
- Dukungan Multi-Server: Terhubung ke server MCP STDIO, SSE, dan HTTP Streamable
- Mode Transport Ganda: Jalankan proxy sebagai server STDIO (default) atau HTTP Streamable
- Pencarian Dokumen Terpadu: Cari di semua server yang terhubung dengan kemampuan RAG bawaan
- Pertukaran Dokumen AI (RAG v2): Server MCP dapat membuat dan mengelola dokumen di pustaka Anda dengan atribusi penuh
- Notifikasi dari Model Apa Pun: Terima notifikasi waktu nyata dengan pengiriman email opsional
- Lapisan Multi-Ruang Kerja: Beralih di antara set konfigurasi MCP yang berbeda dengan satu klik
- Proxy Berbasis API: Mengambil kemampuan dari API aplikasi plugged.in alih-alih penemuan langsung
- Dukungan MCP Penuh: Menangani alat, sumber daya, templat sumber daya, dan prompt
- Instruksi Kustom: Mendukung instruksi spesifik server yang diformat sebagai prompt MCP
🎯 Baru di v1.5.0 (RAG v2 - Pertukaran Dokumen AI)
- Pembuatan Dokumen AI: Server MCP sekarang dapat membuat dokumen langsung di pustaka Anda
- Pelacakan atribusi model penuh (AI mana yang membuat/memperbarui dokumen)
- Riwayat versi dengan pelacakan perubahan
- Deduplikasi konten melalui hashing SHA-256
- Dukungan untuk berbagai format: MD, TXT, JSON, HTML, PDF, dan lainnya
- Pencarian Dokumen Tingkat Lanjut: Kueri RAG yang ditingkatkan dengan penyaringan AI
- Filter berdasarkan model AI, penyedia, rentang tanggal, tag, dan tipe sumber
- Pencarian semantik dengan skor relevansi
- Pembuatan cuplikan otomatis dengan penyorotan kata kunci
- Dukungan untuk penyaringan: sumber
ai_generated,upload, atauapi
- Manajemen Dokumen melalui MCP:
- Atur visibilitas dokumen: pribadi, ruang kerja, atau publik
- Hubungan induk-anak untuk versi dokumen
- Organisasi berbasis profil bersama cakupan berbasis proyek
- Pelacakan kemajuan waktu nyata untuk pemrosesan dokumen
🎯 Fitur dari v1.4.0 (Dukungan Registry v2)
- Manajemen Token OAuth: Penanganan autentikasi OAuth yang mulus untuk server MCP HTTP Streamable
- Pengambilan token otomatis dari aplikasi plugged.in
- Penyimpanan token aman dan mekanisme penyegaran
- Tidak diperlukan autentikasi sisi klien
- Sistem Notifikasi yang Ditingkatkan: Dukungan notifikasi dua arah
- Kirim notifikasi ke aplikasi plugged.in
- Terima notifikasi dari server MCP
- Tandai notifikasi sebagai dibaca/belum dibaca
- Hapus notifikasi secara terprogram
- Analitik Tren: Pelacakan aktivitas waktu nyata
- Setiap panggilan alat dicatat dan dilacak
- Berkontribusi pada perhitungan server yang sedang tren
- Metrik penggunaan dan wawasan popularitas
- Integrasi Registry: Dukungan penuh untuk fitur Registry v2
- Penemuan server otomatis dari registry
- Pelacakan instalasi dan metrik
- Dukungan server komunitas
📦 Fitur dari v1.1.0
- Dukungan HTTP Streamable: Dukungan penuh untuk server MCP hilir yang menggunakan transport HTTP Streamable
- Mode Server HTTP: Jalankan proxy sebagai server HTTP dengan port yang dapat dikonfigurasi
- Autentikasi Fleksibel: Autentikasi token Bearer opsional untuk endpoint HTTP
- Manajemen Sesi: Pilih antara mode operasi stateful (berbasis sesi) atau stateless
🎯 Fitur Inti dari v1.0.0
- Notifikasi Waktu Nyata: Lacak semua aktivitas MCP dengan dukungan notifikasi yang komprehensif
- Integrasi RAG: Dukungan untuk kueri yang diperkaya dokumen melalui aplikasi plugged.in
- Skrip Inspektur: Alat pengujian otomatis untuk debugging dan pengembangan
- Pemantauan Kesehatan: Endpoint ping bawaan untuk pemantauan koneksi
🔧 Kategori Alat
Proxy menyediakan dua kategori alat yang berbeda:
🔧 Alat Bawaan Statis (Selalu Tersedia)
Alat-alat ini dibangun ke dalam proxy dan berfungsi tanpa konfigurasi server apa pun:
pluggedin_discover_tools- Penemuan cerdas dengan caching untuk hasil instanpluggedin_ask_knowledge_base- Pencarian RAG di seluruh dokumen Anda dengan kemampuan penyaringan AIpluggedin_send_notification- Kirim notifikasi dengan pengiriman email opsionalpluggedin_create_document- Buat dokumen yang dihasilkan AI di pustaka Andapluggedin_list_documents- Daftar dokumen dengan opsi penyaringanpluggedin_search_documents- Cari dokumen tertentu berdasarkan kueripluggedin_get_document- Ambil konten lengkap dokumen tertentu berdasarkan IDpluggedin_update_document- Perbarui atau tambahkan ke dokumen yang ada
📋 Alat Papan Klip (Sistem Memori)
pluggedin_clipboard_set- Atur entri papan klip berdasarkan nama (kunci semantik) atau indekspluggedin_clipboard_get- Dapatkan entri papan klip berdasarkan nama, indeks, atau daftar semuapluggedin_clipboard_delete- Hapus entri papan klip berdasarkan nama, indeks, atau hapus semuapluggedin_clipboard_list- Daftar semua entri papan klip dengan metadatapluggedin_clipboard_push- Dorong nilai dengan indeks yang bertambah otomatis (dorong tumpukan)pluggedin_clipboard_pop- Keluarkan entri dengan indeks tertinggi (perilaku LIFO)
⚡ Alat MCP Dinamis (Dari Server yang Terhubung)
Alat-alat ini berasal dari server MCP yang Anda konfigurasi dan dapat diaktifkan/dinonaktifkan:
- Alat basis data (PostgreSQL, SQLite, dll.)
- Alat sistem file
- Alat integrasi API
- Alat kustom dari server MCP mana pun
Alat penemuan secara cerdas menampilkan kedua kategori, memberikan model AI akses langsung ke semua kemampuan yang tersedia.
🚀 Penggunaan Alat Penemuan
# Quick discovery - returns cached data instantly
pluggedin_discover_tools()
# Force refresh - shows current tools + runs background discovery
pluggedin_discover_tools({"force_refresh": true})
# Discover specific server
pluggedin_discover_tools({"server_uuid": "uuid-here"})
Contoh Respons:
## 🔧 Static Built-in Tools (Always Available):
1. **pluggedin_discover_tools** - Smart discovery with caching
2. **pluggedin_rag_query** - RAG v2 search across documents with AI filtering
3. **pluggedin_send_notification** - Send notifications
4. **pluggedin_create_document** - (Coming Soon) Create AI-generated documents
## ⚡ Dynamic MCP Tools (8) - From Connected Servers:
1. **query** - Run read-only SQL queries
2. **generate_random_integer** - Generate secure random integers
...
📋 Contoh Penggunaan Papan Klip
Sistem papan klip menyediakan memori persisten untuk alur kerja AI:
# Store a named entry (upserts if exists)
pluggedin_clipboard_set({
"name": "customer_context",
"value": "{\"name\": \"John Doe\", \"account_id\": \"12345\"}",
"contentType": "application/json"
})
# Store an indexed entry for ordered pipelines
pluggedin_clipboard_set({
"idx": 0,
"value": "First pipeline step result",
"createdByTool": "data_processor"
})
# Push to stack (auto-incrementing index)
pluggedin_clipboard_push({
"value": "Analysis result from step 1",
"contentType": "text/plain"
})
# Get a specific entry by name
pluggedin_clipboard_get({"name": "customer_context"})
# Pop from stack (LIFO - returns and removes highest index)
pluggedin_clipboard_pop()
# List all entries with metadata
pluggedin_clipboard_list({"limit": 20})
# Delete specific entry
pluggedin_clipboard_delete({"name": "customer_context"})
# Clear all clipboard entries
pluggedin_clipboard_delete({"clearAll": true})
📚 Contoh Penggunaan RAG v2
Sistem RAG v2 yang ditingkatkan memungkinkan server MCP membuat dan mencari dokumen dengan atribusi AI penuh:
# Search for documents created by specific AI models
pluggedin_rag_query({
"query": "system architecture",
"filters": {
"modelName": "Claude 3 Opus",
"source": "ai_generated",
"tags": ["technical"]
}
})
# Search across all document sources
pluggedin_rag_query({
"query": "deployment guide",
"filters": {
"dateFrom": "2024-01-01",
"visibility": "workspace"
}
})
# Future: Create AI-generated documents (Coming Soon)
pluggedin_create_document({
"title": "Analysis Report",
"content": "# Market Analysis\n\nDetailed findings...",
"format": "md",
"tags": ["analysis", "market"],
"metadata": {
"model": {
"name": "Claude 3 Opus",
"provider": "Anthropic"
}
}
})
🚀 Mulai Cepat
Prasyarat
- Node.js 18+ (disarankan v20+)
- Kunci API dari aplikasi plugged.in (dapatkan di plugged.in/api-keys)
Instalasi
# Install and run with npx (latest v1.0.0)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
🔄 Meningkatkan ke v1.0.0
Untuk instalasi yang sudah ada, lihat Panduan Migrasi kami untuk petunjuk peningkatan terperinci.
# Quick upgrade
npx -y @pluggedin/[email protected] --pluggedin-api-key YOUR_API_KEY
Konfigurasi untuk Klien MCP
Claude Desktop
Tambahkan berikut ini ke konfigurasi Claude Desktop Anda:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cline
Tambahkan berikut ini ke konfigurasi Cline Anda:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cursor
Untuk Cursor, Anda dapat menggunakan argumen baris perintah alih-alih variabel lingkungan:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
⚙️ Opsi Konfigurasi
Variabel Lingkungan
| Variabel | Deskripsi | Diperlukan | Default |
|---|---|---|---|
PLUGGEDIN_API_KEY | Kunci API dari aplikasi plugged.in | Ya | - |
PLUGGEDIN_API_BASE_URL | URL dasar untuk aplikasi plugged.in | Tidak | https://plugged.in |
Argumen Baris Perintah
Argumen baris perintah lebih diutamakan daripada variabel lingkungan:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY --pluggedin-api-base-url https://your-custom-url.com
Opsi Transport
| Opsi | Deskripsi | Default |
|---|---|---|
--transport <type> | Tipe transport: stdio atau streamable-http | stdio |
--port <number> | Port untuk server HTTP Streamable | 12006 |
--stateless | Aktifkan mode stateless untuk HTTP Streamable | false |
--require-api-auth | Wajibkan kunci API untuk permintaan HTTP Streamable | false |
Untuk daftar opsi lengkap:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --help
🌐 Mode HTTP Streamable
Proxy dapat berjalan sebagai server HTTP alih-alih STDIO, memungkinkan akses berbasis web dan koneksi jarak jauh.
Penggunaan Dasar
# Run as HTTP server on default port (12006)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --pluggedin-api-key YOUR_API_KEY
# Custom port
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --port 8080 --pluggedin-api-key YOUR_API_KEY
# With authentication required
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --require-api-auth --pluggedin-api-key YOUR_API_KEY
# Stateless mode (new session per request)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --stateless --pluggedin-api-key YOUR_API_KEY
Endpoint HTTP
POST /mcp- Kirim pesan MCPGET /mcp- Aliran server-sent events (opsional)DELETE /mcp- Akhiri sesiGET /health- Endpoint pemeriksaan kesehatan
Manajemen Sesi
Dalam mode stateful (default), gunakan header mcp-session-id untuk mempertahankan sesi:
# First request creates a session
curl -X POST http://localhost:12006/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
# Subsequent requests use the same session
curl -X POST http://localhost:12006/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: YOUR_SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"tool_name"},"id":2}'
Autentikasi
Saat menggunakan --require-api-auth, sertakan kunci API Anda sebagai token Bearer:
curl -X POST http://localhost:12006/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"ping","id":1}'
🐳 Penggunaan Docker
Anda juga dapat membangun dan menjalankan server proxy menggunakan Docker.
Membangun Image
Pastikan Anda telah menginstal dan menjalankan Docker. Arahkan ke direktori pluggedin-mcp dan jalankan:
docker build -t pluggedin-mcp-proxy:latest .
File .dockerignore disertakan untuk mengoptimalkan konteks build.
Menjalankan Kontainer
Mode STDIO (Default)
Jalankan kontainer dalam mode STDIO untuk pengujian MCP Inspector:
docker run -it --rm \
-e PLUGGEDIN_API_KEY="YOUR_API_KEY" \
-e PLUGGEDIN_API_BASE_URL="YOUR_API_BASE_URL" \
--name pluggedin-mcp-container \
pluggedin-mcp-proxy:latest
Mode HTTP Streamable
Jalankan kontainer sebagai server HTTP:
docker run -d --rm \
-e PLUGGEDIN_API_KEY="YOUR_API_KEY" \
-e PLUGGEDIN_API_BASE_URL="YOUR_API_BASE_URL" \
-p 12006:12006 \
--name pluggedin-mcp-http \
pluggedin-mcp-proxy:latest \
--transport streamable-http --port 12006
Ganti YOUR_API_KEY dan YOUR_API_BASE_URL (jika tidak menggunakan default https://plugged.in).
Pengujian dengan MCP Inspector
Saat kontainer berjalan, Anda dapat menghubungkannya menggunakan MCP Inspector:
npx @modelcontextprotocol/inspector docker://pluggedin-mcp-container
Ini akan terhubung ke input/output standar dari kontainer yang sedang berjalan.
Menghentikan Kontainer
Tekan Ctrl+C di terminal tempat docker run dijalankan. Flag --rm memastikan kontainer dihapus secara otomatis saat dihentikan.
☁️ Deployment Smithery Cloud
Deploy Proxy MCP plugged.in ke Smithery Cloud untuk akses terhosting dan selalu tersedia ke server MCP Anda.
Mulai Cepat
- Kunjungi smithery.ai dan masuk
- Hubungkan akun GitHub Anda dan pilih repositori
pluggedin-mcp - Konfigurasikan kunci API Plugged.in Anda di antarmuka Smithery
- Deploy dan dapatkan endpoint HTTPS Anda
Manfaat
- Ketersediaan 24/7: Proksi Anda selalu berjalan
- Tanpa Konfigurasi: Smithery mendeteksi pengaturan secara otomatis dari
smithery.yaml - Penskalaan Otomatis: Menangani banyak koneksi bersamaan
- Akses Web: Sempurna untuk aplikasi web dan klien jarak jauh
Dokumentasi
Untuk petunjuk penerapan lengkap, opsi konfigurasi, pemecahan masalah, dan detail teknis, lihat:
Agen Otonom (Pratinjau)
Hub ini dirancang untuk mendukung loop agentik secara menyeluruh:
MCP Client → plugged.in MCP Hub → (Plan → Act → Reflect)
↘ Knowledge ↘ Memory ↘ Tools
- Rencanakan — turunkan tujuan dan batasan, bentuk grafik tugas.
- Bertindak — panggil alat dari katalog terpadu; rutekan dengan aman di server STDIO/SSE/HTTP.
- Refleksikan — simpan hasil ke dalam Memori dan Pengetahuan (dokumen, catatan, artefak) untuk meningkatkan langkah selanjutnya.
Keamanan & Operasi
Aktifkan --require-api-auth dalam mode HTTP Streamable; gunakan daftar izin untuk perintah, argumen, dan env. Gabungkan validasi tingkat server dengan prompt sisi klien yang diperkuat terhadap injeksi prompt. Manfaatkan logging/telemetri yang ada untuk melacak penggunaan alat dan mutasi dokumen.
🏗️ Arsitektur Sistem
Server Proksi MCP plugged.in bertindak sebagai jembatan antara klien MCP dan beberapa server MCP yang mendasarinya:
sequenceDiagram
participant MCPClient as MCP Client (e.g. Claude Desktop)
participant PluggedinMCP as plugged.in MCP Proxy
participant PluggedinApp as plugged.in App
participant MCPServers as Underlying MCP Servers
MCPClient ->> PluggedinMCP: Request list tools/resources/prompts
PluggedinMCP ->> PluggedinApp: Get capabilities via API
PluggedinApp ->> PluggedinMCP: Return capabilities (prefixed)
MCPClient ->> PluggedinMCP: Call tool/read resource/get prompt
alt Standard capability
PluggedinMCP ->> PluggedinApp: Resolve capability to server
PluggedinApp ->> PluggedinMCP: Return server details
PluggedinMCP ->> MCPServers: Forward request to target server
MCPServers ->> PluggedinMCP: Return response
else Custom instruction
PluggedinMCP ->> PluggedinApp: Get custom instruction
PluggedinApp ->> PluggedinMCP: Return formatted messages
end
PluggedinMCP ->> MCPClient: Return response
alt Discovery tool (Smart Caching)
MCPClient ->> PluggedinMCP: Call pluggedin_discover_tools
alt Cached data available
PluggedinMCP ->> PluggedinApp: Check cached capabilities
PluggedinApp ->> PluggedinMCP: Return cached tools/resources/prompts
PluggedinMCP ->> MCPClient: Return instant results (static + dynamic)
else Force refresh or no cache
PluggedinMCP ->> PluggedinApp: Trigger background discovery
PluggedinMCP ->> MCPClient: Return current tools + "discovery running"
PluggedinApp ->> MCPServers: Connect and discover capabilities (background)
MCPServers ->> PluggedinApp: Return fresh capabilities
end
end
🔄 Alur Kerja
- Konfigurasi: Proksi mengambil konfigurasi server dari Aplikasi plugged.in
- Penemuan Cerdas (
pluggedin_discover_tools):- Pemeriksaan Cache: Pertama memeriksa data cache yang ada (< 1 detik)
- Respons Instan: Mengembalikan alat statis + alat dinamis yang di-cache segera
- Penyegaran Latar Belakang: Untuk
force_refresh=true, menjalankan penemuan di latar belakang sambil menampilkan alat saat ini - Penemuan Baru: Hanya menjalankan penemuan penuh jika tidak ada data cache
- Daftar Kapabilitas: Proksi mengambil kapabilitas yang ditemukan dari API Aplikasi plugged.in
tools/list: Mengambil dari/api/tools(termasuk alat statis + dinamis)resources/list: Mengambil dari/api/resourcesresource-templates/list: Mengambil dari/api/resource-templatesprompts/list: Mengambil dari/api/promptsdan/api/custom-instructions, menggabungkan hasil
- Resolusi Kapabilitas: Proksi menyelesaikan kapabilitas ke server target
tools/call: Mengurai awalan dari nama alat, mencari server di peta internalresources/read: Memanggil/api/resolve/resource?uri=...untuk mendapatkan detail serverprompts/get: Memeriksa awalan instruksi kustom atau memanggil/api/resolve/prompt?name=...
- Perutean Permintaan: Permintaan dirutekan ke server MCP yang sesuai
- Penanganan Respons: Respons dari server yang mendasari dikembalikan ke klien
🔒 Fitur Keamanan
Proksi MCP plugged.in menerapkan langkah-langkah keamanan komprehensif untuk melindungi sistem dan data Anda:
Validasi & Sanitasi Input
- Pencegahan Injeksi Perintah: Semua perintah dan argumen divalidasi terhadap daftar izin sebelum eksekusi
- Keamanan Variabel Lingkungan: Parsing aman file
.envdengan penanganan kutipan dan nilai multibaris yang tepat - Validasi Token: Pola regex kuat untuk kunci API dan token autentikasi (32-64 karakter heksadesimal)
Keamanan Jaringan
- Perlindungan SSRF: Validasi URL memblokir akses ke:
- Alamat localhost dan loopback (127.0.0.1, ::1)
- Rentang IP pribadi (10.x, 172.16-31.x, 192.168.x)
- Alamat link-local (169.254.x)
- Rentang multicast dan yang dicadangkan
- Port layanan internal umum (SSH, basis data, dll.)
- Validasi Header: Perlindungan terhadap injeksi header dengan:
- Pemblokiran header berbahaya
- Validasi nama header sesuai RFC 7230
- Deteksi karakter kontrol
- Batas ukuran header (maks 8KB)
- Pembatasan Laju:
- Panggilan alat: 60 permintaan per menit
- Panggilan API: 100 permintaan per menit
- Sanitasi Kesalahan: Mencegah pengungkapan informasi dengan membersihkan pesan kesalahan
Keamanan Proses
- Eksekusi Perintah Aman: Menggunakan
execFile()alih-alihexec()untuk mencegah injeksi shell - Daftar Izin Perintah: Hanya mengizinkan eksekusi:
node,npx- Perintah Node.jspython,python3- Perintah Pythonuv,uvx,uvenv- Alat UV Python
- Sanitasi Argumen: Menghapus metakarakter shell dan karakter kontrol dari semua argumen
- Validasi Variabel Lingkungan: Hanya mengizinkan kunci alfanumerik dengan garis bawah
Keamanan HTTP Streamable
- Autentikasi Malas: Penemuan alat tidak memerlukan autentikasi, meningkatkan kompatibilitas
- Keamanan Sesi: Pembuatan ID sesi yang aman secara kriptografis
- Perlindungan CORS: Header CORS yang dapat dikonfigurasi untuk akses web
- Batas Ukuran Permintaan: Mencegah DoS melalui muatan besar
Utilitas Keamanan
Modul security-utils.ts khusus menyediakan:
- Validasi token Bearer
- Validasi URL dengan perlindungan SSRF
- Sanitasi argumen perintah
- Validasi variabel lingkungan
- Implementasi pembatasan laju
- Sanitasi pesan kesalahan
Untuk implementasi keamanan terperinci, lihat SECURITY.md.
🧩 Integrasi dengan Aplikasi plugged.in
Server Proksi MCP plugged.in dirancang untuk bekerja mulus dengan Aplikasi plugged.in, yang menyediakan:
- Antarmuka berbasis web untuk mengelola konfigurasi server MCP
- Penemuan kapabilitas terpusat (Alat, Sumber Daya, Templat, Prompt)
- Pustaka Dokumen RAG v2: Unggah dokumen dan aktifkan konten yang dihasilkan AI dengan atribusi penuh
- Manajemen instruksi kustom
- Dukungan multi-ruang kerja untuk set konfigurasi yang berbeda
- Tempat bermain interaktif untuk menguji alat MCP dengan model AI apa pun
- Autentikasi pengguna dan manajemen kunci API
- Pertukaran Dokumen AI: Buat, cari, dan kelola dokumen dengan pelacakan atribusi model
📚 Sumber Daya Terkait
- Repositori Aplikasi plugged.in
- Spesifikasi Model Context Protocol (MCP)
- Dokumentasi Claude Desktop
- Dokumentasi Cline
🤝 Berkontribusi
Kontribusi sangat diterima! Silakan kirim Pull Request.
📝 Pembaruan Terbaru
Versi 1.9.0 (September 2025) - Peningkatan Keamanan
🔒 Sanitasi HTML yang Ditingkatkan
- Sanitasi Standar Industri: Mengganti sanitasi HTML berbasis regex kustom dengan pustaka
sanitize-html - Pencegahan XSS: Perlindungan komprehensif terhadap serangan skrip lintas situs
- Keamanan Atribut HTML: Sanitasi yang ditingkatkan untuk konteks atribut HTML (kutipan, ampersand)
- Injeksi String Format: Memperbaiki kerentanan injeksi string format dalam logging
- Pengujian Keamanan: Cakupan pengujian komprehensif untuk semua fungsi sanitasi
🛡️ Peningkatan Keamanan
- Kepatuhan CodeQL: Menyelesaikan semua kerentanan keamanan yang diidentifikasi oleh analisis GitHub CodeQL
- Validasi Input: Memperkuat validasi input dan sanitasi di semua fungsi
- Pembaruan Dependensi: Menambahkan
sanitize-htmluntuk penyaringan konten HTML yang kuat - Cakupan Pengujian: Suite pengujian keamanan yang ditingkatkan dengan verifikasi pencegahan serangan XSS
Versi 1.5.0 (Januari 2025) - RAG v2
🤖 Pertukaran Dokumen AI
- Dokumen yang Dihasilkan AI: Server MCP sekarang dapat membuat dokumen di pustaka Anda dengan atribusi AI penuh
- Pelacakan Atribusi Model: Riwayat lengkap model AI mana yang membuat atau memperbarui setiap dokumen
- Pencarian Dokumen Lanjutan: Filter berdasarkan model AI, penyedia, tanggal, tag, dan jenis sumber
- Pembuatan Versi Dokumen: Lacak perubahan dan pertahankan riwayat versi untuk konten yang dihasilkan AI
- Dukungan Multi-Sumber: Dokumen dari unggahan, generasi AI, atau integrasi API
🔍 Kemampuan RAG yang Ditingkatkan
- Pencarian Semantik: Skor relevansi yang ditingkatkan dengan pencarian teks penuh PostgreSQL
- Penyaringan Cerdas: Filter hasil berdasarkan visibilitas, atribusi model, dan sumber dokumen
- Generasi Cuplikan: Ekstraksi cuplikan otomatis dengan penyorotan kata kunci
- Optimasi Kinerja: Kueri lebih cepat dengan pengindeksan yang dioptimalkan
Versi 1.2.0 (Januari 2025)
🔒 Peningkatan Keamanan
- Validasi URL: Perlindungan SSRF komprehensif memblokir IP pribadi, localhost, dan port berbahaya
- Daftar Izin Perintah: Hanya perintah yang disetujui (node, npx, python, dll.) yang dapat dieksekusi
- Sanitasi Header: Perlindungan terhadap serangan injeksi header
- Autentikasi Malas: Kompatibilitas Smithery yang ditingkatkan dengan penemuan alat bebas autentikasi
🚀 Peningkatan Kinerja
- Build Docker yang Dioptimalkan: Build multi-tahap untuk jejak kontainer minimal
- Hanya Dependensi Produksi: File pengujian dan dependensi pengembangan dikecualikan dari image Docker
- Efisiensi Sumber Daya: Dirancang untuk penerapan di lingkungan dengan sumber daya terbatas
🔧 Peningkatan Teknis
- Penanganan kesalahan yang ditingkatkan dalam transport HTTP Streamable
- Pembersihan sesi dan manajemen memori yang lebih baik
- Tipe TypeScript dan organisasi kode yang ditingkatkan
Versi 1.1.0 (Desember 2024)
🚀 Fitur Baru
- Dukungan HTTP Streamable: Terhubung ke server MCP hilir menggunakan transport HTTP Streamable modern
- Mode Server HTTP: Jalankan proksi sebagai server HTTP untuk akses berbasis web
- Manajemen Sesi Fleksibel: Pilih antara mode stateless atau stateful
- Opsi Autentikasi: Autentikasi token Bearer opsional untuk endpoint HTTP
- Pemantauan Kesehatan: Endpoint
/healthuntuk pemantauan layanan
🔧 Peningkatan Teknis
- Memperbarui MCP SDK ke v1.13.1 untuk dukungan protokol terbaru
- Menambahkan integrasi Express.js untuk fungsionalitas server HTTP
- Tipe TypeScript yang ditingkatkan untuk pengalaman pengembang yang lebih baik
Versi 1.0.0 (Juni 2025)
🎯 Fitur Utama
- Sistem Notifikasi Real-Time: Lacak semua aktivitas MCP dengan dukungan notifikasi komprehensif
- Integrasi RAG: Dukungan untuk kueri yang ditingkatkan dokumen melalui Aplikasi plugged.in
- Skrip Inspektur: Alat pengujian otomatis baru untuk debugging dan pengembangan
- Pemantauan Kesehatan: Endpoint ping bawaan untuk pemantauan koneksi
🔒 Peningkatan Keamanan
- Validasi Input: Validasi dan sanitasi standar industri untuk semua input
- Keamanan URL: Validasi URL yang ditingkatkan dengan perlindungan SSRF
- Keamanan Lingkungan: Parsing aman variabel lingkungan dengan dotenv
- Sanitasi Kesalahan: Mencegah pengungkapan informasi dalam respons kesalahan
🐛 Perbaikan Bug
- Memperbaiki interferensi protokol JSON-RPC (pemisahan stdout vs stderr)
- Menyelesaikan validasi URL localhost untuk lingkungan pengembangan
- Memperbaiki penanganan kunci API dalam skrip inspektur
- Meningkatkan stabilitas koneksi dan manajemen memori
🔧 Alat Pengembang
- Skrip inspektur baru untuk pengujian otomatis
- Pesan kesalahan dan kemampuan debugging yang ditingkatkan
- Logging terstruktur dengan penggunaan stderr yang tepat
- Keamanan tipe TypeScript yang ditingkatkan
Lihat Catatan Rilis untuk detail lengkap.
🧪 Pengujian dan Pengembangan
Pengembangan Lokal
Pengujian disertakan untuk tujuan pengembangan tetapi dikecualikan dari build Docker untuk meminimalkan jejak kontainer.
# Run tests locally
npm test
# or
./scripts/test-local.sh
# Run tests in watch mode
npm run test:watch
# Run tests with UI
npm run test:ui
Build Docker Ringan
Image Docker dioptimalkan untuk jejak minimal:
- Proses build multi-tahap
- Hanya dependensi produksi di image akhir
- File pengujian dan dependensi pengembangan dikecualikan
- Dioptimalkan untuk lingkungan dengan sumber daya terbatas
# Build optimized Docker image
docker build -t pluggedin-mcp .
# Check image size
docker images pluggedin-mcp
📄 Lisensi
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE untuk detailnya.
🙏 Penghargaan
- Terinspirasi oleh Server Proksi MCP
- Dibangun di atas Model Context Protocol