Home/Tools/@tpmjs/tools-url-risk-heuristic

urlRiskHeuristic

@tpmjs/tools-url-risk-heuristic

Analyze a URL for security risks using heuristics. Checks for IP addresses, suspicious TLDs, long URLs, unicode tricks, known phishing patterns, multiple subdomains, and URL shorteners. Returns a risk score from 0 to 1.

Official
security
v0.2.0
MIT

Interactive Playground

Test @tpmjs/tools-url-risk-heuristic (urlRiskHeuristic) with AI-powered execution

0/2000 characters

Installation & Usage

Install this tool and use it with the AI SDK

1. Install the package

npm install @tpmjs/tools-url-risk-heuristic
pnpm add @tpmjs/tools-url-risk-heuristic
yarn add @tpmjs/tools-url-risk-heuristic
bun add @tpmjs/tools-url-risk-heuristic
deno add npm:@tpmjs/tools-url-risk-heuristic

2. Import the tool

import { urlRiskHeuristic } from '@tpmjs/tools-url-risk-heuristic';

3. Use with AI SDK

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { urlRiskHeuristic } from '@tpmjs/tools-url-risk-heuristic';

const result = await generateText({
  model: openai('gpt-4o'),
  tools: { urlRiskHeuristic },
  prompt: 'Your prompt here...',
});

console.log(result.text);

Parameters

Available configuration options

Auto-extracted
url
Required
Type: string

The URL to analyze for security risks

Schema extracted: 1/1/2026, 1:06:01 AM

README

@tpmjs/tools-url-risk-heuristic

Analyze URLs for security risks using heuristics.

Features

  • IP Address Detection: Flags URLs using IP addresses instead of domain names
  • Suspicious TLD Detection: Identifies commonly abused top-level domains
  • URL Shortener Detection: Detects known URL shortening services
  • Unicode/Homograph Detection: Catches lookalike characters and non-ASCII tricks
  • Excessive Subdomain Detection: Flags unusual numbers of subdomains
  • Suspicious Pattern Detection: Identifies phishing keywords and patterns
  • Protocol Validation: Checks for insecure protocols
  • Path Traversal Detection: Catches potential path traversal attempts

Installation

npm install @tpmjs/tools-url-risk-heuristic

Usage

import { urlRiskHeuristic } from '@tpmjs/tools-url-risk-heuristic';

const result = await urlRiskHeuristic.execute({
  url: 'http://192.168.1.1/login?verify=true'
});

console.log(result);
// {
//   url: 'http://192.168.1.1/login?verify=true',
//   riskScore: 0.75,
//   risks: [
//     {
//       type: 'ip-address',
//       severity: 'high',
//       description: 'URL uses an IP address instead of a domain name'
//     },
//     {
//       type: 'insecure-protocol',
//       severity: 'medium',
//       description: 'URL uses insecure protocol: http:'
//     },
//     {
//       type: 'suspicious-keywords',
//       severity: 'medium',
//       description: 'URL contains suspicious keywords: login, verify'
//     }
//   ],
//   recommendations: [
//     'Legitimate websites typically use domain names, not IP addresses',
//     'Use HTTPS for secure communication',
//     'Suspicious keywords often indicate phishing attempts',
//     'DO NOT click this link or enter sensitive information',
//     'Verify the URL with the sender through a different channel'
//   ],
//   isHighRisk: true,
//   metadata: {
//     hostname: '192.168.1.1',
//     protocol: 'http:',
//     pathLength: 6,
//     hasPort: false
//   }
// }

Risk Score

The risk score ranges from 0 to 1:

  • 0.0 - 0.3: Low risk
  • 0.3 - 0.6: Medium risk
  • 0.6 - 1.0: High risk (isHighRisk = true)

Severity Levels

Individual risks are categorized by severity:

  • low: Minor concerns
  • medium: Moderate concerns
  • high: Serious concerns
  • critical: Immediate red flags

License

MIT

Statistics

Downloads/month

0

Quality Score

67%

Bundle Size

NPM Keywords

tpmjs
security
url
safety
risk-analysis

Maintainers

thomasdavis(thomasalwyndavis@gmail.com)

Frameworks

vercel-ai
urlRiskHeuristic | TPMJS | TPMJS