Skip to main content
Glama

proxy_test_rule_match

Test which proxy interception rules match a specific HTTP request, providing detailed pass/fail diagnostics and identifying the winning rule by priority.

Instructions

Test which interception rules would match a request, with detailed per-field pass/fail diagnostics and effective winner by priority.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNosimulate: test a synthetic request, exchange: test an existing captured exchangesimulate
requestNoSynthetic request (required when mode=simulate)
exchange_idNoExchange ID from proxy_list_traffic (required when mode=exchange)
include_disabledNoInclude disabled rules in diagnostics (default: true); disabled rules never win
limit_rulesNoOptional limit on number of priority-sorted rules evaluated

Implementation Reference

  • The handler function for the `proxy_test_rule_match` tool, which delegates to `proxyManager.testRulesAgainstExchange` or `proxyManager.testRulesAgainstRequest`.
    async ({ mode, request, exchange_id, include_disabled, limit_rules }) => {
      try {
        const options = {
          includeDisabled: include_disabled,
          limitRules: limit_rules,
        };
    
        if (mode === "exchange") {
          if (!exchange_id) {
            return {
              content: [{
                type: "text",
                text: JSON.stringify({ status: "error", error: "exchange_id is required when mode='exchange'" }),
              }],
            };
          }
          const result = proxyManager.testRulesAgainstExchange(exchange_id, options);
          return {
            content: [{
              type: "text",
              text: truncateResult({
                status: "success",
                mode,
                exchange_id,
                result,
              }),
            }],
          };
        }
    
        if (!request) {
          return {
            content: [{
              type: "text",
              text: JSON.stringify({ status: "error", error: "request is required when mode='simulate'" }),
            }],
          };
        }
    
        const result = proxyManager.testRulesAgainstRequest(request, options);
        return {
          content: [{
            type: "text",
            text: truncateResult({
              status: "success",
              mode,
              result,
            }),
          }],
        };
      } catch (e) {
  • Tool registration for `proxy_test_rule_match` including the schema definition.
    server.tool(
      "proxy_test_rule_match",
      "Test which interception rules would match a request, with detailed per-field pass/fail diagnostics and effective winner by priority.",
      {
        mode: z.enum(["simulate", "exchange"]).optional().default("simulate")
          .describe("simulate: test a synthetic request, exchange: test an existing captured exchange"),
        request: testRequestSchema.optional().describe("Synthetic request (required when mode=simulate)"),
        exchange_id: z.string().optional().describe("Exchange ID from proxy_list_traffic (required when mode=exchange)"),
        include_disabled: z.boolean().optional().default(true)
          .describe("Include disabled rules in diagnostics (default: true); disabled rules never win"),
        limit_rules: z.number().optional().describe("Optional limit on number of priority-sorted rules evaluated"),
      },
Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yfe404/proxy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server