Blueprint MCP Server
resmiOtomatisasi peramban melalui MCP untuk Chrome dan Firefox
Dokumentasi
Blueprint MCP
Kendalikan peramban nyata Anda dengan AI melalui Model Context Protocol
Apa ini?
Sebuah server MCP (Model Context Protocol) yang memungkinkan asisten AI mengendalikan peramban nyata Anda (Chrome, Firefox, atau Opera) melalui ekstensi peramban. Tidak seperti alat otomatisasi headless, ini menggunakan profil peramban asli Anda dengan semua sesi yang masuk, cookie, dan ekstensi tetap utuh.
Sempurna untuk: Agen AI yang perlu berinteraksi dengan situs di mana Anda sudah masuk, atau yang perlu menghindari deteksi bot.
Mengapa menggunakan ini daripada Playwright/Puppeteer?
| Blueprint MCP | Playwright/Puppeteer |
|---|---|
| ✅ Peramban nyata (bukan headless) | ❌ Headless atau instans peramban baru |
| ✅ Tetap masuk ke semua situs Anda | ❌ Harus otentikasi ulang setiap sesi |
| ✅ Menghindari deteksi bot (menggunakan sidik jari asli) | ⚠️ Sering terdeteksi sebagai peramban otomatis |
| ✅ Bekerja dengan ekstensi peramban yang ada | ❌ Tidak ada dukungan ekstensi |
| ✅ Tanpa penyiapan - langsung berfungsi | ⚠️ Memerlukan instalasi peramban |
| ✅ Dukungan Chrome, Firefox, Edge, Opera | ✅ Dukungan Chrome, Firefox, Safari |
Instalasi
1. Instal Server MCP
npm install -g @railsblueprint/blueprint-mcp
2. Instal Ekstensi Peramban
Pilih peramban Anda:
Chrome / Edge / Opera
- Chrome Web Store (berfungsi untuk semua peramban Chromium)
- Manual: Unduh dari Releases, lalu muat tanpa paket di
chrome://extensions/(Chrome),edge://extensions/(Edge), atauopera://extensions/(Opera)
Firefox
- Firefox Add-ons
- Manual: Unduh dari Releases, lalu muat di
about:debugging#/runtime/this-firefox
3. Konfigurasikan klien MCP Anda
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["@railsblueprint/blueprint-mcp@latest"]
}
}
}
Claude Code (CLI bertenaga AI):
claude mcp add browser npx @railsblueprint/blueprint-mcp@latest
VS Code / Cursor (.vscode/settings.json):
{
"mcp.servers": {
"browser": {
"command": "npx",
"args": ["@railsblueprint/blueprint-mcp@latest"]
}
}
}
Mulai Cepat
- Mulai klien MCP Anda (Claude Desktop, Cursor, dll.)
- Klik ikon ekstensi Blueprint MCP di peramban Anda
- Ekstensi otomatis terhubung ke server MCP
- Minta asisten AI Anda untuk menjelajah!
Contoh percakapan:
You: "Go to GitHub and check my notifications"
AI: *navigates to github.com, clicks notifications, reads content*
You: "Fill out this form with my info"
AI: *reads form fields, fills them in, submits*
You: "Take a screenshot of this page"
AI: *captures screenshot and shows you*
Cara Kerja
┌─────────────────────────┐
│ AI Assistant │
│ (Claude, GPT, etc) │
└───────────┬─────────────┘
│
│ MCP Protocol
↓
┌─────────────────────────┐
│ MCP Client │
│ (Claude Desktop, etc) │
└───────────┬─────────────┘
│
│ stdio/JSON-RPC
↓
┌─────────────────────────┐
│ blueprint-mcp │
│ (this package) │
└───────────┬─────────────┘
│
│ WebSocket (localhost:5555 or cloud relay)
↓
┌─────────────────────────┐
│ Browser Extension │
└───────────┬─────────────┘
│
│ Browser Extension APIs
↓
┌─────────────────────────┐
│ Your Browser │
│ (real profile) │
└─────────────────────────┘
Gratis vs PRO
Tingkat Gratis (Default)
- ✅ Koneksi WebSocket lokal (port 5555)
- ✅ Instans peramban tunggal
- ✅ Semua fitur otomatisasi peramban
- ✅ Tidak perlu akun
- ❌ Terbatas pada mesin yang sama
Tingkat PRO
- ✅ Relai cloud - terhubung dari mana saja
- ✅ Beberapa peramban - kendalikan beberapa instans peramban
- ✅ Akses bersama - beberapa klien AI dapat menggunakan peramban yang sama
- ✅ Sambung ulang otomatis - mempertahankan koneksi melalui perubahan jaringan
- ✅ Dukungan prioritas
Alat yang Tersedia
Server MCP menyediakan alat-alat ini untuk asisten AI:
Manajemen Koneksi
enable- Aktifkan otomatisasi peramban (langkah pertama yang diperlukan)disable- Nonaktifkan otomatisasi perambanstatus- Periksa status koneksiauth- Masuk ke akun PRO (untuk fitur relai cloud)
Manajemen Tab
browser_tabs- Daftar, buat, lampirkan ke, atau tutup tab peramban
Navigasi
browser_navigate- Navigasi ke URLbrowser_navigate_back- Kembali dalam riwayat
Konten & Inspeksi
browser_snapshot- Dapatkan konten halaman yang dapat diakses (disarankan untuk membaca halaman)browser_take_screenshot- Ambil tangkapan layar visualbrowser_console_messages- Dapatkan log konsol perambanbrowser_network_requests- Alat pemantauan dan pemutaran ulang jaringan yang kuat dengan beberapa tindakan:- Mode daftar (default): Ikhtisar ringan dengan penyaringan dan paginasi (default: 20 permintaan)
- Filter:
urlPattern(substring),method(GET/POST),status(200/404),resourceType(xhr/fetch/script) - Paginasi:
limit(default: 20),offset(default: 0) - Contoh:
action='list', urlPattern='api/users', method='GET', limit=10
- Filter:
- Mode detail: Data permintaan/respons lengkap untuk permintaan tertentu termasuk header dan body
- Penyaringan JSONPath: Kueri respons JSON besar menggunakan sintaks JSONPath (mis.,
$.data.items[0]) - Mode pemutaran ulang: Jalankan kembali permintaan yang ditangkap dengan header dan otentikasi asli
- Mode hapus: Hapus riwayat yang ditangkap untuk membebaskan memori
- Contoh:
action='details', requestId='12345.67', jsonPath='$.data.users[0]'
- Mode daftar (default): Ikhtisar ringan dengan penyaringan dan paginasi (default: 20 permintaan)
browser_extract_content- Ekstrak konten halaman sebagai markdown
Interaksi
browser_interact- Lakukan beberapa tindakan secara berurutan (klik, ketik, arahkan, tunggu, dll.)browser_click- Klik pada elemenbrowser_type- Ketik teks ke dalam inputbrowser_hover- Arahkan kursor ke elemenbrowser_select_option- Pilih opsi dropdownbrowser_fill_form- Isi beberapa bidang formulir sekaligusbrowser_press_key- Tekan tombol keyboardbrowser_drag- Seret dan lepas elemen
Lanjutan
browser_evaluate- Jalankan JavaScript dalam konteks halamanbrowser_handle_dialog- Tangani dialog alert/confirm/promptbrowser_file_upload- Unggah file melalui input filebrowser_window- Ubah ukuran, minimalkan, maksimalkan jendela perambanbrowser_pdf_save- Simpan halaman saat ini sebagai PDFbrowser_performance_metrics- Dapatkan metrik kinerjabrowser_verify_text_visible- Verifikasi teks ada (untuk pengujian)browser_verify_element_visible- Verifikasi elemen ada (untuk pengujian)
Manajemen Ekstensi
browser_list_extensions- Daftar ekstensi peramban yang terinstalbrowser_reload_extensions- Muat ulang ekstensi tanpa paket (berguna selama pengembangan)
Pengembangan
Prasyarat
- Node.js 18+
- Peramban yang didukung (Chrome, Firefox, Edge, atau Opera)
- npm atau yarn
Penyiapan
# Clone the repository
git clone https://github.com/railsblueprint/blueprint-mcp.git
cd blueprint-mcp
# Install server dependencies
cd server
npm install
cd ..
# Install Chrome extension dependencies
cd extensions/chrome
npm install
cd ../..
Menjalankan dalam Pengembangan
Terminal 1: Mulai server MCP dalam mode debug
cd server
node cli.js --debug
Terminal 2: Bangun ekstensi Chrome
cd extensions/chrome
npm run build
# or for watch mode:
npm run dev
Catatan: Ekstensi Firefox tidak memerlukan langkah build - ia menggunakan JavaScript vanilla dan dapat dimuat langsung dari extensions/firefox/
Muat ekstensi di peramban Anda:
Untuk peramban Chromium (Chrome, Edge, Opera):
- Buka
chrome://extensions/(Chrome),edge://extensions/(Edge), atauopera://extensions/(Opera) - Aktifkan "Mode pengembang"
- Klik "Muat tanpa paket"
- Pilih folder
extensions/chrome/dist
Untuk Firefox:
- Buka
about:debugging#/runtime/this-firefox - Klik "Muat Add-on Sementara"
- Pilih file apa pun dari folder
extensions/firefox
Struktur Proyek
blueprint-mcp/
├── server/ # MCP Server
│ ├── cli.js # Server entry point
│ ├── src/
│ │ ├── statefulBackend.js # Connection state management
│ │ ├── unifiedBackend.js # MCP tool implementations
│ │ ├── extensionServer.js # WebSocket server for extension
│ │ ├── mcpConnection.js # Proxy/relay connection handling
│ │ ├── transport.js # Transport abstraction layer
│ │ ├── oauth.js # OAuth2 client for PRO features
│ │ └── fileLogger.js # Debug logging
│ └── tests/ # Server test suites
├── extensions/ # Browser Extensions
│ ├── chrome/ # Chrome extension (TypeScript + Vite)
│ │ └── src/
│ │ ├── background.ts # Extension service worker
│ │ ├── content-script.ts # Page content injection
│ │ └── utils/ # Utility functions
│ ├── firefox/ # Firefox extension (Vanilla JS)
│ │ └── src/
│ │ ├── background.js # Service worker
│ │ └── content-script.js # Page injection
│ ├── shared/ # Shared code between extensions
│ └── build-*.js # Build scripts for each browser
├── docs/ # Documentation
│ ├── testing/ # Test documentation
│ ├── architecture/ # Architecture docs
│ └── stores/ # Browser store assets
└── releases/ # Built extensions for distribution
├── chrome/
├── firefox/
├── edge/
└── opera/
Pengujian
# Run tests
npm test
# Run with coverage
npm run test:coverage
Dokumentasi:
- Prosedur Pengujian Manual - Panduan pengujian manual yang komprehensif
- Spesifikasi Fitur - Dokumentasi fitur lengkap
- Kemajuan Pengujian - Status cakupan pengujian saat ini
Konfigurasi
Server berfungsi langsung dengan default yang masuk akal. Untuk konfigurasi lanjutan:
Variabel Lingkungan
Buat file .env di root proyek:
# Authentication server (PRO features)
AUTH_BASE_URL=https://blueprint-mcp.railsblueprint.com
# Local WebSocket port (Free tier)
MCP_PORT=5555
# Debug mode
DEBUG=false
Opsi Baris Perintah
blueprint-mcp --debug # Enable verbose logging
blueprint-mcp --port 8080 # Use custom WebSocket port (default: 5555)
blueprint-mcp --debug --port 8080 # Combine options
Catatan: Jika Anda mengubah port, Anda perlu memperbarui pengaturan ekstensi peramban Anda agar cocok.
Pemecahan Masalah
Ekstensi tidak dapat terhubung
- Periksa ekstensi terinstal dan diaktifkan
- Klik ikon ekstensi - seharusnya menunjukkan "Terhubung"
- Periksa server MCP berjalan (cari proses pada port 5555)
- Coba muat ulang ekstensi
"Port 5555 sudah digunakan"
Instans lain sedang berjalan. Anda dapat:
- Hentikan proses yang ada:
lsof -ti:5555 | xargs kill -9
- Gunakan port yang berbeda:
blueprint-mcp --port 8080
Alat peramban tidak berfungsi
- Pastikan Anda telah memanggil
enableterlebih dahulu - Periksa Anda telah melampirkan ke tab dengan
browser_tabs - Verifikasi tab masih ada (tidak ditutup)
Mendapatkan bantuan
Berkontribusi
Kami menyambut kontribusi! Lihat CONTRIBUTING.md untuk panduan.
Keamanan
Alat ini memberikan asisten AI kendali atas peramban Anda. Harap tinjau:
- Server MCP hanya menerima koneksi lokal secara default (localhost:5555)
- Koneksi relai PRO diautentikasi melalui OAuth
- Ekstensi memerlukan tindakan pengguna eksplisit untuk terhubung
- Semua tindakan peramban melalui sistem izin peramban
Menemukan masalah keamanan? Silakan email [email protected] alih-alih mengajukan isu publik.
Kredit
Proyek ini awalnya terinspirasi oleh implementasi Playwright MCP Microsoft tetapi telah sepenuhnya ditulis ulang untuk menggunakan otomatisasi berbasis ekstensi peramban alih-alih Playwright. Arsitektur, implementasi, dan pendekatannya secara fundamental berbeda.
Perbedaan utama:
- Menggunakan ekstensi peramban dengan DevTools Protocol (bukan Playwright)
- Bekerja dengan profil peramban nyata (bukan konteks terisolasi)
- Komunikasi berbasis WebSocket (bukan relai CDP)
- Opsi relai cloud untuk akses jarak jauh
- Model tingkat Gratis dan PRO
- Dukungan multi-peramban (Chrome, Firefox, Edge, Opera)
Kami berterima kasih kepada tim Playwright yang telah memelopori otomatisasi peramban melalui MCP.
Lisensi
Apache License 2.0 - lihat LICENSE
Hak Cipta (c) 2025 Rails Blueprint
Dibangun dengan ❤️ oleh Rails Blueprint