Tailscale MCP rejected in owner-created webhook routine, but works in direct chat (0.78.1)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- networking
Hướng nghiên cứu
Start with the Tailscale plugin README and setup skill, then compare their wording about owner-scheduled routines with the routine documentation on webhook triggers. Trace how execution origin is checked for webhook routines and how that affects private MCP tool loading and calls. Done means establishing whether webhook routines are supported and, if so, resolving the rejection; if not, documenting the distinction and an actionable explanation.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
On Grok Bot 0.78.1 stable, a custom private MCP connector works from the owner's direct chat, but the same connector is rejected when used by an owner-created webhook routine.
The webhook returns HTTP 200 and the routine starts. The failure occurs afterward, when the routine tries to load or call the private MCP tools. Please clarify whether owner-created webhook routines are supported for Tailscale MCP access, and investigate the execution-origin check if they are.
Environment
- Grok Bot: 0.78.1, stable; macOS / darwin
- Build: 2026-10-28T02:34:00.517Z
- Reproduced: 2026-10-30
- Official Tailscale plugin connected to a personal tailnet
- Custom remote HTTP/Streamable HTTP MCP at a private HTTPS
<server>.<tailnet>.ts.net/mcpaddress - Connector authentication: static Bearer header, already configured and working in direct chat
- Tailscale Funnel disabled; the MCP server is not publicly exposed
Steps to reproduce
- Connect the official Tailscale plugin and register a private MCP connector with valid authentication.
- From the owner's direct Grok Bot chat, verify tools/list, ping, and an ordinary mailbox operation. These succeed in our setup.
- In that same owner's Bot, create a webhook routine that uses the existing connector to reserve one test request, read it, and save one echo result. Do not change the connector URL or credentials.
- POST a small JSON notification containing only test identifiers to the routine's generated webhook URL, authenticated with its sender key.
- Observe HTTP 200 and the routine starting, then inspect its MCP access result.
Three controlled deliveries reproduced the failure. The first two used the Authorization header. A further comparison also included X-Automation-Key with the same sender key, as shown in the repository's make-bot-ui example. It still failed. Values and identifiers are omitted here.
Actual behavior
Depending on the run:
- The connector is reported as error / zero tools while loading the routine's tools; or
- Tools are visible, but calling the server-side reservation tool fails.
The routine reported this error:
Tool execution error. Tailnet servers work only in your own conversations with Grok Bot.
Someone else, an agent, or an automation started this request.
To use this server, send the request yourself in a Grok Bot chat or a Slack direct message to Grok Bot.
The tools-loading failure also appeared with the prefix failed_to_load: and the same explanatory text.
Our server's reservation/audit, result, and read-receipt records confirm no successful processing of the test requests. This is not a claim that all network traffic was captured. Webhook acceptance and routine wakeup succeeded; task completion did not.
Expected behavior / documentation question
The Tailscale plugin README and setup skill describe access for "routines the owner schedules". The routine documentation includes webhook triggers.
Does this permission include webhook routines created by the owner, or only time-scheduled routines? The time-scheduled case was not tested.
If webhook routines are supported, the observed origin rejection appears inconsistent with that support. If intentionally excluded, please document the distinction and provide an actionable explanation.
Impact and scope
This blocks a private mailbox workflow: another agent posts a request, the server wakes Grok Bot by webhook, and Grok Bot must fetch the request and write its result over the existing private connector.
Including the task body directly in the webhook could avoid fetching its text, but would still leave server-side reservation and result delivery unresolved; this has not been implemented as a workaround.
This report does not establish a root cause or request bypassing origin restrictions. Test runs were cancelled, and webhook sending is paused. Authentication and network exposure were not relaxed.
Separate from #1108: that issue concerns OAuth sign-in before tools become available. Here a static-Bearer connector already works from direct chat; the failure depends on the execution being webhook-triggered.
Real hostnames, tailnet/device/account identifiers, internal message/task/run IDs, credentials, webhook/callback URLs, conversation links, raw logs, and screenshots are intentionally excluded.
- Ngôn ngữ chính
- TypeScript
- Star
- 14.9k
- Fork
- 1.5k
- Merge trung bình
- 3 giờ 18 phút
- Pull request đã merge (30 ngày)
- 144
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cursor/plugins
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
pstack statechart: strict typecheck reports four errors in run.ts and CLI testsCó thể đã có người làm @surlymochan đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
cursor/plugins#1053 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
cursor/plugins#1025 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của cursor/plugins
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
unocss/unocss#5421 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-area
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Azure/typespec-azure#5936 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 72/100
vercel-labs/scriptc#2910 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
automation missing-model model-sync provider:fireworks-ai
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
anomalyco/models.dev#12458 ·
Maintainer thường phản hồi trong vòng 1 ngày