LocalCan

ทางการ

ให้เอเจนต์ AI มี URL สาธารณะ (tunnels) สำหรับ localhost การตรวจสอบปริมาณการรับส่ง HTTP แบบสด การเผยแพร่สแนปช็อต และการควบคุมการเข้าถึง

คุณทำอะไรได้บ้างด้วย LocalCan MCP?

  • ตรวจสอบการรับส่งข้อมูลที่บันทึกไว้ — ขอข้อมูลการแลกเปลี่ยนล่าสุดด้วย list_traffic โดยกรองตามโฮสต์ โปรเจกต์ เมธอด หรือรหัสสถานะ จากนั้นเจาะลึกรายละเอียดด้วย get_exchange
  • จัดการ Public URLs — สร้างอุโมงค์ด้วย create_public_url หรือ add_public_url ตรวจสอบสถานะผ่าน get_public_url_status และหยุดชั่วคราว ดำเนินการต่อ หรือลบออกตามต้องการ
  • เผยแพร่และรีเฟรช Snapshots — ใช้ publish_snapshot เพื่อแชร์โฟลเดอร์บน URL ใหม่ หรือใช้ update_snapshot เพื่อเผยแพร่ซ้ำรายการที่มีอยู่เพื่อให้ยังเข้าถึงได้แบบออฟไลน์
  • ควบคุมการป้องกันการเข้าถึง — ป้องกันด้วยรหัสผ่านให้กับ Public URL ด้วย set_password ตรวจสอบการป้องกันปัจจุบันผ่าน get_access_status หรือลบออกด้วย clear_access
  • ตรวจสอบสถานะการบันทึก — ตรวจสอบว่าการบันทึกการรับส่งข้อมูลทำงานอยู่หรือไม่ และมีข้อมูลที่บัฟเฟอร์ไว้เท่าใดด้วย get_status และเปิดใช้งานผ่าน enable_capture เมื่อจำเป็น

เอกสาร

MCP server


รันเซิร์ฟเวอร์ Model Context Protocol ของ LocalCan และเชื่อมต่อกับ MCP host ของคุณ พร้อมข้อมูลอ้างอิงครบถ้วนสำหรับเครื่องมือและสวิตช์ทั้งหมด

localcan mcp รันเซิร์ฟเวอร์ Model Context Protocol ผ่าน stdio โดย MCP host (เช่น Claude Code, Codex, Cursor, Claude Desktop และอื่นๆ) จะเป็นตัวเรียกใช้งานและเรียกใช้เครื่องมือของ LocalCan เพื่ออ่านทราฟฟิกที่จับไว้ จัดการ Public URLs (tunnel) และเผยแพร่ Snapshots โดย LocalCan จะต้องทำงานอยู่เพื่อให้เครื่องมือส่งข้อมูลกลับมา ดังนั้นให้เปิดแอปเดสก์ท็อปหรือรัน localcan start -d ก่อน

เครื่องมือ

เซิร์ฟเวอร์เปิดให้ใช้เครื่องมือจำนวนยี่สิบตัว การอ่านข้อมูลทำงานได้ทันที เครื่องมือสิบเอ็ดตัวที่เปลี่ยนแปลงข้อมูลจำเป็นต้องมีสิทธิ์เขียน ซึ่งปิดไว้โดยค่าเริ่มต้น (ดูสวิตช์ด้านล่าง) การสร้างหรือเพิ่ม Public URL ต้องมีใบอนุญาตที่ใช้งานได้ การเผยแพร่ Snapshot และการตั้งรหัสผ่านให้ URL ต้องมีแผนการสมัครสมาชิก ดังนั้นใบอนุญาตแบบถาวรจะไม่ถูกยอมรับแม้จะยังสามารถเปิด Public URLs ได้ หากไม่มีใบอนุญาต เครื่องมือที่ถูกจำกัดจะส่งข้อความแจ้งเปิดใช้งานที่ชัดเจน ในขณะที่การหยุดชั่วคราว การ resume และการลบ URL ที่มีอยู่ยังคงทำงานได้

ทราฟฟิก:

