LocalCan

resmi

AI ajanlarına localhost için genel URL'ler (tüneller), canlı HTTP trafik incelemesi, anlık görüntü yayınlama ve erişim kontrolü sağlar.

LocalCan MCP ile neler yapabilirsiniz?

  • Yakalanan trafiği inceleyin — Asistanınızdan list_traffic ile son alışverişleri listelemesini veya get_exchange ile markdown, curl ya da HAR formatında tam bir istek/yanıt çekmesini isteyin.
  • Genel tünelleri yönetin — create_public_url ve pause_public_url gibi araçlarla Genel URL'ler oluşturun, duraklatın, sürdürün veya kaldırın; özel istek başlıkları ayarlamak da dahil.
  • Anlık görüntüleri yayınlayın ve yenileyin — Bir klasörü publish_snapshot ile paylaşılabilir bir Anlık Görüntü olarak dağıtın, ardından update_snapshot ile daha sonra güncelleyin; böylece önizleme bağlantıları güncel kalır.
  • Erişimi ve yorumları kontrol edin — set_password ile bir URL'yi parola korumalı hale getirin, list_comments ile yorum dizilerini inceleyin ve doğrudan asistanınızdan yanıtlayın veya çözümleyin.
  • Tünel ve hizmet durumunu kontrol edin — Yakalamanın çalıştığını doğrulamak için get_status kullanın veya hangi bağlantıların canlı, duraklatılmış ya da anlık görüntü sunduğunu görmek için list_public_urls kullanın.

Dokümantasyon

MCP sunucusu

LocalCan'ın Model Context Protocol sunucusunu çalıştırın ve MCP ana bilgisayarınıza bağlayın; araçlar ve anahtarlar için tam referansla birlikte.

localcan mcp, stdio üzerinden bir Model Context Protocol sunucusu çalıştırır. Bir MCP ana bilgisayarı (Claude Code, Codex, Cursor, Claude Desktop ve diğerleri) onu başlatır ve LocalCan'ın araçlarını çağırarak yakalanan trafiği okur, Genel URL'leri (tüneller) yönetir ve Anlık Görüntüleri yayınlar. Araçların veri döndürmesi için LocalCan'ın çalışıyor olması gerekir; bu yüzden masaüstü uygulamasını açın veya önce localcan start -d komutunu çalıştırın.

Araçlar

Sunucu yirmi altı araç sunar. Okuma işlemleri kutudan çıktığı gibi çalışır. Değişiklik yapan on altı araç, varsayılan olarak kapalı olan yazma erişimi gerektirir (aşağıdaki anahtarlara bakın). Genel URL oluşturma veya ekleme, aktif bir lisans gerektirir. Anlık Görüntü yayınlamak ve bir URL'yi şifreyle korumak bir abonelik planı gerektirir; bu nedenle süresiz lisans, hâlâ Genel URL'ler açabilse de reddedilir. Lisanssızken, kısıtlı araçlar net bir aktivasyon mesajı döndürürken, mevcut URL'leri duraklatma, sürdürme ve kaldırma işlemleri hâlâ çalışır.

Trafik:

AraçNe yaparParametreler
get_statusYakalamanın açık olup olmadığını ve ne kadar trafiğin arabelleğe alındığını bildirir.yok
enable_captureYakalamayı açar. Yakalama varsayılan olarak kapalıdır ve arka plan programı yeniden başlatıldığında sıfırlanır.yok
list_trafficSon alışverişleri, en yenisi en üstte olacak şekilde listeler.last (varsayılan 20), host alt dize, project kimlik, method, status (tam kod veya 5xx gibi bir sınıf)
get_exchangeKimliğe göre bir alışverişi döndürür.id gerekli (tam kimlik veya benzersiz herhangi bir önek), format markdown, curl, http, har, json'dan biri (varsayılan markdown), include_response (varsayılan true)

Bir alışveriş, LocalCan'ın arka uca ilettiği istektir; istemcinin orijinal isteğinin birebir kopyası değildir. Veri modeli için Trafik bölümüne bakın.

Genel URL'ler:

