npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@silakagent/mcp

v0.1.6

Published

MCP (Model Context Protocol) server yang mengekspos kemampuan Silak Agent — otomasi browser, sesi/tab, hingga testing/QA (roster tool silak_*) — ke AI coding assistant (Claude Code, Cursor) lewat bridge lokal ke extension.

Readme

@silakagent/mcp

Server MCP (Model Context Protocol) yang mengekspos kemampuan Silak Agent — otomasi browser, sesi/tab, hingga testing/QA (roster tool terbuka silak_*, bukan hanya QA) — ke AI coding assistant seperti Claude Code / Cursor. Server ini live-browser: ia tidak mengeksekusi sendiri — ia me-relay perintah ke extension Silak Agent yang menjalankannya di browser Anda.

Arsitektur (kenapa perlu proses terpisah)

Chrome extension Manifest V3 tidak bisa membuka listening socket / menjalankan proses Node (batasan MV3 yang sama dengan android-runner). Jadi:

Claude Code / Cursor ──stdio──> @silakagent/mcp (proses Node)
                                     │  WS server 127.0.0.1:47812
                                     ▼
                         Silak extension (side panel) ──> qa-engine + page-agent (browser)
  • @silakagent/mcp = proses Node yang dijalankan oleh MCP client (stdio) dan sekaligus membuka WS server di 127.0.0.1:47812.
  • Silak extension menyambung ke WS itu sebagai klien dari background service worker-nya (aktifkan toggle MCP Bridge di Settings sekali (dashboard extension → Settings → MCP Bridge) — koneksi bertahan walau side panel ditutup & tetap satu koneksi walau panel dibuka di banyak tab).
  • Banyak browser boleh menyambung ke satu bridge sekaligus (registry per-browserId). Kalau lebih dari satu, pilih target lewat silak_use_browser (lihat Tools).
  • Setiap tools/call di-relay ke extension → dieksekusi live di browser → hasil dikembalikan.

Menjalankan

npm (cara utama — sudah dipublish)

Generate token dulu di extension (dashboard → Settings → MCP Bridge → Generate token), lalu daftarkan di config MCP client (mis. ~/.cursor/mcp.json) — tempel token ke env.SILAK_EXTENSION_TOKEN. Pilih salah satu cara (butuh Node ≥ 20):

Cara 1 — npx (tanpa instal, auto-update) · direkomendasikan

{
  "mcpServers": {
    "silakagent": {
      "command": "npx",
      "args": ["-y", "@silakagent/mcp@latest"],
      "env": { "SILAK_EXTENSION_TOKEN": "<token dari extension>" }
    }
  }
}

Claude Code: claude mcp add silakagent --env SILAK_EXTENSION_TOKEN=<token> -- npx -y @silakagent/mcp@latest

Cara 2 — install global (start lebih cepat/offline)

npm i -g @silakagent/mcp@latest
{
  "mcpServers": {
    "silakagent": {
      "command": "silakagent-mcp",
      "env": { "SILAK_EXTENSION_TOKEN": "<token dari extension>" }
    }
  }
}

Claude Code: claude mcp add silakagent --env SILAK_EXTENSION_TOKEN=<token> -- silakagent-mcp

Lokal dari repo (tanpa install)

node packages/mcp/bin/silakagent-mcp.mjs
# stderr: [silakagent-mcp] Pairing token aktif. Tempel token ini di extension Silak ...
# stderr: [silakagent-mcp] MCP server ready on stdio.

Pairing token (keamanan)

