tool_name_glob trên một quy tắc. Nó là một ngữ pháp nhỏ có chủ đích, phân
biệt hoa-thường (không regex, không backtracking) nên một quy tắc đọc lên
giống như cách bạn gõ một tên tool từ tab Discovered tools, và việc so
khớp giữ thời gian tuyến tính trên hot path của relay.
Trang này là tham chiếu ngữ pháp tập trung cho một trường đó. Để biết một glob
nằm đâu bên trong một quy tắc đầy đủ — bề mặt, mệnh đề argument, danh sách
egress, verdict — xem Schema quy tắc và
tham chiếu engine sâu trong Quy tắc Firewall.
1. Tại sao một glob tên tool thay vì regex
Các tool theo quy ước được đặt namespace server.tool hoặc category.action
(shell.exec, db.query, community.http_fetch). Một glob cho phép một quy
tắc bắt cả một họ — shell.* cho mọi động từ shell, *.delete cho một động
từ trên nhiều server — mà không có những cái bẫy của một regex trên một đường
chạy trên mọi cuộc gọi tool.
Ngữ pháp cố tình rất nhỏ. So khớp phân biệt hoa-thường — tên tool MCP
theo quy ước là chữ-thường-với-dấu-chấm, nên một case-fold sẽ làm bất ngờ một
người soạn copy-paste một tên thẳng từ chế độ xem Discovered tools. Không có
backtracking thảm họa vì không có engine regex đằng sau nó; mọi mẫu bên dưới
là một nhúm phép toán chuỗi.
2. Năm hình dạng mẫu
Mộtglob tên tool đúng là một trong các hình dạng này. Bất cứ thứ gì không
khớp các dạng wildcard đều được xử lý như một literal, match chính xác.
| Mẫu | Hình dạng | Khớp |
|---|---|---|
"" hoặc * | bất kỳ | Mọi cuộc gọi tool. |
foo.* | tiền tố | foo.bar, foo.exec — không phải foo trần. |
*.exec | hậu tố | shell.exec, db.exec, và exec trần. |
*.shell.* | trung tố | local.shell.exec, byo.shell.run. |
shell.exec | chính xác | Chỉ chuỗi literal shell.exec. |
3. Tiền tố — foo.*
Khớp bất kỳ tool nào có tên bắt đầu bằng foo. và có ít nhất một ký tự
nữa sau dấu chấm.
Khớp
shell.exec, shell.run, shell.rm cho mẫu shell.*Không khớp
shell trần (tiền tố yêu cầu dấu chấm cuối và thứ gì đó sau nó)shell.* bao phủ mọi động từ shell mà một server có thể thêm sau này.
4. Hậu tố — *.exec
Khớp bất kỳ tool nào có tên kết thúc bằng .exec, neo tại một dấu chấm —
và cũng khớp động từ trần, không namespace exec đứng một mình.
Hậu tố giữ neo — nó sẽ không khớp một phần của từ:
| Mẫu | shell.exec | exec trần | shell.execute |
|---|---|---|---|
*.exec | khớp | khớp | không khớp |
*.execute sẽ cần cho shell.execute; hậu tố chỉ kích hoạt ở một ranh giới
dấu chấm hoặc đầu chuỗi, không bao giờ giữa từ.
5. Trung tố — *.shell.*
Khớp bất kỳ tên tool nào chứa .shell. như một trung tố, với ít nhất một
ký tự ở mỗi phía. Đây là cách một quy tắc bao một động từ ở bất cứ đâu mà
một BYO-MCP server tình cờ đặt namespace cho nó.
local.shell.exec, byo.shell.run, và bất kỳ hình dạng
<server>.shell.<verb> nào khác. Nó không khớp shell trần hoặc một
.shell. trần không có gì xung quanh — yêu cầu ký-tự-ở-mỗi-phía giữ trung tố
trung thực.
6. Chính xác — shell.exec
Bất cứ thứ gì không phải một trong các hình dạng wildcard ở trên là một match
chuỗi literal. shell.exec khớp shell.exec và không gì khác. Đây là lựa
chọn đúng khi bạn muốn nêu tên một tool cụ thể — ghép nó với một
mệnh đề argument để thu hẹp thêm
(“block shell.exec chỉ khi lệnh là rm -rf”).
7. Một ví dụ cụ thể
Giả sử bạn muốn deny mọi động từ shell phá hủy bất kể một MCP server đặt namespace nó ra sao, trong khi để mọi thứ khác audit. Trong trình chỉnh sửa quy tắc của console (ghi yêu cầu Developer+), nửa so khớp của quy tắc là một glob trung tố duy nhất:firewall_policy_id trên key), và quy tắc giờ bắt
local.shell.exec, byo.shell.run, và acme.shell.rm — ba server, một glob.
Muốn xác nhận nó kích hoạt trên đúng cái bạn mong đợi trước khi phụ thuộc vào
nó? Dùng Test quy tắc — nó trả về verdict,
quy tắc đã khớp, và lý do mà không dispatch gì.
Một glob thu hẹp tool nào. Để thu hẹp với đối số gì, AND một
mệnh đề argument lên cùng quy tắc;
để quản trị một tool chỉ khi một skill cụ thể sở hữu nó, thêm một glob tên
skill (cùng ngữ pháp, khớp với skill sở hữu). Cả hai được đề cập trong
Quy tắc Firewall.
8. Tham chiếu nhanh
Động từ trần có được một suffix glob bao không?
Động từ trần có được một suffix glob bao không?
Có.
*.exec khớp shell.exec, db.exec, và exec trần, không
namespace. Các prefix glob (foo.*) không khớp namespace trần foo
— chỉ các tên có gì đó sau dấu chấm.Dấu sao ở giữa trong foo.*.bar có hoạt động không?
Dấu sao ở giữa trong foo.*.bar có hoạt động không?
Không. Hình dạng wildcard-ở-giữa duy nhất mà engine hiểu là trung tố đối
xứng
*.X.*. foo.*.bar rơi xuống thành một match literal chính xác.
Dùng hai quy tắc hoặc một mệnh đề argument thay vào.So khớp có phân biệt hoa-thường không?
So khớp có phân biệt hoa-thường không?
Có.
Shell.Exec và shell.exec là các tool khác nhau. Copy tên nguyên
văn từ tab Discovered tools.Nếu glob bị dị dạng thì sao?
Nếu glob bị dị dạng thì sao?
Bất kỳ hình dạng nào không phải một trong năm cái ở trên được xử lý như
một match chính xác — nó đơn giản sẽ không khớp một tên tool thật, nên quy
tắc không bao giờ kích hoạt thay vì khớp một thứ bất ngờ. Console kiểm tra
quy tắc khi lưu.
Liên quan
Allow-list tool
Dùng glob để allow một tập đã biết và deny phần còn lại.
Kiểm tra đối số
AND một mệnh đề argument JSONPath lên một glob.
Schema quy tắc
Mọi trường của một quy tắc, ở một nơi.
