# Heffl Free Tools for AI Agents

15 public tools. Free, anonymous, no OAuth or API key. These endpoints operate independently of Heffl's authenticated workspace API.

- MCP (Streamable HTTP, POST, stateless): https://api.heffl.com/api/public-tools/mcp
- Live catalog: https://api.heffl.com/api/public-tools/catalog
- Live OpenAPI: https://api.heffl.com/api/public-tools/openapi.json
- Crawlable OpenAPI mirror: https://heffl.com/free-tools-openapi.json
- Human integration guide: https://heffl.com/tools/agents

Configure the remote MCP URL with no authentication, then call tools/list and tools/call. Clients require the user to add/enable a connector; being crawlable does not automatically install tools.

## Tools

### email_verify

Check one email's syntax, mail routing, disposable/free-provider/role flags, and SMTP recipient acceptance. Sends no email. DNS alone does not verify a mailbox. unknown means inconclusive or mailbox not checked; likely_deliverable is evidence, not a delivery guarantee. No login or API key required. Rate limited.

- Website: https://heffl.com/tools/email-validator
- HTTP: POST https://api.heffl.com/api/public-tools/email/verify
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 320
    }
  },
  "required": [
    "email"
  ],
  "additionalProperties": false
}
```

### photography_pricing

Calculate session price, costs, profit and per-photo price. Margin is a percentage of selling price; currency-neutral, no conversion. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/photography-pricing-calculator
- HTTP: POST https://api.heffl.com/api/public-tools/photography/pricing
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "hoursOnSite": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000
    },
    "hourlyRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "editingHours": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000
    },
    "editingRate": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "gearTravelCost": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "numPhotos": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000000
    },
    "margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 95
    }
  },
  "required": [
    "hoursOnSite",
    "hourlyRate",
    "editingHours",
    "editingRate",
    "gearTravelCost",
    "numPhotos",
    "margin"
  ],
  "additionalProperties": false
}
```

### freelance_rate

Calculate sustainable rates. margin is a percentage buffer added to annual income plus overhead, matching the website. All money must use the same currency. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/freelance-rate-calculator
- HTTP: POST https://api.heffl.com/api/public-tools/freelance/rate
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "annualIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "overhead": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "billableWeeks": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 53
    },
    "billableHours": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 168
    },
    "hoursPerDay": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 24
    },
    "margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 95
    }
  },
  "required": [
    "annualIncome",
    "overhead",
    "billableWeeks",
    "billableHours",
    "hoursPerDay",
    "margin"
  ],
  "additionalProperties": false
}
```

### agency_pricing

Calculate project price from labor, overhead and risk buffer. margin is percentage of selling price; overhead and riskBuffer are percentage additions. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/agency-pricing-calculator
- HTTP: POST https://api.heffl.com/api/public-tools/agency/pricing
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "hourlyCost": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "hours": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000
    },
    "overhead": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 95
    },
    "riskBuffer": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "hourlyCost",
    "hours",
    "overhead",
    "margin",
    "riskBuffer"
  ],
  "additionalProperties": false
}
```

### business_days

Count weekdays between dates or add/subtract days. UTC dates, Monday–Friday; start included and end excluded unless includeEnd. Offset excludes start. Public holidays are not excluded. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/business-days-calculator
- HTTP: POST https://api.heffl.com/api/public-tools/business/days
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "const": "between"
        },
        "startDate": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "endDate": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "includeEnd": {
          "default": false,
          "type": "boolean"
        }
      },
      "required": [
        "mode",
        "startDate",
        "endDate"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "const": "offset"
        },
        "startDate": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "days": {
          "type": "integer",
          "minimum": 0,
          "maximum": 36525
        },
        "direction": {
          "default": "add",
          "type": "string",
          "enum": [
            "add",
            "subtract"
          ]
        },
        "businessOnly": {
          "default": true,
          "type": "boolean"
        }
      },
      "required": [
        "mode",
        "startDate",
        "days"
      ],
      "additionalProperties": false
    }
  ]
}
```

### risk_assessment

Score user-supplied risks using likelihood × impact (1–5). Low <=6, medium <=14, high >=15. Does not infer likelihood or impact. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/risk-assessment-calculator
- HTTP: POST https://api.heffl.com/api/public-tools/risk/assessment
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "risks": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "likelihood": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "impact": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "mitigation": {
            "default": "",
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "name",
          "likelihood",
          "impact"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "risks"
  ],
  "additionalProperties": false
}
```