AraçNe yaparParametreler
list_servicesLocalCan'ın sunduğu hizmetleri listeler; her biri bir <project>/<service> tanıtıcısı, yerel hedefi ve uç nokta sayısıyla birlikte.yok
list_public_urlsDuraklatılmış olanlar dahil Genel URL'lerinizi listeler; her biri durumu (aktif, duraklatılmış, hata, başlıyor, etkin değil) ve ne sunduğuyla (canlı, anlık görüntü, yok) birlikte. Her satır ayrıca access taşır: yok, şifre, bağlantı veya bir ekip politikası adı. Anlık Görüntü sunan park edilmiş bir URL, durumu duraklatılmış ancak anlık görüntü sunuyor olarak okunur; bu yüzden "bağlantı açık mı?" sorusuna durumdan değil, sunumdan yanıt verin.yok
get_public_url_statusTek bir Genel URL'nin durumunu, ne sunduğunu (canlı, anlık görüntü, yok) ve access korumasını, liste ile aynı sözcük dağarcığıyla, ayrıca yerel hedefini ve istek başlığı kurallarını bildirir.url gerekli
create_public_urlYeni bir projede yerel bir bağlantı noktası için Genel URL oluşturur ve atanan adresi döndürür, örneğin my-app-12.localcan.dev. Birkaç saniye sürer. Tünel reddedilirse (örneğin planınızın Genel URL sınırı) veya zaman aşımına uğrarsa, deneme geri alınır ve geride hiçbir şey bırakılmaz. Makineniz çevrimdışı olduktan sonra erişilebilir kalan bir bağlantı için add_snapshot ile bir Anlık Görüntü ekleyin. Sanal ana bilgisayar olarak sunulan bir uygulama için host ve headers içinde bir Host kuralı iletin (aşağıya bakın).port gerekli, name isteğe bağlı (adresi şekillendirir), protocol http veya tcp (varsayılan http), host isteğe bağlı (varsayılan localhost), headers isteğe bağlı (istek başlığı kuralları, her biri {name, value, mode?, enabled?})
add_public_urlZaten yapılandırdığınız bir hizmete Genel URL ekler. Protokol, hizmetin hedefini izler; bu nedenle tcp:// hedefi bir TCP tüneli alır. Oluşturma ile aynı başarısızlıkta geri alma.service tanıtıcısı gerekli
pause_public_urlBir Genel URL'yi adresini koruyarak çevrimdışı alır; böylece daha sonra sürdürülebilir. Oluşturulan bir *.localcan.dev adresi, duraklatılmışken 7 gün boyunca ayrılmış kalır; özel alan adları asla süresi dolmaz.url gerekli
resume_public_urlDuraklatılmış bir Genel URL'yi aynı adreste tekrar çevrimiçi getirir.url gerekli
remove_public_urlBir Genel URL'yi kalıcı olarak kaldırır. Oluşturulan bir adres serbest bırakılır; özel bir alan adı sizin kalır ve tekrar eklenebilir. Bir hizmetin son uç noktasını kaldırmak, boşaltılan hizmeti ve projeyi de kaldırır. Adresi korumak ancak Anlık Görüntü sunmayı durdurmak için remove_snapshot kullanın. Yıkıcı olarak işaretlenmiştir; bu nedenle ana bilgisayarlar genellikle onay ister.url gerekli
set_public_url_headersBir Genel URL'deki istek başlığı kurallarını değiştirir; LocalCan'ın uygulamanıza iletmeden önce ayarladığı başlıklar. Tam listeyi iletin; boş bir liste onları temizler. get_public_url_status kuralları aynı biçimde bildirir (mode set, append veya remove ve enabled); böylece orada okunan bir liste düzenlenip geri yazılabilir.url ve headers gerekli

Sanal ana bilgisayar olarak sunulan bir uygulama (myapp.test adresindeki bir Laravel Herd veya Valet sitesi, bir nginx server_name) kendi ana bilgisayar adını görmelidir ve LocalCan varsayılan olarak genel ana bilgisayar adını iletir. host ve bir Host kuralı, headers: [{"name": "Host", "value": "{{target_host}}"}] iletin; uygulama doğru siteyi sunar. Değer şablonları Başlıklar bölümündekilerdir.

Anlık Görüntüler (Anlık Görüntüler bölümüne bakın):

