Feranor Resilience

Scan/purge hidden text & score web domains: TLS, DNS, headers, speed. Free scans, $0.01 actions.

我該用這個嗎

品質與安全性

A
說明品質
93%
結構描述完整度
100%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,123Token(工具定義)
~4.5 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.44%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "resilience": {
      "url": "https://www.feranor.com/mcp"
    }
  }
}

遠端端點

https://www.feranor.com/mcpstreamable-http

它能做什麼

工具清單

工具(6)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🔴text_purge_v1(text)

Removes invisible Unicode characters and replaces homoglyphs in a text string. Returns the cleaned text plus a before-and-after comparison. Use this tool after text_scan_v1 to fix flagged issues. Price: $0.01 per call (x402, USDC on Base). No signup, no API key.

輸入結構描述

{
  "type": "object",
  "properties": {
    "text": {
      "description": "The text to clean of hidden characters and homoglyphs.",
      "type": "string"
    }
  },
  "required": [
    "text"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "purgedText": {
      "type": [
        "string",
        "null"
      ]
    },
    "charsRemoved": {
      "type": "integer"
    },
    "homoglyphsReplaced": {
      "type": "integer"
    },
    "reportBefore": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "isClean": {
          "type": "boolean"
        },
        "riskScore": {
          "type": "integer"
        },
        "normalizationForm": {
          "type": [
            "string",
            "null"
          ]
        },
        "isNormalized": {
          "type": "boolean"
        },
        "flaggedChars": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "index": {
                "type": "integer"
              },
              "codePoint": {
                "type": "integer"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "category": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "severity": {
                "type": "string",
                "enum": [
                  "Low",
                  "Medium",
                  "High"
                ]
              }
            }
          }
        },
        "homoglyphMatches": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "index": {
                "type": "integer"
              },
              "original": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "originalScript": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "suspectedLatin": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        },
        "categoryCounts": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": {
            "type": "integer"
          }
        },
        "notes": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        }
      }
    },
    "reportAfter": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "isClean": {
          "type": "boolean"
        },
        "riskScore": {
          "type": "integer"
        },
        "normalizationForm": {
          "type": [
            "string",
            "null"
          ]
        },
        "isNormalized": {
          "type": "boolean"
        },
        "flaggedChars": {
          "$ref": "#/properties/reportBefore/properties/flaggedChars",
          "items": {}
        },
        "homoglyphMatches": {
          "$ref": "#/properties/reportBefore/properties/homoglyphMatches",
          "items": {}
        },
        "categoryCounts": {
          "$ref": "#/properties/reportBefore/properties/categoryCounts"
        },
        "notes": {
          "$ref": "#/properties/reportBefore/properties/notes",
          "items": {}
        }
      }
    }
  }
}
🟢domain_check_batch_v1(domains)

Runs the full resilience check on up to 100 domains in a single call and returns the same scored report for each one: TLS certificate, security headers, DNS redundancy, response time, with every individual finding. Use it to audit a portfolio, to rank a list of vendors, or to re-check a fleet after a config rollout. A domain that cannot be reached is returned with its own error rather than failing the batch, and it is still charged, because the crawl was attempted. Do not use it for a single domain: domain_check_v1 is simpler and costs the same for one. Private, internal and localhost hostnames and IP addresses are rejected. Price: $0.01 per domain, dropping to $0.005 from 100 domains, up to 100 per call. One payment covers the whole batch (x402, USDC on Base). No signup, no API key.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domains": {
      "description": "Bare domain names, apex or subdomain, for example ['example.com', 'www.example.org']. Between 1 and 100 entries. Scheme, path, port and query string are ignored if present. Duplicates are removed before billing.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "domains"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "requested": {
      "description": "Number of domains in the request, before de-duplication.",
      "type": "integer"
    },
    "evaluated": {
      "description": "Number of distinct domains actually evaluated. This is the billed quantity.",
      "type": "integer"
    },
    "succeeded": {
      "description": "How many produced a full report. The rest carry an error field.",
      "type": "integer"
    },
    "evaluatedAt": {
      "description": "UTC timestamp of the batch.",
      "type": "string",
      "format": "date-time"
    },
    "results": {
      "description": "One entry per distinct domain, in no guaranteed order.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "description": "Domain as it was requested.",
            "type": [
              "string",
              "null"
            ]
          },
          "report": {
            "description": "Full report, or null when the check could not complete.",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "domain": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "requestedDomain": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "evaluatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "checks": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "category": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "label": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "weight": {
                      "type": "integer"
                    },
                    "earned": {
                      "type": "integer"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "Ok",
                        "Warning",
                        "Critical",
                        "Unknown"
                      ]
                    },
                    "message": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "category",
                    "label",
                    "weight",
                    "earned",
                    "status",
                    "message"
                  ]
                }
              },
              "noArchive": {
                "type": "boolean"
              },
              "noIndex": {
                "type": "boolean"
              },
              "error": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "success": {
                "type": "boolean"
              },
              "score": {
                "type": "integer"
              }
            }
          },
          "error": {
            "description": "Why this domain could not be evaluated. Null on success.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  }
}
🟢domain_check_v1(domain)

