LocalCan
chính thứcCung cấp cho các tác nhân AI các URL công khai (tunnel) cho localhost, kiểm tra lưu lượng HTTP trực tiếp, xuất bản snapshot và kiểm soát truy cập.
Bạn có thể làm gì với LocalCan MCP?
- Kiểm tra lưu lượng đã thu thập — Yêu cầu trợ lý của bạn liệt kê các trao đổi gần đây bằng
list_traffichoặc lấy toàn bộ yêu cầu/phản hồi quaget_exchangeở định dạng markdown, curl hoặc HAR. - Quản lý tunnel công khai — Tạo, tạm dừng, tiếp tục hoặc xóa các URL công khai bằng các công cụ như
create_public_urlvàpause_public_url, bao gồm cả việc thiết lập các header yêu cầu tùy chỉnh. - Xuất bản và làm mới snapshot — Triển khai một thư mục dưới dạng Snapshot có thể chia sẻ bằng
publish_snapshot, sau đó cập nhật sau đó bằngupdate_snapshotđể các liên kết xem trước luôn được cập nhật. - Kiểm soát quyền truy cập và bình luận — Bảo vệ URL bằng mật khẩu với
set_password, xem lại các chuỗi bình luận qualist_comments, và trả lời hoặc giải quyết chúng trực tiếp từ trợ lý của bạn. - Kiểm tra trạng thái tunnel và dịch vụ — Sử dụng
get_statusđể xác nhận quá trình thu thập đang chạy, hoặclist_public_urlsđể xem liên kết nào đang hoạt động, tạm dừng hoặc phục vụ snapshot.
Tài liệu
Máy chủ MCP
Chạy máy chủ Giao thức Ngữ cảnh Mô hình của LocalCan và kết nối nó vào máy chủ MCP của bạn, kèm tài liệu tham khảo đầy đủ về các công cụ và công tắc.
localcan mcp chạy một máy chủ Giao thức Ngữ cảnh Mô hình qua stdio. Một máy chủ MCP (Claude Code, Codex, Cursor, Claude Desktop và các ứng dụng khác) khởi chạy nó và gọi các công cụ của LocalCan để đọc lưu lượng đã thu thập, quản lý URL công khai (tunnel) và xuất bản Ảnh chụp nhanh. LocalCan phải đang chạy để các công cụ trả về dữ liệu, vì vậy hãy mở ứng dụng máy tính để bàn hoặc chạy localcan start -d trước.
Công cụ
Máy chủ cung cấp hai mươi sáu công cụ. Đọc hoạt động ngay khi cài đặt. Mười sáu công cụ thay đổi dữ liệu cần quyền ghi, mặc định bị tắt (xem các công tắc bên dưới). Tạo hoặc thêm URL công khai cần giấy phép đang hoạt động. Xuất bản Ảnh chụp nhanh và bảo vệ URL bằng mật khẩu cần gói đăng ký, vì vậy giấy phép vĩnh viễn sẽ bị từ chối mặc dù vẫn có thể mở URL công khai. Nếu chưa có giấy phép, các công cụ bị giới hạn sẽ trả về thông báo kích hoạt rõ ràng, trong khi tạm dừng, tiếp tục và xóa các URL hiện có vẫn hoạt động.
Lưu lượng truy cập:
| Công cụ | Chức năng | Tham số |
|---|---|---|
get_status | Báo cáo việc thu thập có đang bật không và lượng lưu lượng đang được lưu trong bộ đệm. | không có |
enable_capture | Bật thu thập. Thu thập mặc định bị tắt và được đặt lại khi daemon khởi động lại. | không có |
list_traffic | Liệt kê các trao đổi gần đây, mới nhất trước. | last (mặc định 20), host chuỗi con, project id, method, status (mã chính xác hoặc một lớp như 5xx) |
get_exchange | Trả về một trao đổi theo id. | id bắt buộc (id đầy đủ hoặc bất kỳ tiền tố duy nhất nào), format một trong markdown, curl, http, har, json (mặc định markdown), include_response (mặc định true) |
Một trao đổi là yêu cầu LocalCan đã chuyển tiếp đến backend của bạn, không phải bản sao từng byte của yêu cầu gốc từ máy khách. Xem Lưu lượng truy cập để biết mô hình dữ liệu.
URL công khai:
| Công cụ | Chức năng | Tham số |
|---|---|---|
list_services | Liệt kê các dịch vụ LocalCan phục vụ, mỗi dịch vụ có một xử lý <project>/<service>, mục tiêu cục bộ và số lượng điểm cuối. | không có |
list_public_urls | Liệt kê các URL công khai của bạn, bao gồm cả các URL đã tạm dừng, mỗi URL có trạng thái (hoạt động, tạm dừng, lỗi, đang khởi động, không hoạt động) và nội dung nó phục vụ (trực tiếp, ảnh chụp nhanh, không có). Mỗi hàng cũng mang access: không có, mật khẩu, liên kết hoặc tên chính sách nhóm. Một URL đang đỗ phục vụ Ảnh chụp nhanh sẽ đọc trạng thái tạm dừng nhưng phục vụ ảnh chụp nhanh, vì vậy hãy trả lời "liên kết có hoạt động không?" dựa trên nội dung phục vụ, không phải trạng thái. | không có |
get_public_url_status | Báo cáo trạng thái của một URL công khai, nội dung nó phục vụ (trực tiếp, ảnh chụp nhanh, không có) và bảo vệ access của nó, cùng từ vựng như danh sách, cộng với mục tiêu cục bộ và bất kỳ quy tắc tiêu đề yêu cầu nào. | url bắt buộc |
create_public_url | Tạo một URL công khai cho một cổng cục bộ trong một dự án mới và trả về địa chỉ được chỉ định, như my-app-12.localcan.dev. Mất vài giây. Nếu tunnel bị từ chối (ví dụ giới hạn URL công khai của gói bạn) hoặc hết thời gian, nỗ lực sẽ được hoàn tác và không để lại gì. Đối với một liên kết vẫn truy cập được sau khi máy của bạn ngoại tuyến, hãy thêm Ảnh chụp nhanh bằng add_snapshot. Đối với một ứng dụng được phục vụ như máy chủ ảo, hãy truyền host và một quy tắc Host trong headers (xem bên dưới). | port bắt buộc, name tùy chọn (định hình địa chỉ), protocol http hoặc tcp (mặc định http), host tùy chọn (mặc định localhost), headers tùy chọn (quy tắc tiêu đề yêu cầu, mỗi {name, value, mode?, enabled?}) |
add_public_url | Thêm một URL công khai vào một dịch vụ bạn đã cấu hình. Giao thức tuân theo mục tiêu của dịch vụ, vì vậy mục tiêu tcp:// sẽ có tunnel TCP. Cùng cơ chế hoàn tác khi thất bại như tạo. | service xử lý bắt buộc |
pause_public_url | Đưa một URL công khai ngoại tuyến trong khi giữ địa chỉ của nó, để có thể tiếp tục sau. Một địa chỉ *.localcan.dev được tạo sẽ được giữ trong 7 ngày khi tạm dừng, tên miền tùy chỉnh không bao giờ hết hạn. | url bắt buộc |
resume_public_url | Đưa một URL công khai đã tạm dừng trở lại trực tuyến tại cùng địa chỉ. | url bắt buộc |
remove_public_url | Xóa vĩnh viễn một URL công khai. Một địa chỉ được tạo sẽ được giải phóng, một tên miền tùy chỉnh vẫn thuộc về bạn và có thể được thêm lại. Xóa điểm cuối cuối cùng của một dịch vụ cũng xóa dịch vụ và dự án đã trống. Để giữ địa chỉ nhưng ngừng phục vụ Ảnh chụp nhanh, hãy dùng remove_snapshot. Được đánh dấu là phá hủy, vì vậy các máy chủ thường yêu cầu xác nhận. | url bắt buộc |
set_public_url_headers | Thay thế các quy tắc tiêu đề yêu cầu trên một URL công khai, các tiêu đề LocalCan đặt trước khi chuyển tiếp đến ứng dụng của bạn. Truyền danh sách đầy đủ, danh sách trống sẽ xóa chúng. get_public_url_status báo cáo các quy tắc ở cùng định dạng (mode set, append hoặc remove, và enabled), vì vậy một danh sách đọc ở đó có thể được chỉnh sửa và ghi lại. | url và headers bắt buộc |
Một ứng dụng được phục vụ như máy chủ ảo (một trang Laravel Herd hoặc Valet tại myapp.test, một server_name nginx) cần thấy tên máy chủ của chính nó, và LocalCan chuyển tiếp tên máy chủ công khai theo mặc định. Truyền host và một quy tắc Host, headers: [{"name": "Host", "value": "{{target_host}}"}], và ứng dụng sẽ phục vụ đúng trang. Các mẫu giá trị là các mẫu từ Tiêu đề.
Ảnh chụp nhanh (xem Ảnh chụp nhanh):
| Công cụ | Chức năng | Tham số |
|---|---|---|
publish_snapshot | Xuất bản một thư mục dưới dạng Ảnh chụp nhanh trên một URL công khai mới, để nó vẫn truy cập được sau khi máy của bạn ngoại tuyến. Trỏ vào đầu ra tĩnh đã xây dựng khi có thể, hoặc vào thư mục gốc dự án để LocalCan xây dựng (các phụ thuộc phải được cài đặt sẵn). Trả về địa chỉ mới. Luôn tạo một URL mới, vì vậy để làm mới bản xem trước hiện có hãy dùng update_snapshot. | path bắt buộc (đường dẫn tuyệt đối), name tùy chọn (định hình địa chỉ) |
add_snapshot | Thêm một Ảnh chụp nhanh vào một URL công khai bạn đã có, để một liên kết hiện có tiếp tục phục vụ ngoại tuyến. Trỏ vào update_snapshot nếu URL đã có một ảnh. | url và path bắt buộc |
update_snapshot | Xuất bản lại Ảnh chụp nhanh trên một URL công khai. Bỏ qua path để xây dựng lại từ cùng nguồn, hoặc truyền nó để trỏ lại vào một thư mục khác. Trỏ vào add_snapshot nếu URL không có ảnh nào. | url bắt buộc, path tùy chọn |
remove_snapshot | Xóa Ảnh chụp nhanh khỏi một URL công khai. URL vẫn được giữ và tiếp tục phục vụ trực tiếp trong khi tunnel của bạn hoạt động. Được đánh dấu là phá hủy. | url bắt buộc |
get_snapshot_status | Báo cáo Ảnh chụp nhanh của một URL công khai: thư mục nguồn của nó, thời điểm xuất bản, nguồn có thay đổi kể từ đó không (cũ) và URL hiện đang phục vụ trực tiếp hay ảnh chụp nhanh. Cũng mang các nhận xét đánh giá trên đó (trạng thái và số lượng) và, sau khi nhận xét đã bật, số phiên bản của Ảnh chụp nhanh. | url bắt buộc |
Kiểm soát truy cập (xem Kiểm soát truy cập):
| Công cụ | Chức năng | Tham số |
|---|---|---|
set_password | Bảo vệ một URL công khai bằng mật khẩu để chỉ những người có mật khẩu mới mở được. Được thực thi trên máy chủ của LocalCan, vì vậy nó cũng bao phủ Ảnh chụp nhanh trên URL đó. Tạo một mật khẩu mạnh trừ khi bạn truyền một mật khẩu, và trả về nó để bạn chia sẻ. Cần gói đăng ký. | url bắt buộc, password tùy chọn (bỏ qua để tạo một mật khẩu) |
clear_access | Xóa bảo vệ mật khẩu, làm cho URL công khai trở lại. Không xóa URL hoặc Ảnh chụp nhanh của nó. Được đánh dấu là phá hủy, vì vậy các máy chủ thường yêu cầu xác nhận. | url bắt buộc |
get_access_status | Báo cáo bảo vệ của một URL công khai và trả về mật khẩu hiện tại của nó khi được bảo vệ bằng mật khẩu. Mật khẩu không bao giờ được trả về bởi list_public_urls, chỉ ở đây. | url bắt buộc |
Nhận xét (các nhận xét đánh giá người đánh giá để lại trên một Ảnh chụp nhanh, xem Nhận xét):
| Công cụ | Chức năng | Tham số |
|---|---|---|
list_comments | Liệt kê các chuỗi nhận xét trên Ảnh chụp nhanh của một URL công khai kèm các phản hồi của chúng. Mỗi chuỗi mang đường dẫn trang, neo (một bộ chọn CSS và vị trí của ghim trong phần tử đó), khung nhìn và trình duyệt của người đánh giá, và phiên bản Ảnh chụp nhanh mà nó được để lại. Không bao giờ đánh dấu bất cứ điều gì là đã đọc. | url bắt buộc, status open, resolved hoặc all (mặc định open), page đường dẫn, version số |
reply_comment | Đăng một phản hồi vào một chuỗi dưới tên tài khoản của bạn. Người đánh giá trên chuỗi nhận được nó qua email trừ khi thông báo phản hồi bị tắt cho nhóm hoặc họ đã hủy đăng ký. Chỉ phản hồi, chuỗi mới được ghim trên trang. | url, comment_id, body bắt buộc |
resolve_comment | Đánh dấu một chuỗi là đã giải quyết, bao gồm cả phản hồi. | url và comment_id bắt buộc |
reopen_comment | Mở lại một chuỗi đã giải quyết. | url và comment_id bắt buộc |
set_comments | Chuyển đổi nhận xét trên một Ảnh chụp nhanh: bật, tạm dừng (các chuỗi hiện có vẫn đọc được, không có chuỗi mới) hoặc tắt. Cần một URL được bảo vệ và một gói đăng ký. | url và state bắt buộc |
Vòng phản hồi
Các công cụ kết nối thành một vòng lặp mà một tác nhân có thể tự chạy: list_comments để đọc các chuỗi đang mở, chỉnh sửa nguồn, update_snapshot để xuất bản phiên bản mới, sau đó reply_comment và resolve_comment cho mỗi chuỗi. Nhận xét được chuyển sang phiên bản mới, vì vậy người đánh giá thấy phản hồi trên cùng một ghim. Máy chủ tự nói với tác nhân điều này. Các hướng dẫn MCP của nó, mà các máy chủ thêm vào lời nhắc của tác nhân, mô tả vòng lặp, thiết lập vòng đánh giá (publish_snapshot, set_password, set_comments) và công thức máy chủ ảo. Hai điều một tác nhân không thể làm: bắt đầu một chuỗi (người đánh giá ghim chúng trên trang) và đánh dấu chuỗi là đã đọc (chưa đọc là trạng thái hộp thư đến của riêng bạn trong ứng dụng).
Kết nối một tác nhân
Cách bạn kết nối phụ thuộc vào cách tác nhân chạy. Các tác nhân đầu cuối (Claude Code, Codex) kế thừa PATH shell của bạn, vì vậy một lệnh localcan đơn giản hoạt động. Các ứng dụng GUI (Cursor, Claude Desktop, VS Code và các ứng dụng khác) không tải PATH shell của bạn, vì vậy chúng cần đường dẫn tuyệt đối đến tệp nhị phân, ví dụ /Users/you/.localcan/bin/localcan. Cài đặt của ứng dụng máy tính để bàn có thể sao chép một cấu hình sẵn sàng với đường dẫn chính xác được điền, đây cũng là cách đáng tin cậy trên Windows.
Claude Code
claude mcp add --scope user localcan -- localcan mcp
Cờ --scope user đăng ký máy chủ cho mọi dự án. Bỏ nó để chỉ đăng ký trong dự án hiện tại.
Codex
codex mcp add localcan -- localcan mcp
Điều này ghi máy chủ vào ~/.codex/config.toml. Đối với ứng dụng máy tính để bàn Codex hoặc tiện ích mở rộng IDE, hãy truyền đường dẫn tuyệt đối thay cho localcan.
Cursor, Claude Desktop và Windsurf
Chúng chia sẻ cùng định dạng mcpServers:
{
"mcpServers": {
"localcan": {
"command": "/Users/you/.localcan/bin/localcan",
"args": ["mcp"]
}
}
}
Thêm nó vào tệp đúng, sau đó tải lại:
- Cursor:
~/.cursor/mcp.json, sau đó bật máy chủ trong Cài đặt. - Claude Desktop:
claude_desktop_config.json(Cài đặt, Nhà phát triển, Chỉnh sửa Cấu hình), sau đó thoát và khởi chạy lại. - Windsurf:
~/.codeium/windsurf/mcp_config.json, sau đó làm mới bảng MCP.
VS Code
VS Code (chế độ tác nhân Copilot) sử dụng một khóa servers với một loại rõ ràng. Thêm điều này vào .vscode/mcp.json trong không gian làm việc của bạn:
{
"servers": {
"localcan": {
"type": "stdio",
"command": "/Users/you/.localcan/bin/localcan",
"args": ["mcp"]
}
}
}
Bạn cũng có thể chạy code --add-mcp với cùng đối tượng máy chủ.
Zed
Zed sử dụng context_servers trong settings.json của nó:
{
"context_servers": {
"localcan": {
"source": "custom",
"command": "/Users/you/.localcan/bin/localcan",
"args": ["mcp"]
}
}
}
Bạn cũng có thể thêm nó từ cài đặt Bảng Tác nhân.
Truy cập tác nhân, biên tập và quyền ghi
Cả ba đều được kiểm soát trong ứng dụng máy tính để bàn dưới Cài đặt (phần "AI Agents (MCP)"), hoặc từ thiết bị đầu cuối: localcan mcp enable / disable cho truy cập tác nhân, localcan mcp redact <on|off> cho biên tập, localcan mcp access <read_only|read_write> cho quyền ghi và localcan mcp status để xem trạng thái hiện tại.
- Quyền truy cập của agent được bật theo mặc định. Tắt nó để ngăn agent sử dụng LocalCan hoàn toàn. Máy chủ vẫn khởi động, nhưng mọi công cụ đều trả về thông báo rõ ràng "quyền truy cập đã bị vô hiệu hóa" cho đến khi bạn bật lại.
- Tính năng che dữ liệu được bật theo mặc định cho agent. Các header nhạy cảm (Authorization, cookie, khóa API) sẽ bị loại bỏ khỏi phản hồi của công cụ. URL và nội dung không bị che. Tắt nó để agent của bạn nhận được giá trị thô.
- Quyền ghi bị tắt theo mặc định. Đọc hoạt động mà không cần nó, nhưng các công cụ ghi trả về thông báo chỉ đọc rõ ràng cho đến khi bạn bật nó trong ứng dụng ("Cho phép agent tạo và thay đổi Public URL") hoặc bằng
localcan mcp access read_write. Bật quyền truy cập agent không cấp quyền ghi. Chúng là các công tắc riêng biệt. Mọi lệnh ghi đều được ghi vào đầu ra chẩn đoán của máy chủ, mà host của bạn thu thập, để bạn có bản ghi về những gì agent đã thay đổi. Mật khẩu được truyền choset_passwordsẽ bị che trong nhật ký đó.
Khi một công cụ từ chối
- Mọi công cụ đều báo lỗi với thông báo kết nối daemon: LocalCan không đang chạy. Mở ứng dụng desktop hoặc chạy
localcan start -d. list_traffickhông trả về gì: tính năng capture đang tắt (tắt theo mặc định và đặt lại khi daemon khởi động lại). Chạylocalcan traffic enablehoặc để agent gọienable_capture.- "MCP access is disabled": quyền truy cập agent đã bị tắt. Chạy
localcan mcp enablehoặc bật công tắc trong Settings. - "MCP is read-only": công cụ thay đổi dữ liệu và quyền ghi đang tắt. Chạy
localcan mcp access read_writehoặc bật công tắc trong Settings. - "public URLs require a license": tạo và thêm Public URL cần có giấy phép đang hoạt động. Kích hoạt một giấy phép trong ứng dụng hoặc bằng
localcan license activate <key>. - "need a subscription plan": Snapshots và Access control chỉ dành cho thuê bao. Giấy phép vĩnh viễn có thể mở Public URL nhưng không thể xuất bản Snapshot hoặc đặt mật khẩu. Đăng ký từ dashboard của bạn, sau đó thử lại.
- "already has a snapshot" hoặc "has no snapshot yet": sử dụng công cụ mà thông báo đề cập.
add_snapshotgắn Snapshot vào URL chưa có,update_snapshotlàm mới URL đã có. - "Snapshot limit reached": gói của bạn giới hạn số Public URL có thể phục vụ Snapshot cùng lúc. Thông báo liệt kê các URL đang sử dụng một vị trí, bạn có thể làm mới chúng bằng
update_snapshotthay vì xuất bản một cái mới. - "Comments need a protected URL":
set_commentsđược gọi trên URL không có Access control. Chạyset_passwordtrước. - "Your account has no display name": một câu trả lời cần tên để đăng. Đặt nó trong dashboard, hoặc trả lời một lần trên trang Snapshot sau khi mở nó với tư cách chủ sở hữu từ ứng dụng.
- Host hiển thị máy chủ bị lỗi hoặc không có công cụ: ứng dụng GUI không thể tìm thấy
localcantrên PATH. Sử dụng đường dẫn tuyệt đối, dễ nhất là qua Settings copy config.