URL信誉和有效性检查器
基于FASTCMP 2.0的服务,验证URL并检查其信誉,以帮助识别AI幻觉并验证网页真实性。
特性
- URL验证:验证URL是否解析为实际网页
- 声誉评分:基于域名年龄、网络存档存在和技术因素的0-100分
- 链接提取:从HTML或文本内容中提取并验证链接
- 历史分析:通过WHOIS和Wayback Machine检查域名年龄
- AI幻觉检测:识别AI生成的URL中常见的模式
- 缓存:基于Redis的缓存可提高性能
- Docker支持:使用Docker和Docker compose轻松部署
快速开始
使用Docker(推荐)
- 克隆存储库:
git clone
cd reputation-and-validity-checker- 启动服务:
docker-compose up -dMCP服务器将在 http://localhost:5000.
本地安装
- 安装依赖项:
pip install -r requirements.txt- 启动Redis(可选,用于缓存):
docker run -d -p 6379:6379 redis:7-alpine- 运行服务器:
python -m url_reputation_checker.serverMCP工具
check_links_reputation
检查URL列表的信誉。
参数:
urls:要验证的URL列表
退货:
- 带有声誉评分的验证结果列表
例子:
result = await check_links_reputation([
"https://example.com",
"https://github.com"
])extract_and_check_links
从内容中提取链接并检查其信誉。
参数:
content:HTML或文本内容content_type:“html”、“text”或“auto”(默认值:“auto“)
退货:
- 提取验证结果和摘要的链接
例子:
result = await extract_and_check_links(
"Link",
content_type="html"
)validate_url
验证单个URL。
参数:
url:要验证的URL
退货:
- 详细的验证信息
get_domain_history
获取有关域的历史信息。
参数:
domain:域名或URL
退货:
- 域名创建日期、WHOIS信息和Wayback Machine数据
声誉评分
信誉评分(0-100)基于以下因素计算:
- 域名年龄 (0-30分):
- 5岁以上:30分 - 2-5岁:20分 - 1-2年:15分 - 6-12个月:10分 - 3-6个月:5分 - \6级)
- 带有过多连字符的产品名称
- 打字尝试
- 子域过多
配置
环境变量:
REDIS_URL:Redis连接URL(默认值:redis://localhost:6379)MCP_SERVER_HOST:服务器主机(默认值:0.0.0.0)MCP_SERVER_PORT:服务器端口(默认值:5000)
发展
- 安装开发依赖项:
pip install -e ".[dev]"- 运行测试:
pytest- 格式代码:
black url_reputation_checker/- 棉绒编码:
ruff url_reputation_checker/Docker构建
构建Docker镜像:
docker build -t url-reputation-checker .使用docker compose运行:
docker-compose up -d查看日志:
docker-compose logs -f示例用法
Python客户端示例
import asyncio
from fastmcp import FastMCPClient
async def main():
async with FastMCPClient("http://localhost:5000") as client:
# Check a list of URLs
results = await client.call_tool(
"check_links_reputation",
urls=[
"https://github.com",
"https://example-fake-site-12345.com"
]
)
for result in results:
print(f"{result['url']}: {result['reputation_score']}/100")
# Extract and check links from HTML
html_content = """
Google
Fake News
"""
extraction_result = await client.call_tool(
"extract_and_check_links",
content=html_content,
content_type="html"
)
print(f"Found {extraction_result['summary']['total_links']} links")
print(f"Average reputation: {extraction_result['summary']['average_reputation_score']}")
if __name__ == "__main__":
asyncio.run(main())API终点
MCP服务器公开了可以通过MCP协议调用的工具。此外,它还提供资源:
/url_validation_report:获取所有已验证URL的格式化报告/cache_stats:获取缓存统计信息
故障排除
Redis连接问题
如果Redis不可用,该服务将继续工作而不进行缓存。要完全禁用Redis,请设置:
export REDIS_URL=""WHOIS查找失败
由于隐私保护或注册限制,某些域可能没有可用的WHOIS信息。该服务将继续进行其他检查。
Wayback Machine 费率 限制
Wayback Machine API可能会对请求进行速率限制。该服务会很好地处理这个问题,如果不可用,将跳过历史数据。
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
