email_permutator
Generate email address permutations for OSINT investigations by combining first names, last names, and domains to identify potential contact points.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| firstName | Yes | First name | |
| lastName | Yes | Last name | |
| domain | Yes | Domain (e.g., example.com) |
Implementation Reference
- src/index.ts:531-535 (handler)The tool handler function for email_permutator which calls the EmailOsintClient.
async ({ firstName, lastName, domain }) => { const result = emailOsintClient.generatePermutations(firstName, lastName, domain); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; - src/index.ts:524-530 (registration)Registration of the email_permutator tool with its schema definition.
server.tool( "email_permutator", { firstName: z.string().describe("First name"), lastName: z.string().describe("Last name"), domain: z.string().describe("Domain (e.g., example.com)"), }, - src/tools/email-osint.ts:6-39 (helper)The core logic for generating email permutations in the EmailOsintClient.
generatePermutations(firstName: string, lastName: string, domain: string): string[] { const fn = firstName.toLowerCase().trim(); const ln = lastName.toLowerCase().trim(); const fi = fn[0]; const li = ln[0]; const d = domain.toLowerCase().trim(); const patterns = [ `${fn}@${d}`, `${ln}@${d}`, `${fn}.${ln}@${d}`, `${fn}${ln}@${d}`, `${fi}${ln}@${d}`, `${fi}.${ln}@${d}`, `${fn}${li}@${d}`, `${fn}.${li}@${d}`, `${fi}${li}@${d}`, `${fi}.${li}@${d}`, `${ln}.${fn}@${d}`, `${ln}${fn}@${d}`, `${ln}${fi}@${d}`, `${ln}.${fi}@${d}`, `${fn}-${ln}@${d}`, `${fi}-${ln}@${d}`, `${fn}-${li}@${d}`, `${fi}-${li}@${d}`, `${fn}_${ln}@${d}`, `${fi}_${ln}@${d}`, `${fn}_${li}@${d}`, `${fi}_${li}@${d}`, ]; return Array.from(new Set(patterns)); }