Bridge listen di 127.0.0.1:47812; karena halaman web mana pun bisa membuka WebSocket ke localhost, autentikasi wajib by default. Urutan sumber token: SILAK_EXTENSION_TOKEN (env) → file → auto-generate.

  • Direkomendasikan — generate di extension: buka dashboard extension → Settings → MCP Bridge (dashboard.html#/settings/mcp), klik Generate token, salin, lalu tempel ke env.SILAK_EXTENSION_TOKEN di config MCP client (lihat contoh di atas). Token dibuat & disimpan di browser, mengikat browser itu ke server lokalnya — tak perlu menyalin apa pun dari terminal.
  • Fallback — token file: bila SILAK_EXTENSION_TOKEN tidak diisi, silakagent-mcp memakai ~/.silakagent/mcp-token (dibuat otomatis sekali, 0600) dan mencetaknya ke stderr; tempel token itu ke extension secara manual.
  • --no-token: matikan autentikasi — hanya untuk pemakaian lokal tepercaya (kosongkan kolom token di extension).

Flag

  • --port <n> — port WS bridge (default 47812).
  • --no-token — jalankan tanpa verifikasi token (lihat di atas).

Publish ke npm

Package dipublish sebagai @silakagent/mcp di bawah npm org silakagent (org silak sudah diklaim pihak lain). Dari packages/mcp:

npm publish --access public   # prepublishOnly otomatis build dist

Ini murni distribusi — eksekusi tetap 100% lokal (tidak melanggar prinsip local-first, tanpa cloud/akun).

Tools

Roster lengkap (parity dengan panel extension), didefinisikan sebagai registry modular ber-zod: tiap modul satu file di src/tools/modules/*, digabung jadi satu roster di src/tools/index.ts. JSON Schema tiap tool digenerate dari schema zod-nya, dan argumen divalidasi di server MCP sebelum direlay ke extension — argumen wajib yang hilang atau salah tipe langsung dibalas error yang menyebut nama field-nya. Semua tool relay menerima argumen opsional browserId.

Dua model "otak" agent:

  • Extension jadi otak (pakai endpoint AI user): silak_run_task (jalankan tugas bebas satu-shot), silak_generate_*, silak_generate_and_execute, silak_rerun_tests, silak_run_shortcut, silak_test_connection, silak_list_models. Butuh endpoint AI diset.
  • MCP client jadi otak (primitif "mata + tangan", tanpa endpoint AI extension): silak_get_page_state (baca elemen terindeks), silak_click_element, silak_input_text, silak_select_option, silak_scroll, silak_navigate, silak_screenshot. Cukup hubungkan MCP — extension jadi fungsional tanpa konfigurasi AI.

qa — pipeline QA (analisa → PRD → test plan → eksekusi): silak_bootstrap_test, silak_generate_page_summary, silak_generate_standardized_prd, silak_generate_test_plan, silak_generate_test_plan_from_document, silak_explore_features, silak_get_exploration, silak_generate_maestro_flow, silak_set_test_setup, silak_get_test_setup, silak_delete_test_setup, silak_generate_and_execute, silak_rerun_tests, silak_export_report, silak_open_test_result_dashboard (opsional section).

qa-data — data QA (CRUD): silak_list_suites, silak_get_suite, silak_rename_suite, silak_delete_suite, silak_list_test_cases, silak_get_test_case, silak_create_test_case, silak_update_test_case, silak_delete_test_case, silak_list_runs, silak_get_run, silak_delete_run, silak_list_page_summaries, silak_get_page_summary, silak_list_prds, silak_get_prd.

browser — primitif halaman: silak_get_page_state, silak_click_element, silak_input_text, silak_select_option, silak_click_by_selector, silak_input_by_selector, silak_select_by_selector (replay deterministik lewat xpath stabil — tanpa baca halaman, tanpa LLM), silak_scroll, silak_navigate, silak_screenshot.

android — kontrol device: silak_android_list_devices, silak_android_select_device, silak_android_set_engine, silak_android_screenshot, silak_android_ui_hierarchy, silak_android_tap, silak_android_input_text, silak_android_swipe, silak_android_press_key, silak_android_open_mirror.

agent — tugas bebas, Teach shortcut & recording: silak_run_task, silak_list_shortcuts, silak_run_shortcut, silak_create_shortcut, silak_update_shortcut, silak_delete_shortcut, silak_record_start/silak_record_stop (rekam interaksi manual jadi satu test case dengan bundle replay deterministik).

session — sesi chat & tab group: silak_create_session, silak_get_session, silak_list_sessions, silak_rename_session, silak_delete_session, silak_list_tab_groups, silak_current_group, silak_list_window_tabs.

editor — integrasi Editor (Silak Editor / VSCode): silak_resolve_element_source (elemen terindeks → { file, line?, column?, componentName? } via atribut data-silak-source), silak_flow_impact (path file → flow web yang menyentuhnya, untuk watch-mode), silak_list_page_errors (ring buffer error halaman saat errorForwarding ON). Field settings terkait: watchMode/devServerOrigin/errorForwarding di silak_get_settings/silak_set_settings. Catatan: tool silak_editor_* (baca/tulis file, terminal, git di VSCode) bukan bagian server ini — hidup di MCP repo Silak Editor terpisah (http://127.0.0.1:47820/mcp); daftarkan sebagai server MCP kedua bila perlu.

settings — setelan & endpoint AI: silak_get_settings (tanpa apiKey; termasuk watchMode/devServerOrigin/errorForwarding), silak_set_settings (apiKey write-only; termasuk contextWindow, temperature, dan verifyRetries — jatah verifikasi ulang sebelum agent boleh menyimpulkan gagal), silak_list_models, silak_test_connection, silak_open_settings (buka halaman settings dashboard: ai/mcp/editor/storage). silak_get_settings/silak_set_settings juga mencakup theme (light/dark/system) dan beroperasi pada provider default.

data — data lokal, backup & metrik: silak_storage_usage, silak_export_backup, silak_import_backup, silak_reset_data (destruktif, butuh confirm:true), silak_system_metrics.

bridge — routing multi-browser (dijawab server MCP sendiri, tidak direlay): silak_list_browsers (daftar browser tersambung: id/label/active), silak_use_browser (pilih target saat >1 browser). Satu browser = otomatis jadi target; >1 tanpa target terpilih = tool call error minta pilih dulu (aman dari salah target).

Destruktif: silak_delete_* dan silak_reset_data menghapus data lokal permanen. Rahasia (apiKey, token) tak pernah bisa dibaca via MCP.