Measures how resilient a public web domain is from the outside and returns a weighted score out of 100, a per-category breakdown, and prioritised findings explaining what to fix first. Use it to audit a domain you do not control, to verify a fix after deployment, or to compare several domains on the same scale. Covers TLS certificate validity and protocol version, HTTP to HTTPS redirection, HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, cache directives, response time, DNS redundancy, IPv6 availability, CDN detection and software version disclosure. Everything is read from the public internet: nothing is authenticated, no ports are scanned, and no credentials are needed. Do not use it for private, internal, or localhost hostnames, for IP addresses, or to test a service you need logged-in access to. For a free score without the detailed findings, use domain_check_score_v1 instead. Price: $0.01 per call (x402, USDC on Base). No signup, no API key.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domain": {
      "description": "Bare domain name, apex or subdomain, for example 'example.com' or 'www.example.com'. Scheme, path, port and query string are ignored if present. IP addresses and private or localhost hostnames are rejected.",
      "type": "string"
    }
  },
  "required": [
    "domain"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "domain": {
      "type": [
        "string",
        "null"
      ]
    },
    "requestedDomain": {
      "type": [
        "string",
        "null"
      ]
    },
    "evaluatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "checks": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          },
          "weight": {
            "type": "integer"
          },
          "earned": {
            "type": "integer"
          },
          "status": {
            "type": "string",
            "enum": [
              "Ok",
              "Warning",
              "Critical",
              "Unknown"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "category",
          "label",
          "weight",
          "earned",
          "status",
          "message"
        ]
      }
    },
    "noArchive": {
      "type": "boolean"
    },
    "noIndex": {
      "type": "boolean"
    },
    "error": {
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "type": "boolean"
    },
    "score": {
      "type": "integer"
    }
  }
}
🟢domain_check_score_v1(domain)

Free. Returns the overall resilience score out of 100 for a public web domain, plus the score of each category and how many findings each one raised. Use it to triage: to rank a list of domains, to confirm a domain is healthy, or to decide whether the detailed report is worth pulling. It tells you which categories are weak and how many issues they hold, but not what the issues are. For the individual findings and the prioritised remediation list, use domain_check_v1. Free, no payment required.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domain": {
      "description": "Bare domain name, apex or subdomain, for example 'example.com' or 'www.example.com'. Scheme, path, port and query string are ignored if present. IP addresses and private or localhost hostnames are rejected.",
      "type": "string"
    }
  },
  "required": [
    "domain"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "domain": {
      "description": "Domain that was actually evaluated, after normalisation.",
      "type": [
        "string",
        "null"
      ]
    },
    "score": {
      "description": "Weighted resilience score out of 100.",
      "type": "integer"
    },
    "measuredCategories": {
      "description": "Number of categories that could actually be measured. Compare two domains only when this matches.",
      "type": "integer"
    },
    "categories": {
      "description": "Per-category score and finding count. Finding details are not included.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Category name, for example 'tls' or 'headers'.",
            "type": [
              "string",
              "null"
            ]
          },
          "score": {
            "description": "Score out of 100 for this category.",
            "type": "integer"
          },
          "findingCount": {
            "description": "How many findings this category raised. The findings themselves require domain_check_v1.",
            "type": "integer"
          }
        }
      }
    },
    "evaluatedAt": {
      "description": "UTC timestamp of the evaluation.",
      "type": "string",
      "format": "date-time"
    },
    "detailsAvailableVia": {
      "description": "Name of the tool returning the full findings behind these scores.",
      "type": [
        "string",
        "null"
      ]
    },
    "error": {
      "type": [
        "string",
        "null"
      ]
    },
    "success": {
      "type": "boolean"
    }
  }
}
🟢text_scan_v1(text)