AraçNe yaparParametreler
publish_snapshotBir klasörü yeni bir Genel URL'de Anlık Görüntü olarak yayınlar; böylece makineniz çevrimdışı olduktan sonra erişilebilir kalır. Mümkünse derlenmiş statik çıktıya işaret edin veya LocalCan'ın derlemesi için bir proje köküne işaret edin (bağımlılıklar zaten kurulu olmalıdır). Yeni adresi döndürür. Her zaman yeni bir URL oluşturur; bu nedenle mevcut bir önizlemeyi yenilemek için update_snapshot kullanın.path gerekli (mutlak), name isteğe bağlı (adresi şekillendirir)
add_snapshotZaten sahip olduğunuz bir Genel URL'ye Anlık Görüntü ekler; böylece mevcut bir bağlantı çevrimdışı sunmaya devam eder. URL'de zaten bir tane varsa update_snapshot işaret eder.url ve path gerekli
update_snapshotBir Genel URL'deki Anlık Görüntüyü yeniden yayınlar. Aynı kaynaktan yeniden derlemek için path atlayın veya başka bir klasöre yeniden işaret etmek için iletin. URL'de yoksa add_snapshot işaret eder.url gerekli, path isteğe bağlı
remove_snapshotAnlık Görüntüyü bir Genel URL'den kaldırır. URL ayrılmış kalır ve tüneliniz açıkken canlı sunmaya devam eder. Yıkıcı olarak işaretlenmiştir.url gerekli
get_snapshot_statusBir Genel URL'nin Anlık Görüntüsünü bildirir: kaynak klasörü, ne zaman yayınlandığı, kaynağın o zamandan beri değişip değişmediği (bayat) ve URL'nin şu anda canlı mı yoksa anlık görüntüyü mü sunduğu. Ayrıca üzerindeki inceleme yorumlarını (durum ve sayılar) ve yorumlar açıldıktan sonra Anlık Görüntünün sürüm numarasını taşır.url gerekli

Erişim kontrolü (Erişim kontrolü bölümüne bakın):

AraçNe yaparParametreler
set_passwordBir Genel URL'yi şifreyle korur; böylece yalnızca şifreye sahip kişiler açabilir. LocalCan'ın sunucularında uygulanır; bu nedenle o URL'deki bir Anlık Görüntüyü de kapsar. Bir tane iletmediğiniz sürece güçlü bir şifre üretir ve paylaşabilmeniz için onu döndürür. Bir abonelik planı gerektirir.url gerekli, password isteğe bağlı (bir tane üretmek için atlayın)
clear_accessŞifre korumasını kaldırır; URL'yi tekrar herkese açık yapar. URL'yi veya Anlık Görüntüsünü kaldırmaz. Yıkıcı olarak işaretlenmiştir; bu nedenle ana bilgisayarlar genellikle onay ister.url gerekli
get_access_statusBir Genel URL'nin korumasını bildirir ve şifre korumalıysa mevcut şifresini döndürür. Şifre asla list_public_urls tarafından döndürülmez; yalnızca burada.url gerekli

Yorumlar (inceleyenlerin bir Anlık Görüntüde bıraktığı inceleme yorumları, Yorumlar bölümüne bakın):

AraçNe yaparParametreler
list_commentsBir Genel URL'nin Anlık Görüntüsündeki yorum iş parçacıklarını yanıtlarıyla birlikte listeler. Her iş parçacığı sayfa yolunu, çapayı (bir CSS seçici ve pimin o öğedeki konumu), inceleyenin görüş alanını ve tarayıcısını ve bırakıldığı Anlık Görüntü sürümünü taşır. Asla hiçbir şeyi okunmuş olarak işaretlemez.url gerekli, status açık, çözülmüş veya tümü (varsayılan açık), page yol, version sayı
reply_commentHesabınızın adı altında bir iş parçacığına yanıt gönderir. İş parçacığındaki inceleyenler, ekip için yanıt bildirimleri kapalı olmadıkça veya abonelikten çıkmadıkça bunu e-postayla alır. Yalnızca yanıtlar; yeni iş parçacıkları sayfaya sabitlenir.url, comment_id, body gerekli
resolve_commentBir iş parçacığını, yanıtlar dahil çözülmüş olarak işaretler.url ve comment_id gerekli
reopen_commentÇözülmüş bir iş parçacığını yeniden açar.url ve comment_id gerekli
set_commentsBir Anlık Görüntüdeki yorumları değiştirir: açık, duraklatılmış (mevcut iş parçacıkları okunabilir kalır, yenileri yok) veya kapalı. Korumalı bir URL ve bir abonelik planı gerektirir.url ve state gerekli