เครื่องมือฟังก์ชันพารามิเตอร์
get_statusรายงานว่าการจับทราฟฟิกเปิดอยู่หรือไม่ และมีทราฟฟิกที่ถูกบัฟเฟอร์มากน้อยเพียงใดไม่มี
enable_captureเปิดการจับทราฟฟิก โดยค่าเริ่มต้นปิดอยู่ และจะรีเซ็ตเมื่อ daemon รีสตาร์ทไม่มี
list_trafficแสดงรายการการแลกเปลี่ยนล่าสุด เรียงจากใหม่ไปเก่าlast (ค่าเริ่มต้น 20), สตริงย่อยของ host, project id, method, status (รหัสที่แน่นอนหรือคลาสเช่น 5xx)
get_exchangeส่งคืนหนึ่ง exchange ตาม idต้องระบุ id (id เต็มหรือ prefix ที่ไม่ซ้ำกัน), format เป็น markdown, curl, http, har, json (ค่าเริ่มต้น markdown), include_response (ค่าเริ่มต้น true)

An exchange คือคำขอที่ LocalCan ส่งต่อไปยัง backend ของคุณ ไม่ใช่สำเนาแบบ byte-for-byte ของคำขอเดิมจากไคลเอนต์ ดูรายละเอียดโมเดลข้อมูลในหัวข้อ Traffic

Public URLs:

เครื่องมือฟังก์ชันพารามิเตอร์
list_servicesแสดงรายการบริการที่ LocalCan ให้บริการ โดยแต่ละรายการมี handle แบบ / เป้าหมาย local และจำนวน endpointไม่มี
list_public_urlsแสดงรายการ Public URLs ของคุณ รวมถึงรายการที่หยุดชั่วคราว โดยแต่ละรายการมีสถานะ (active, paused, error, starting, inactive) และสิ่งที่ให้บริการ (live, snapshot, none) ทุกแถวยังมีข้อมูล access: none, password, link หรือชื่อนโยบายทีม URL ที่ถูกจอดไว้ซึ่งให้บริการ Snapshot จะแสดงสถานะเป็น paused แต่ serving เป็น snapshot ดังนั้นตอบคำถาม "ลิงก์พร้อมใช้งานหรือไม่" โดยดูจาก serving ไม่ใช่ stateไม่มี
get_public_url_statusรายงานสถานะของ Public URL หนึ่งรายการ สิ่งที่ให้บริการ (live, snapshot, none) และการป้องกัน access โดยใช้คำศัพท์เดียวกับรายการต้องระบุ url
create_public_urlสร้าง Public URL สำหรับพอร์ต local ในโปรเจกต์ใหม่ และส่งคืนที่อยู่ที่กำหนด เช่น my-app-12.localcan.dev ใช้เวลาไม่กี่วินาที หาก tunnel ถูกปฏิเสธ (เช่นเกินขีดจำกัด Public URL ของแผนของคุณ) หรือหมดเวลา การพยายามจะถูกย้อนกลับและไม่เหลืออะไรค้างไว้ สำหรับลิงก์ที่ยังเข้าถึงได้แม้เครื่องของคุณออฟไลน์ ให้เพิ่ม Snapshot ด้วย add_snapshotต้องระบุ port, name ไม่บังคับ (กำหนดรูปทรงของที่อยู่), protocol เป็น http หรือ tcp (ค่าเริ่มต้น http)
add_public_urlเพิ่ม Public URL ให้กับบริการที่คุณตั้งค่าไว้แล้ว โดยโปรโตคอลจะเป็นไปตามเป้าหมายของบริการ ดังนั้นเป้าหมายแบบ tcp:// จะได้ TCP tunnel มีการย้อนกลับเมื่อล้มเหลวเหมือนกับ createต้องระบุ service handle
pause_public_urlนำ Public URL ออฟไลน์ชั่วคราวในขณะที่เก็บที่อยู่ไว้ เพื่อให้สามารถ resume ได้ในภายหลัง ที่อยู่ *.localcan.dev ที่สร้างขึ้นจะถูกสงวนไว้ 7 วันในขณะที่หยุดชั่วคราว โดเมนที่กำหนดเองไม่หมดอายุต้องระบุ url
resume_public_urlนำ Public URL ที่หยุดชั่วคราวกลับมาออนไลน์ที่ที่อยู่เดิมต้องระบุ url
remove_public_urlลบ Public URL อย่างถาวร ที่อยู่ที่สร้างขึ้นจะถูกปล่อย โดเมนที่กำหนดเองยังคงเป็นของคุณและสามารถเพิ่มได้อีกครั้ง การลบ endpoint สุดท้ายของบริการจะลบบริการและโปรเจกต์ที่ว่างเปล่าด้วย หากต้องการเก็บที่อยู่แต่หยุดให้บริการ Snapshot ให้ใช้ remove_snapshot ถูกทำเครื่องหมายว่า destructive ดังนั้น hosts มักจะถามยืนยันต้องระบุ url

