Saltar al contenido principal
Cada regla de firewall empieza respondiendo ¿a qué llamadas a herramienta aplico?. La primera mitad de esa respuesta es un glob de nombre de herramienta — el campo tool_name_glob de una regla. Es una gramática deliberadamente pequeña y sensible a mayúsculas (sin regex, sin retroceso) para que una regla se lea de la misma forma en que escribirías un nombre de herramienta desde la pestaña Herramientas descubiertas, y la coincidencia se mantenga en tiempo lineal en la ruta caliente del relay. Esta página es la referencia de gramática enfocada a ese único campo. Para dónde se sitúa un glob dentro de una regla completa — la superficie, las cláusulas de argumentos, las listas de egress, el veredicto — ver Esquema de regla y la referencia profunda del motor en Reglas del Firewall.

1. Por qué un glob de nombre de herramienta en vez de regex

Las herramientas se nombran convencionalmente con espacio de nombres server.tool o category.action (shell.exec, db.query, community.http_fetch). Un glob deja que una regla capture toda una familia — shell.* para cada verbo shell, *.delete para un verbo a través de servidores — sin las trampas de un regex en una ruta que se ejecuta en cada llamada a herramienta.
La gramática es intencionalmente diminuta. La coincidencia es sensible a mayúsculas — los nombres de herramienta MCP son convencionalmente minúsculas-con-puntos, así que un plegado de mayúsculas sorprendería a un autor que copia-pega un nombre directamente desde la vista de Herramientas descubiertas. No hay retroceso catastrófico porque no hay motor de regex detrás; cada patrón de abajo es un puñado de operaciones de string.

2. Las cinco formas de patrón

Un glob de nombre de herramienta es exactamente una de estas formas. Cualquier cosa que no encaje en las formas de comodín se trata como un literal, una coincidencia exacta.
PatrónFormaCoincide con
"" o *cualquieraCada llamada a herramienta.
foo.*prefijofoo.bar, foo.execno foo pelado.
*.execsufijoshell.exec, db.exec, y exec pelado.
*.shell.*infijolocal.shell.exec, byo.shell.run.
shell.execexactoSolo el string literal shell.exec.
Lee las siguientes secciones para el único borde de cada forma que hace tropezar a la gente.

3. Prefijo — foo.*

Coincide con cualquier herramienta cuyo nombre empieza con foo. y tiene al menos un carácter más después del punto.

Coincide

shell.exec, shell.run, shell.rm para el patrón shell.*

No coincide

shell pelado (el prefijo requiere el punto final y algo después de él)
Usa un glob de prefijo para gobernar un servidor o categoría entera de una vez — un solo deny shell.* cubre cada verbo shell que un servidor pueda añadir más adelante.

4. Sufijo — *.exec

Coincide con cualquier herramienta cuyo nombre termina con .exec, anclado en un punto — y también coincide con el verbo pelado, sin espacio de nombres, exec por sí solo.
La coincidencia de verbo pelado es deliberada. Las llamadas a función nativas del proveedor y los servidores MCP que no usan espacio de nombres exponen una herramienta bajo su verbo pelado (solo exec, no shell.exec). Una regla *.exec cubre ambas formas para que una herramienta sin espacio de nombres no se pierda silenciosamente.
El sufijo permanece anclado — no coincidirá con una palabra parcial:
Patrónshell.execexec peladoshell.execute
*.execcoincidecoincidesin coincidencia
*.execute sería necesario para shell.execute; el sufijo solo se dispara en una frontera de punto o al inicio del string, nunca a mitad de palabra.

5. Infijo — *.shell.*

Coincide con cualquier nombre de herramienta que contiene .shell. como un infijo, con al menos un carácter a cada lado. Así es como una regla cubre un verbo dondequiera que un servidor BYO-MCP resulte ponerlo en espacio de nombres.
{
  "label": "gate every shell tool, any server",
  "tool_name_glob": "*.shell.*",
  "verdict": "deny"
}
Esa regla coincide con local.shell.exec, byo.shell.run y cualquier otra forma <server>.shell.<verb>. No coincide con shell pelado ni con un .shell. pelado sin nada alrededor — el requisito de carácter-a-cada-lado mantiene el infijo honesto.
La forma de infijo es únicamente la forma simétrica *.X.*. Un patrón con una estrella en el mediofoo.*.barno es un glob de infijo; cae a una coincidencia de string exacta (solo coincide con una herramienta literalmente llamada foo.*.bar, que no existirá). Para coincidir con “empieza con foo., termina con .bar” necesitas dos reglas o una cláusula de argumentos, no un glob.

6. Exacto — shell.exec

Cualquier cosa que no sea una de las formas de comodín de arriba es una coincidencia de string literal. shell.exec coincide con shell.exec y nada más. Esta es la elección correcta cuando quieres nombrar una herramienta específica — combínala con una cláusula de argumentos para estrechar más (“bloquear shell.exec solo cuando el comando es rm -rf”).

7. Un ejemplo concreto

Supón que quieres denegar cada verbo shell destructivo sin importar cómo un servidor MCP lo pone en espacio de nombres, mientras dejas que todo lo demás audite. En el editor de reglas de la consola (las escrituras requieren Developer+), la mitad de coincidencia de la regla es un solo glob de infijo:
{
  "label": "deny shell across servers",
  "stage": "response",
  "tool_name_glob": "*.shell.*",
  "verdict": "deny"
}
Adjunta una clave a la política (firewall_policy_id en la clave), y la regla ahora captura local.shell.exec, byo.shell.run y acme.shell.rm — tres servidores, un glob. ¿Quieres confirmar que se dispara en lo que esperas antes de depender de ella? Usa Probar reglas — devuelve el veredicto, la regla coincidente y la razón sin despachar nada.
Un glob estrecha qué herramienta. Para estrechar con qué argumentos, conjuga una cláusula de argumentos sobre la misma regla; para gobernar una herramienta solo cuando una skill particular la posee, añade un glob de nombre de skill (misma gramática, coincidida contra la skill propietaria). Ambos se cubren en Reglas del Firewall.

8. Referencia rápida

Sí. *.exec coincide con shell.exec, db.exec, y el exec pelado, sin espacio de nombres. Los globs de prefijo (foo.*) no coinciden con el espacio de nombres pelado foo — solo nombres con algo después del punto.
No. La única forma de comodín-en-el-medio que el motor entiende es el infijo simétrico *.X.*. foo.*.bar cae a una coincidencia literal exacta. Usa dos reglas o una cláusula de argumentos en su lugar.
Sí. Shell.Exec y shell.exec son herramientas diferentes. Copia los nombres literalmente desde la pestaña Herramientas descubiertas.
Cualquier forma que no sea una de las cinco de arriba se trata como una coincidencia exacta — simplemente no coincidirá con un nombre de herramienta real, así que la regla nunca se dispara en vez de coincidir con algo inesperado. La consola valida las reglas al guardar.

Relacionado

Lista de permitidos de herramientas

Usa globs para permitir un conjunto conocido y denegar el resto.

Validar argumentos

Conjuga una cláusula de argumentos JSONPath sobre un glob.

Esquema de regla

Cada campo de una regla, en un solo lugar.
Para el lenguaje de coincidencia completo — veredictos, superficies, listas de egress y secuencias — ver Reglas del Firewall. ¿Nuevo en el plano? Empieza en la Visión general del Firewall.