Geri bildirim döngüsü

Araçlar, bir ajanın kendi başına çalıştırabileceği tek bir döngüye zincirlenir: açık iş parçacıklarını okumak için list_comments, kaynağı düzenlemek, yeni sürümü yayınlamak için update_snapshot, ardından iş parçacığı başına reply_comment ve resolve_comment. Yorumlar yeni sürüme taşınır; böylece inceleyen yanıtı aynı pimde görür. Sunucu bunu ajana kendisi söyler. Ana bilgisayarların ajanın istemine eklediği MCP talimatları, döngüyü, inceleme turu kurulumunu (publish_snapshot, set_password, set_comments) ve sanal ana bilgisayar tarifini açıklar. Bir ajanın yapamayacağı iki şey: bir iş parçacığı başlatmak (inceleyenler bunları sayfaya sabitler) ve iş parçacıklarını okunmuş işaretlemek (okunmamış, uygulamadaki kendi gelen kutusu durumunuzdur).

Bir ajanı bağlama

Nasıl bağlanacağınız, ajanın nasıl çalıştığına bağlıdır. Terminal ajanları (Claude Code, Codex) kabuk PATH'inizi devralır; bu nedenle çıplak bir localcan komutu çalışır. GUI uygulamaları (Cursor, Claude Desktop, VS Code ve diğerleri) kabuk PATH'inizi yüklemez; bu nedenle ikili dosyanın mutlak yoluna ihtiyaç duyarlar, örneğin /Users/you/.localcan/bin/localcan. Masaüstü uygulamasının Ayarları, doğru yol doldurulmuş hazır bir yapılandırmayı kopyalayabilir; bu aynı zamanda Windows'ta güvenilir yoldur.

Claude Code

claude mcp add --scope user localcan -- localcan mcp

--scope user bayrağı sunucuyu her proje için kaydeder. Yalnızca geçerli projede kaydetmek için onu kaldırın.

Codex

codex mcp add localcan -- localcan mcp

Bu, sunucuyu ~/.codex/config.toml konumuna yazar. Codex masaüstü uygulaması veya IDE uzantısı için, localcan yerine mutlak yolu iletin.

Cursor, Claude Desktop ve Windsurf

Bunlar aynı mcpServers biçimini paylaşır:

{
  "mcpServers": {
    "localcan": {
      "command": "/Users/you/.localcan/bin/localcan",
      "args": ["mcp"]
    }
  }
}

Doğru dosyaya ekleyin, ardından yeniden yükleyin:

  • Cursor: ~/.cursor/mcp.json, ardından sunucuyu Ayarlar'da etkinleştirin.
  • Claude Desktop: claude_desktop_config.json (Ayarlar, Geliştirici, Yapılandırmayı Düzenle), ardından kapatıp yeniden başlatın.
  • Windsurf: ~/.codeium/windsurf/mcp_config.json, ardından MCP panelini yenileyin.

VS Code

VS Code (Copilot ajan modu) açık bir türle bir servers anahtarı kullanır. Bunu çalışma alanınızdaki .vscode/mcp.json konumuna ekleyin:

{
  "servers": {
    "localcan": {
      "type": "stdio",
      "command": "/Users/you/.localcan/bin/localcan",
      "args": ["mcp"]
    }
  }
}

Ayrıca aynı sunucu nesnesiyle code --add-mcp komutunu da çalıştırabilirsiniz.

Zed

Zed, settings.json içinde context_servers kullanır:

{
  "context_servers": {
    "localcan": {
      "source": "custom",
      "command": "/Users/you/.localcan/bin/localcan",
      "args": ["mcp"]
    }
  }
}

Ayrıca Ajan Paneli ayarlarından da ekleyebilirsiniz.

Ajan erişimi, redaksiyon ve yazma erişimi