Snapshots (ดูหัวข้อ Snapshots):

เครื่องมือฟังก์ชันพารามิเตอร์
publish_snapshotเผยแพร่โฟลเดอร์เป็น Snapshot บน Public URL ใหม่ เพื่อให้ยังเข้าถึงได้แม้เครื่องของคุณออฟไลน์ ชี้ไปที่ผลลัพธ์ static ที่ build แล้วเมื่อเป็นไปได้ หรือชี้ไปที่ root ของโปรเจกต์เพื่อให้ LocalCan build (ต้องติดตั้ง dependencies แล้ว) ส่งคืนที่อยู่ใหม่ โดยจะสร้าง URL ใหม่เสมอ ดังนั้นเพื่อรีเฟรช preview ที่มีอยู่ ให้ใช้ update_snapshotต้องระบุ path (absolute), name ไม่บังคับ (กำหนดรูปทรงของที่อยู่)
add_snapshotเพิ่ม Snapshot ให้กับ Public URL ที่มีอยู่ เพื่อให้ลิงก์เดิมยังคงให้บริการแบบออฟไลน์ ชี้ไปที่ update_snapshot หาก URL นั้นมี Snapshot อยู่แล้วต้องระบุ url และ path
update_snapshotเผยแพร่ Snapshot บน Public URL ใหม่ โดยละเว้น path เพื่อ build จากแหล่งเดิม หรือส่ง path เพื่อชี้ไปยังโฟลเดอร์อื่น ชี้ไปที่ add_snapshot หาก URL ไม่มี Snapshotต้องระบุ url, path ไม่บังคับ
remove_snapshotลบ Snapshot ออกจาก Public URL URL ยังคงถูกสงวนไว้และให้บริการ live ต่อไปในขณะที่ tunnel ของคุณทำงาน ถูกทำเครื่องหมายว่า destructiveต้องระบุ url
get_snapshot_statusรายงาน Snapshot ของ Public URL: โฟลเดอร์ต้นทาง เวลาที่เผยแพร่ แหล่งที่มาเปลี่ยนไปหรือไม่ (stale) และตอนนี้ URL ให้บริการ live หรือ snapshotต้องระบุ url

การควบคุมการเข้าถึง (ดูหัวข้อ Access control):

เครื่องมือสิ่งที่ทำพารามิเตอร์
set_passwordปกป้อง Public URL ด้วยรหัสผ่าน เพื่อให้เฉพาะผู้ที่มีรหัสผ่านเท่านั้นที่เปิดได้ บังคับใช้บนเซิร์ฟเวอร์ของ LocalCan จึงครอบคลุมถึง Snapshot บน URL นั้นด้วย สร้างรหัสผ่านที่แข็งแกร่งเว้นแต่คุณจะส่งรหัสผ่านเอง และส่งคืนเพื่อให้คุณแชร์ได้ ต้องมีแผนการสมัครสมาชิกต้องการ url, ตัวเลือก password (ละเว้นเพื่อสร้างใหม่)
clear_accessลบการป้องกันด้วยรหัสผ่าน ทำให้ URL กลับเป็นสาธารณะอีกครั้ง ไม่ลบ URL หรือ Snapshot ของมัน ถูกทำเครื่องหมายว่าทำลายล้าง ดังนั้นโฮสต์มักจะขอการยืนยันต้องการ url
get_access_statusรายงานการป้องกันของ Public URL และส่งคืนรหัสผ่านปัจจุบันเมื่อมีการป้องกันด้วยรหัสผ่าน รหัสผ่านไม่ถูกส่งคืนโดย list_public_urls ที่นี่เท่านั้นต้องการ url