### coaching_agreement

Generate the website's coaching agreement as plain text. Missing text fields use placeholders. Draft only; legal review may be needed. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/coaching-agreement-template
- HTTP: POST https://api.heffl.com/api/public-tools/coaching/agreement
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "coachName": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "businessName": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "clientName": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "coachingType": {
      "default": "life coaching",
      "type": "string",
      "maxLength": 2000
    },
    "sessionFormat": {
      "default": "1:1 video calls",
      "type": "string",
      "enum": [
        "1:1 video calls",
        "1:1 phone calls",
        "In-person sessions",
        "Group sessions"
      ]
    },
    "programLength": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "sessionLength": {
      "default": 60,
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1440
    },
    "fee": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "paymentTerms": {
      "default": "Full payment upfront",
      "type": "string",
      "enum": [
        "Full payment upfront",
        "50% upfront, 50% at midpoint",
        "Monthly installments",
        "Pay per session"
      ]
    },
    "cancellationPolicy": {
      "default": "24 hours notice required",
      "type": "string",
      "enum": [
        "24 hours notice required",
        "48 hours notice required",
        "No refunds after session 1"
      ]
    },
    "startDate": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}
```

### retainer_agreement

Generate the website's monthly retainer agreement as plain text. Missing text fields use placeholders. Draft only; legal review may be needed. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/retainer-agreement-template
- HTTP: POST https://api.heffl.com/api/public-tools/retainer/agreement
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "providerName": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "clientName": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "serviceType": {
      "default": "ongoing marketing and design services",
      "type": "string",
      "maxLength": 2000
    },
    "monthlyFee": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "includedScope": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "overageRate": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "contractTerm": {
      "default": "Month-to-month",
      "type": "string",
      "enum": [
        "Month-to-month",
        "3-month minimum",
        "6-month minimum",
        "12-month term"
      ]
    },
    "noticePeriod": {
      "default": "30 days written notice",
      "type": "string",
      "enum": [
        "30 days written notice",
        "60 days written notice",
        "14 days written notice"
      ]
    },
    "paymentDue": {
      "default": "1st of each month, in advance",
      "type": "string",
      "enum": [
        "1st of each month, in advance",
        "Net 15",
        "Net 30"
      ]
    },
    "startDate": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}
```

### uae_vat

Estimate standard 5% UAE VAT in AED, inclusive or exclusive. Does not classify exempt or zero-rated supplies. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/uae-vat/calculator
- HTTP: POST https://api.heffl.com/api/public-tools/uae/vat
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "amount": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "includeVat": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "amount"
  ],
  "additionalProperties": false
}
```

### uae_corporate_tax

Estimate standard UAE corporate tax on already-adjusted taxable income in AED: 0% up to 375000 and 9% above. Does not determine deductions, free-zone rules, relief or multinational minimum tax. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/uae-corporate-tax/calculator
- HTTP: POST https://api.heffl.com/api/public-tools/uae/corporate/tax
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "taxableIncome": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    }
  },
  "required": [
    "taxableIncome"
  ],
  "additionalProperties": false
}
```

### uae_gratuity

