Skip to main content
Glama

get_misclassification_risk

Assess misclassification risk for independent contractors in a selected country. Returns risk level, legal tests, penalties, and compliance guidance.

Instructions

Country-specific misclassification (false self-employment) risk analysis. Returns risk level, legal test, enforcement authority, typical penalty, retroactive liability period, recent enforcement examples, red flags, safer path.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countryYes

Implementation Reference

  • The MISCLASSIFICATION_RISK data dictionary — a typed Record mapping country codes to objects with risk_level, legal_test, enforcement_authority, typical_penalty, retroactive_liability, recent_enforcement_examples, red_flags, and safer_path. This is the data schema/backing store for the tool.
    const MISCLASSIFICATION_RISK: Record<string, {
      risk_level: string,
      legal_test: string,
      enforcement_authority: string,
      typical_penalty: string,
      retroactive_liability: string,
      recent_enforcement_examples: string[],
      red_flags: string[],
      safer_path: string
    }> = {
      uk: {
        risk_level: "High",
        legal_test: "IR35 status determination — Mutuality of Obligation, Personal Service, Control. Plus CEST tool from HMRC.",
        enforcement_authority: "HMRC + Employment Tribunal",
        typical_penalty: "Backpay of taxes + NI + interest + 0-100% penalty",
        retroactive_liability: "Up to 4 years (6 if deliberate)",
        recent_enforcement_examples: [
          "Multiple BBC presenters reclassified as employees post-IR35",
          "Pimlico Plumbers Supreme Court case re: worker status"
        ],
        red_flags: [
          "Same contractor working >2 yrs full-time exclusively",
          "Set hours, embedded in team, uses company equipment",
          "No right of substitution"
        ],
        safer_path: "EOR for true employee relationships. Genuine B2B contractor only with Statement of Work + multiple clients + own tools"
      },
      germany: {
        risk_level: "Critical",
        legal_test: "Scheinselbständigkeit / Statusfeststellungsverfahren — multi-factor test by Deutsche Rentenversicherung. Personal dependence, no entrepreneurial risk, integration into client.",
        enforcement_authority: "Deutsche Rentenversicherung Bund + tax office + Hauptzollamt",
        typical_penalty: "Up to 4 yrs back social security (employer + employee shares) + interest + criminal liability for principal",
        retroactive_liability: "Up to 4 years (30 yrs in fraud cases)",
        recent_enforcement_examples: [
          "Many crowd-working / gig platforms (Helpling, Foodora) reclassified",
          "Engineering consultants commonly caught"
        ],
        red_flags: [
          "Single client representing >5/6ths of contractor revenue",
          "Working from client premises with client equipment",
          "Fixed working hours imposed by client",
          "Reporting to a manager"
        ],
        safer_path: "EOR is the safe bet. Real Selbständigkeit requires multiple clients, own tools, own risk."
      },
      france: {
        risk_level: "Critical",
        legal_test: "Travail dissimulé (concealed employment). Lien de subordination (subordination link) test.",
        enforcement_authority: "URSSAF + Inspection du Travail + criminal courts",
        typical_penalty: "Up to 5 yrs back social security + 45,000€ fine + 3 yrs prison for principal",
        retroactive_liability: "Up to 5 years",
        recent_enforcement_examples: [
          "Uber drivers reclassified by Cour de Cassation 2020",
          "Deliveroo France criminal conviction"
        ],
        red_flags: [
          "Subordination — fixed hours, set tasks, no autonomy",
          "Long-term single-client relationship",
          "Use of client tools, branding, email"
        ],
        safer_path: "EOR for any worker integrated into the team. Portage salarial as alternative for senior independents."
      },
      spain: {
        risk_level: "Critical",
        legal_test: "Falso autónomo test. Inspección de Trabajo applies indices: dependence, exclusivity, integration.",
        enforcement_authority: "Inspección de Trabajo y Seguridad Social",
        typical_penalty: "Backpay social security + fine 626-187,515€ per worker + criminal liability for serious cases",
        retroactive_liability: "Up to 4 years",
        recent_enforcement_examples: [
          "Glovo riders nationally reclassified (Riders Law 2021)",
          "Major fines on consultancies misclassifying programmers"
        ],
        red_flags: [
          "TRADE (Trabajador Autónomo Económicamente Dependiente) territory: 75%+ revenue from one client",
          "Schedule, location, deliverables dictated by client",
          "Worker doesn't bear business risk"
        ],
        safer_path: "EOR or proper TRADE contract with explicit acknowledgment + protections"
      },
      netherlands: {
        risk_level: "High",
        legal_test: "Wet DBA (Deregulation Assessment of Working Relationships Act). Authority, embedded work, personal performance.",
        enforcement_authority: "Belastingdienst (tax authority)",
        typical_penalty: "Backpay payroll tax + social security + ~25-100% surcharge",
        retroactive_liability: "Up to 5 years",
        recent_enforcement_examples: [
          "Deliveroo couriers reclassified (Supreme Court 2023)",
          "Many platform workers under scrutiny"
        ],
        red_flags: [
          "ZZP working for one client long-term",
          "No real entrepreneurial risk",
          "Client controls how work is done"
        ],
        safer_path: "Modelovereenkomst (model agreement) approved by tax authority + multi-client reality, OR EOR"
      },
      mexico: {
        risk_level: "Critical (post 2021 reform)",
        legal_test: "LFT defines vínculo laboral: subordination, salary, personal service. 2021 reform criminalized non-REPSE outsourcing.",
        enforcement_authority: "STPS (Labor Ministry) + IMSS + SAT",
        typical_penalty: "Backpay employee benefits (PTU, vacation, aguinaldo, IMSS, INFONAVIT) + fines + criminal for non-REPSE",
        retroactive_liability: "5 years",
        recent_enforcement_examples: [
          "Massive 2021 reclassifications post-outsourcing reform",
          "Many tech companies fined"
        ],
        red_flags: [
          "Independent contractor with single client + subordination",
          "Use of client tools, branding",
          "Specialized services without REPSE registration of provider"
        ],
        safer_path: "EOR through REPSE-registered provider OR direct hire"
      },
      brazil: {
        risk_level: "Critical",
        legal_test: "CLT vínculo empregatício recognition: pessoalidade, habitualidade, onerosidade, subordinação.",
        enforcement_authority: "Justiça do Trabalho (Labor Courts) + Ministério do Trabalho",
        typical_penalty: "Backpay all CLT rights (FGTS, 13th, vacation, PIS, INSS) + 40% FGTS penalty + 50% sometimes punitive",
        retroactive_liability: "5 years (rolling)",
        recent_enforcement_examples: [
          "Numerous PJ-to-CLT reclassifications in IT/tech",
          "Many platform delivery workers cases ongoing"
        ],
        red_flags: [
          "PJ contractor working full-time exclusively for years",
          "Use of company email, equipment",
          "Reporting structure same as employees"
        ],
        safer_path: "EOR (CLT) or strict PJ with multiple clients + entrepreneurial reality"
      },
      ireland: { risk_level: "Medium", legal_test: "WRC Code of Practice + 2021 Code on Determining Employment Status", enforcement_authority: "Revenue + WRC + DSP", typical_penalty: "Backpay PAYE + PRSI + USC + interest + penalties", retroactive_liability: "4 years", recent_enforcement_examples: ["Domino's Pizza drivers reclassified 2023"], red_flags: ["Long-term single client engagement", "Fixed hours, premises"], safer_path: "EOR or genuine contractor with multiple clients" },
      india: { risk_level: "Medium", legal_test: "Industrial Disputes Act 'workman' definition + control & integration tests", enforcement_authority: "Labor Department + EPFO + GST", typical_penalty: "Backpay EPF + ESI + gratuity + interest", retroactive_liability: "3-5 years", recent_enforcement_examples: ["Multiple IT consultancy reclassifications under EPFO"], red_flags: ["Long-term consultant on payroll-like arrangement"], safer_path: "EOR or true freelancer with multiple clients" },
      japan: { risk_level: "Medium-High", legal_test: "Disguised employment (gisō ukeoi) test by Labor Standards Inspection Office", enforcement_authority: "Ministry of Health, Labor, and Welfare", typical_penalty: "Backpay social insurance + reputational damage", retroactive_liability: "5 years", recent_enforcement_examples: ["Several gyōmu itaku contracts reclassified"], red_flags: ["Long-term contractor in subordinate relationship"], safer_path: "EOR or true independent" },
      singapore: { risk_level: "Low-Medium", legal_test: "MOM/IRAS examines control, financial dependence, personal service", enforcement_authority: "MOM + IRAS + CPF Board", typical_penalty: "Backpay CPF + tax + fines", retroactive_liability: "5 years", recent_enforcement_examples: ["Several tech contractor reclassifications 2023-25"], red_flags: ["Single-client long-term arrangement"], safer_path: "EOR or properly structured contractor" },
      nordics: { risk_level: "High", legal_test: "Each country has own test — generally personal subordination, exclusivity, integration. Strong union involvement.", enforcement_authority: "Skatteverket (SE), Skatteetaten (NO), etc.", typical_penalty: "Backpay social fees + tax + arbetsgivaravgift + penalties", retroactive_liability: "Up to 6 years (varies)", recent_enforcement_examples: ["Foodora couriers Sweden/Norway reclassifications"], red_flags: ["Long-term single client", "No real entrepreneurial risk"], safer_path: "EOR with kollektivavtal compliance" }
    };
  • src/main.ts:682-686 (registration)
    Tool registration in the ListToolsRequestSchema handler — declares get_misclassification_risk with a description and inputSchema requiring a country parameter validated against MISCLASSIFICATION_RISK keys.
    {
      name: "get_misclassification_risk",
      description: "Country-specific misclassification (false self-employment) risk analysis. Returns risk level, legal test, enforcement authority, typical penalty, retroactive liability period, recent enforcement examples, red flags, safer path.",
      inputSchema: { type: "object", properties: { country: { type: "string", enum: Object.keys(MISCLASSIFICATION_RISK) } }, required: ["country"] }
    },
  • The handler (within CallToolRequestSchema switch) — extracts country from args, looks it up in MISCLASSIFICATION_RISK, throws if unknown, and returns the risk data wrapped in a JSON response with module label.
    case "get_misclassification_risk": {
      const country = args?.country as string;
      const risk = MISCLASSIFICATION_RISK[country];
      if (!risk) throw new Error(`Unknown country: ${country}`);
      return { content: [{ type: "text", text: JSON.stringify({ module: "Misclassification Risk", country, ...risk }, null, 2) }] };
    }
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It lists return fields but does not explicitly state whether the tool is read-only or disclose any side effects, permissions, or costs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's function and key outputs with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple input and no output schema; the description thoroughly enumerates all return fields (risk level, legal test, enforcement authority, etc.), providing complete context for what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description partially compensates by explaining the tool's purpose and outputs, but does not describe the country parameter or its enum values beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides country-specific misclassification risk analysis and lists specific outputs (risk level, legal test, etc.), distinguishing it from sibling tools like get_country_eor_brief or get_eor_vs_entity_calc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates the tool is for misclassification risk analysis, providing clear context. However, it does not explicitly state when to use it versus alternatives or exclude certain use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/closermethod/eor-compliance-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server