การเชื่อมต่อเอเจนต์

วิธีการเชื่อมต่อขึ้นอยู่กับวิธีที่เอเจนต์ทำงาน เอเจนต์เทอร์มินัล (Claude Code, Codex) สืบทอด PATH ของเชลล์ของคุณ ดังนั้นคำสั่ง localcan เปล่าๆ จึงทำงานได้ แอป GUI (Cursor, Claude Desktop, VS Code และอื่นๆ) ไม่โหลด PATH ของเชลล์ของคุณ ดังนั้นจึงต้องใช้พาธแบบสัมบูรณ์ไปยังไบนารี เช่น /Users/you/.localcan/bin/localcan การตั้งค่าของแอปเดสก์ท็อปสามารถคัดลอกคอนฟิกที่เตรียมไว้พร้อมพาธที่ถูกต้อง ซึ่งเป็นเส้นทางที่เชื่อถือได้บน Windows เช่นกัน

Claude Code

เชลล์

คัดลอก

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

แฟล็ก --scope user ลงทะเบียนเซิร์ฟเวอร์สำหรับทุกโปรเจกต์ ละเว้นเพื่อลงทะเบียนเฉพาะโปรเจกต์ปัจจุบัน

Codex

เชลล์

คัดลอก

codex mcp add localcan -- localcan mcp

สิ่งนี้เขียนเซิร์ฟเวอร์ไปยัง ~/.codex/config.toml สำหรับแอปเดสก์ท็อป Codex หรือส่วนขยาย IDE ให้ส่งพาธแบบสัมบูรณ์แทน localcan

Cursor, Claude Desktop และ Windsurf

สิ่งเหล่านี้ใช้รูปแบบ mcpServers เหมือนกัน:

JSON

คัดลอก

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

เพิ่มลงในไฟล์ที่ถูกต้อง แล้วโหลดใหม่:

  • Cursor: ~/.cursor/mcp.json จากนั้นเปิดใช้งานเซิร์ฟเวอร์ในการตั้งค่า
  • Claude Desktop: claude_desktop_config.json (การตั้งค่า, นักพัฒนา, แก้ไขคอนฟิก) จากนั้นออกแล้วเปิดใหม่
  • Windsurf: ~/.codeium/windsurf/mcp_config.json จากนั้นรีเฟรชแผง MCP

VS Code

VS Code (โหมดเอเจนต์ Copilot) ใช้คีย์ servers พร้อมประเภทที่ชัดเจน เพิ่มสิ่งนี้ลงใน .vscode/mcp.json ในเวิร์กสเปซของคุณ:

JSON

คัดลอก

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

คุณยังสามารถรัน code --add-mcp ด้วยออบเจ็กต์เซิร์ฟเวอร์เดียวกันได้

Zed

Zed ใช้ context_servers ใน settings.json:

JSON

คัดลอก

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

คุณยังสามารถเพิ่มได้จากการตั้งค่าแผงเอเจนต์

การเข้าถึงของเอเจนต์ การแก้ไข และสิทธิ์การเขียน