AED estimate for covered private-sector full-time foreign workers using monthly basic salary, at least one year service, 21 days for first five years then 30; capped at 24 months basic salary. Assumes continuous service without unpaid leave; no deductions or alternative schemes assessed. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/uae-gratuity-calculator
- HTTP: POST https://api.heffl.com/api/public-tools/uae/gratuity
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "basicSalary": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000000000
    },
    "startDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "endDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "basicSalary",
    "startDate",
    "endDate"
  ],
  "additionalProperties": false
}
```

### uae_real_estate_vat

Estimate VAT on ordinary commercial/residential property in AED, not transfer fees. Residential zero-rating requires FIRST supply within three years of completion; other residential supply exempt. No mixed-use or specialist properties. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/uae-real-estate-tax/calculator
- HTTP: POST https://api.heffl.com/api/public-tools/uae/real/estate/vat
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "amount": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "includeVat": {
      "default": false,
      "type": "boolean"
    },
    "propertyType": {
      "type": "string",
      "enum": [
        "commercial",
        "residential"
      ]
    },
    "firstSupply": {
      "type": "boolean"
    },
    "yearsSinceCompletion": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "amount",
    "propertyType",
    "firstSupply",
    "yearsSinceCompletion"
  ],
  "additionalProperties": false
}
```

### quotation_generate

Generate quotation JSON and plain-text draft with percentage discounts per item and tax on discounted amounts. Does not save, send, or render PDF; website provides visual export. Currency is a label, no FX conversion. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/free-online-quotation-generator
- HTTP: POST https://api.heffl.com/api/public-tools/quotation/generate
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "quotationNumber": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "sender": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "client": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$"
    },
    "lineItems": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "itemName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000
          },
          "rate": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000000
          },
          "discount": {
            "default": 0,
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "tax": {
            "default": 0,
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "itemName",
          "quantity",
          "rate"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "quotationNumber",
    "sender",
    "client",
    "currency",
    "lineItems"
  ],
  "additionalProperties": false
}
```

### sow_generate

Generate a scope-of-work draft using the existing Heffl DeepSeek service. Returns untrusted HTML, not legal advice. Drafts may infer details; verify before use. Provider configuration required server-side. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/ai-sow-generator
- HTTP: POST https://api.heffl.com/api/public-tools/sow/generate
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "clientName": {
      "default": "",
      "type": "string",
      "maxLength": 200
    },
    "projectTitle": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "serviceCategory": {
      "default": "",
      "type": "string",
      "maxLength": 120
    },
    "projectGoals": {
      "type": "string",
      "minLength": 10,
      "maxLength": 4000
    },
    "deliverables": {
      "default": [],
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 300
      }
    },
    "timeline": {
      "default": "",
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "projectTitle",
    "projectGoals"
  ],
  "additionalProperties": false
}
```

### whatsapp_generate

Generate a business WhatsApp message draft using Heffl's DeepSeek service. Only drafts text; never sends messages. Provider configuration required server-side. Free, no authentication required. Rate limited.

- Website: https://heffl.com/tools/whatsapp-message-generator
- HTTP: POST https://api.heffl.com/api/public-tools/whatsapp/generate
- Output JSON Schema: see OpenAPI or tools/list.

Input JSON Schema:

```json
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "useCase": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "businessName": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "businessBio": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "messageTone": {
      "default": "Professional",
      "type": "string",
      "maxLength": 100
    },
    "addEmoji": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "useCase"
  ],
  "additionalProperties": false
}
```

## Limits and results

All calls: 30 requests/minute per client per instance; REST body max 64 KiB (email max 2 KiB). AI calls share two calls/minute per client, two concurrent calls and 100 attempts/day per instance. Multi-replica installations need shared limits. REST 429 includes Retry-After; MCP capacity failures use isError. Invalid arguments are REST 400 or MCP isError. Unconfigured AI provider returns REST 503 or MCP isError; AI tools remain listed. No recipient messages or documents are sent.

Email: unknown is inconclusive; never claim mailbox existence from DNS alone. Financial estimates apply only to the scopes documented above, not full tax advice. Agreements and AI output are drafts; validate facts and escape/sanitize AI HTML before rendering. Inputs are not saved by these tools; email SMTP probes disclose the recipient to its mail server and AI drafting fields are sent to DeepSeek. Infrastructure logging and provider retention are governed by their policies.

## Examples

```sh
curl https://api.heffl.com/api/public-tools/freelance/rate -H 'Content-Type: application/json' -d '{"annualIncome":60000,"overhead":8000,"billableWeeks":46,"billableHours":25,"hoursPerDay":8,"margin":15}'
```

```json
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"uae_vat","arguments":{"amount":100,"includeVat":false}}}
```