Free. Scans a text string for invisible Unicode characters, homoglyphs, and normalization issues. Returns a risk score and a detailed report. Use this tool before text_purge_v1 to inspect suspicious content. Free, no payment required.

輸入結構描述

{
  "type": "object",
  "properties": {
    "text": {
      "description": "The text to scan for hidden characters and homoglyphs.",
      "type": "string"
    }
  },
  "required": [
    "text"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "isClean": {
      "type": "boolean"
    },
    "riskScore": {
      "type": "integer"
    },
    "normalizationForm": {
      "type": [
        "string",
        "null"
      ]
    },
    "isNormalized": {
      "type": "boolean"
    },
    "flaggedChars": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer"
          },
          "codePoint": {
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "Low",
              "Medium",
              "High"
            ]
          }
        }
      }
    },
    "homoglyphMatches": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer"
          },
          "original": {
            "type": [
              "string",
              "null"
            ]
          },
          "originalScript": {
            "type": [
              "string",
              "null"
            ]
          },
          "suspectedLatin": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "categoryCounts": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": "integer"
      }
    },
    "notes": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    }
  }
}
🟢domain_check_score_batch_v1(domains)

Free. Returns the overall resilience score out of 100 for up to 100 public web domains, plus the score of each category and how many findings each one raised. Use it to triage a portfolio: rank a list of domains, confirm which ones are healthy, or decide which ones are worth pulling the full report on. It tells you which categories are weak and how many issues they hold, but not what the issues are. A domain that cannot be reached is returned with its own error rather than failing the batch. Duplicates are removed. For the individual findings and the prioritised remediation list on a whole list, use domain_check_batch_v1. For a single domain, use domain_check_score_v1. Free, no payment required.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domains": {
      "description": "Bare domain names, apex or subdomain, for example ['example.com', 'www.example.org']. Between 1 and 100 entries. Scheme, path, port and query string are ignored if present.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "domains"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "requested": {
      "description": "Number of domains in the request, before de-duplication.",
      "type": "integer"
    },
    "evaluated": {
      "description": "Number of distinct domains actually evaluated. This is the billed quantity.",
      "type": "integer"
    },
    "succeeded": {
      "description": "How many produced a full report. The rest carry an error field.",
      "type": "integer"
    },
    "evaluatedAt": {
      "description": "UTC timestamp of the batch.",
      "type": "string",
      "format": "date-time"
    },
    "results": {
      "description": "One entry per distinct domain, in no guaranteed order.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "description": "Domain that was actually evaluated, after normalisation.",
            "type": [
              "string",
              "null"
            ]
          },
          "score": {
            "description": "Weighted resilience score out of 100.",
            "type": "integer"
          },
          "measuredCategories": {
            "description": "Number of categories that could actually be measured. Compare two domains only when this matches.",
            "type": "integer"
          },
          "categories": {
            "description": "Per-category score and finding count. Finding details are not included.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Category name, for example 'tls' or 'headers'.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "score": {
                  "description": "Score out of 100 for this category.",
                  "type": "integer"
                },
                "findingCount": {
                  "description": "How many findings this category raised. The findings themselves require domain_check_v1.",
                  "type": "integer"
                }
              }
            }
          },
          "evaluatedAt": {
            "description": "UTC timestamp of the evaluation.",
            "type": "string",
            "format": "date-time"
          },
          "detailsAvailableVia": {
            "description": "Name of the tool returning the full findings behind these scores.",
            "type": [
              "string",
              "null"
            ]
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "success": {
            "type": "boolean"
          }
        }
      }
    }
  }
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本6 個工具
已驗證未記錄版本6 個工具
已驗證未記錄版本6 個工具