Üçü de masaüstü uygulamasında Ayarlar altında ("AI Ajanları (MCP)" bölümü) veya terminalden kontrol edilir: ajan erişimi için localcan mcp enable / disable, redaksiyon için localcan mcp redact <on|off>, yazma erişimi için localcan mcp access <read_only|read_write> ve geçerli durumu görmek için localcan mcp status.

  • Ajan erişimi varsayılan olarak açıktır. Ajanların LocalCan'ı hiç kullanmasını durdurmak için kapatın. Sunucu yine de başlar, ancak tekrar açana kadar her araç net bir "erişim devre dışı" mesajı döndürür.
  • Ajanlar için redaksiyon varsayılan olarak açıktır. Hassas başlıklar (Authorization, çerezler, API anahtarları) araç yanıtlarından kaldırılır. URL'ler ve gövdeler redakte edilmez. Kendi ajanınızın ham değerleri almasını istiyorsanız kapatın.
  • Yazma erişimi varsayılan olarak kapalıdır. Okuma onsuz çalışır, ancak yazma araçları, uygulamada ("Ajanların Genel URL'ler oluşturmasına ve değiştirmesine izin ver") veya localcan mcp access read_write ile açana kadar net bir salt-okunur mesaj döndürür. Ajan erişimini açmak yazma erişimi vermez. Bunlar ayrı anahtarlardır. Her yazma çağrısı, ana bilgisayarınızın yakaladığı sunucunun tanılama çıktısına kaydedilir; böylece bir ajanın ne değiştirdiğine dair bir kaydınız olur. set_password'ya iletilen bir parola bu günlükte maskelenir.

Bir araç reddettiğinde

  • Her araç bir arka plan programı bağlantı mesajıyla hata verir: LocalCan çalışmıyor. Masaüstü uygulamasını açın veya localcan start -d komutunu çalıştırın.
  • list_traffic hiçbir şey döndürmez: yakalama kapalıdır (varsayılan olarak kapalıdır ve arka plan programı yeniden başladığında sıfırlanır). localcan traffic enable komutunu çalıştırın veya ajanın enable_capture çağırmasına izin verin.
  • "MCP erişimi devre dışı": ajan erişimi kapatılmış. localcan mcp enable komutunu çalıştırın veya Ayarlar geçişini çevirin.
  • "MCP salt-okunur": araç bir şeyleri değiştirir ve yazma erişimi kapalıdır. localcan mcp access read_write komutunu çalıştırın veya Ayarlar geçişini açın.
  • "genel URL'ler bir lisans gerektirir": Genel URL oluşturmak ve eklemek için etkin bir lisans gerekir. Uygulamada veya localcan license activate <key> ile bir lisans etkinleştirin.
  • "abonelik planı gerekli": Anlık Görüntüler ve Erişim kontrolü yalnızca aboneliğe özeldir. Sürekli lisans Genel URL'ler açabilir ancak Anlık Görüntü yayınlayamaz veya parola ayarlayamaz. panodan abone olun, ardından yeniden deneyin.
  • "zaten bir anlık görüntüsü var" veya "henüz anlık görüntüsü yok": mesajın adlandırdığı aracı kullanın. add_snapshot, anlık görüntüsü olmayan bir URL'ye Anlık Görüntü ekler; update_snapshot, zaten olanı yeniler.
  • "Anlık Görüntü sınırına ulaşıldı": planınız aynı anda kaç Genel URL'nin Anlık Görüntü sunabileceğini sınırlar. Mesaj, zaten bir yuva kullanan URL'leri listeler; yeni bir tane yayınlamak yerine bunları update_snapshot ile yenileyebilirsiniz.
  • "Yorumlar korumalı bir URL gerektirir": set_comments, Erişim kontrolü olmayan bir URL'de çağrıldı. Önce set_password komutunu çalıştırın.
  • "Hesabınızın görünen adı yok": bir yanıtın yayınlanması için bir ad gerekir. panoda ayarlayın veya uygulamadan sahibi olarak açtıktan sonra Anlık Görüntü sayfasında bir kez yanıtlayın.
  • Ana bilgisayar sunucuyu başarısız veya araçsız gösterir: bir GUI uygulaması localcan'u PATH'te bulamıyor. Mutlak yolu kullanın, en kolayı Ayarlar yapılandırmasını kopyalayarak.