ทั้งสามอย่างถูกควบคุมในแอปเดสก์ท็อปภายใต้การตั้งค่า (ส่วน "AI Agents (MCP)") หรือจากเทอร์มินัล: localcan mcp enable / disable สำหรับการเข้าถึงของเอเจนต์, localcan mcp redact <on|off> สำหรับการแก้ไข, localcan mcp access <read_only|read_write> สำหรับสิทธิ์การเขียน และ localcan mcp status เพื่อดูสถานะปัจจุบัน

  • การเข้าถึงของเอเจนต์เปิดโดยค่าเริ่มต้น ปิดเพื่อหยุดไม่ให้เอเจนต์ใช้ LocalCan ทั้งหมด เซิร์ฟเวอร์ยังคงเริ่มต้น แต่ทุกเครื่องมือจะส่งคืนข้อความ "access is disabled" ที่ชัดเจนจนกว่าคุณจะเปิดอีกครั้ง
  • การแก้ไขเปิดโดยค่าเริ่มต้นสำหรับเอเจนต์ ส่วนหัวที่ละเอียดอ่อน (Authorization, cookies, API keys) จะถูกลบออกจากการตอบสนองของเครื่องมือ URLs และ bodies ไม่ถูกแก้ไข ปิดเพื่อให้เอเจนต์ของคุณได้รับค่าดิบ
  • สิทธิ์การเขียนปิดโดยค่าเริ่มต้น การอ่านทำงานได้โดยไม่ต้องใช้ แต่เครื่องมือเขียนส่งคืนข้อความ read-only ที่ชัดเจนจนกว่าคุณจะเปิดในแอป ("Allow agents to create and change Public URLs") หรือด้วย localcan mcp access read_write การเปิดการเข้าถึงของเอเจนต์ไม่ได้ให้สิทธิ์การเขียน ทั้งสองเป็นสวิตช์แยกกัน ทุกการเรียกเขียนจะถูกบันทึกลงในเอาต์พุตการวินิจฉัยของเซิร์ฟเวอร์ ซึ่งโฮสต์ของคุณจับได้ เพื่อให้คุณมีบันทึกว่าอะไรที่เอเจนต์เปลี่ยน รหัสผ่านที่ส่งไปยัง set_password จะถูกปกปิดในบันทึกนั้น

เมื่อเครื่องมือปฏิเสธ

  • ทุกเครื่องมือผิดพลาดพร้อมข้อความเชื่อมต่อ daemon: LocalCan ไม่ทำงาน เปิดแอปเดสก์ท็อปหรือรัน localcan start -d
  • list_traffic คืนค่าไม่มีอะไร: การจับภาพปิดอยู่ (ปิดโดยค่าเริ่มต้นและรีเซ็ตเมื่อ daemon รีสตาร์ท) รัน localcan traffic enable หรือให้เอเจนต์เรียก enable_capture
  • "MCP access is disabled": การเข้าถึงของเอเจนต์ถูกปิด รัน localcan mcp enable หรือสลับการตั้งค่า
  • "MCP is read-only": เครื่องมือเปลี่ยนสิ่งต่าง ๆ และสิทธิ์การเขียนปิดอยู่ รัน localcan mcp access read_write หรือเปิดการตั้งค่า
  • "public URLs require a license": การสร้างและเพิ่ม Public URL ต้องมีใบอนุญาตที่ใช้งานอยู่ เปิดใช้งานในแอปหรือด้วย localcan license activate <key>
  • "need a subscription plan": Snapshots และ Access control เป็นแบบสมัครสมาชิกเท่านั้น ใบอนุญาตถาวรสามารถเปิด Public URLs ได้แต่ไม่สามารถเผยแพร่ Snapshot หรือตั้งรหัสผ่านได้ สมัครจากแดชบอร์ดของคุณ↗ แล้วลองใหม่
  • "already has a snapshot" หรือ "has no snapshot yet": ใช้เครื่องมือที่ข้อความระบุ add_snapshot แนบ Snapshot ไปยัง URL ที่ยังไม่มี update_snapshot รีเฟรชอันที่มีอยู่แล้ว
  • "Snapshot limit reached": แผนของคุณจำกัดจำนวน Public URLs ที่สามารถให้บริการ Snapshot พร้อมกันได้ ข้อความแสดงรายการ URL ที่ใช้ช่องแล้ว ซึ่งคุณสามารถรีเฟรชด้วย update_snapshot แทนการเผยแพร่อันใหม่
  • โฮสต์แสดงเซิร์ฟเวอร์ว่าล้มเหลวหรือไม่มีเครื่องมือ: แอป GUI ไม่พบ localcan ใน PATH ใช้พาธแบบสัมบูรณ์ ง่ายที่สุดผ่านการคัดลอกคอนฟิกในการตั้งค่า

© 2026 LocalCan™ สงวนลิขสิทธิ์