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™ สงวนลิขสิทธิ์