Onfido MCP by usefulapi

Create and read Onfido applicants, documents, checks and reports.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
99%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,045Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.60% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "onfido": {
      "url": "https://onfido.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://onfido.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢onfido_list_applicants(page, per_page, include_deleted)

List applicant (person) records in the Onfido account, paginated. Onfido API: GET /applicants.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (1-based). Default 1.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "per_page": {
      "description": "Results per page (max 500). Default 20.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    },
    "include_deleted": {
      "description": "Include applicants scheduled for deletion. Default false.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_get_applicant(applicant_id)

Retrieve a single applicant record by id. Onfido API: GET /applicants/{applicant_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "string",
      "description": "The applicant id."
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_list_documents(applicant_id)

List the identity documents uploaded for an applicant (metadata only). Onfido API: GET /documents?applicant_id=….

Input Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "string",
      "description": "The applicant id whose documents to list (required)."
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_get_document(document_id)

Retrieve a single document's metadata by id. Onfido API: GET /documents/{document_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "description": "The document id."
    }
  },
  "required": [
    "document_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_list_checks(applicant_id)

List the verification checks run for an applicant (results/status, read-only). Onfido API: GET /checks?applicant_id=….

Input Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "string",
      "description": "The applicant id whose checks to list (required)."
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_get_check(check_id)

Retrieve a single check (status + report ids + result) by id. Onfido API: GET /checks/{check_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "check_id": {
      "type": "string",
      "description": "The check id."
    }
  },
  "required": [
    "check_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_list_reports(check_id)

List the individual reports that make up a check (document, facial similarity, watchlist, …). Onfido API: GET /reports?check_id=….

Input Schema

{
  "type": "object",
  "properties": {
    "check_id": {
      "type": "string",
      "description": "The check id whose reports to list (required)."
    }
  },
  "required": [
    "check_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_get_report(report_id)

Retrieve a single report (detailed breakdown + result) by id. Onfido API: GET /reports/{report_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "report_id": {
      "type": "string",
      "description": "The report id."
    }
  },
  "required": [
    "report_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_list_workflow_runs(page, status, applicant_id, sort, created_at_gt, ...)

List Onfido Studio workflow runs (status/output, read-only — does NOT start a run). Onfido API: GET /workflow_runs.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (1-based). Default 1.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status": {
      "description": "Filter by status, e.g. processing | awaiting_input | approved | declined | abandoned | error.",
      "type": "string"
    },
    "applicant_id": {
      "description": "Filter to a single applicant's workflow runs.",
      "type": "string"
    },
    "sort": {
      "description": "Sort by creation time. Default desc.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "created_at_gt": {
      "description": "Only runs created after this ISO-8601 timestamp.",
      "type": "string"
    },
    "created_at_lt": {
      "description": "Only runs created before this ISO-8601 timestamp.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_get_workflow_run(workflow_run_id)

Retrieve a single Studio workflow run (status, output, task history) by id. Onfido API: GET /workflow_runs/{workflow_run_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "workflow_run_id": {
      "type": "string",
      "description": "The workflow run id."
    }
  },
  "required": [
    "workflow_run_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_list_live_photos(applicant_id)

List the live photos captured for an applicant (metadata only). Onfido API: GET /live_photos?applicant_id=….

Input Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "string",
      "description": "The applicant id whose live photos to list (required)."
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢onfido_list_live_videos(applicant_id)

List the live videos captured for an applicant (metadata only). Onfido API: GET /live_videos?applicant_id=….

Input Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "string",
      "description": "The applicant id whose live videos to list (required)."
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴onfido_create_applicant(first_name, last_name, email, dob, phone_number, ...)

Creates an applicant (person) record in Onfido. Onfido API: POST /applicants. Creates a PII record only — runs NO verification check and costs nothing.

Input Schema

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "description": "Applicant's first name (required)."
    },
    "last_name": {
      "type": "string",
      "description": "Applicant's last name (required)."
    },
    "email": {
      "description": "Applicant email address.",
      "type": "string"
    },
    "dob": {
      "description": "Date of birth, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "phone_number": {
      "description": "Phone number in E.164 or local format.",
      "type": "string"
    },
    "address": {
      "description": "Address object (building_number, street, town, postcode, country, …). Passed through as-is.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "id_numbers": {
      "description": "Array of id-number objects ({ type, value, state_code? }). Passed through as-is.",
      "type": "array",
      "items": {}
    },
    "location": {
      "description": "Location object (ip_address, country_of_residence, …) for consent tracking. Passed through as-is.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "first_name",
    "last_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴onfido_update_applicant(applicant_id, first_name, last_name, email, dob, ...)

Updates an applicant's details (reversible; runs no verification). Onfido API: PUT /applicants/{applicant_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "string",
      "description": "The applicant id to update (required)."
    },
    "first_name": {
      "description": "Updated first name.",
      "type": "string"
    },
    "last_name": {
      "description": "Updated last name.",
      "type": "string"
    },
    "email": {
      "description": "Applicant email address.",
      "type": "string"
    },
    "dob": {
      "description": "Date of birth, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "phone_number": {
      "description": "Phone number in E.164 or local format.",
      "type": "string"
    },
    "address": {
      "description": "Address object (building_number, street, town, postcode, country, …). Passed through as-is.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "id_numbers": {
      "description": "Array of id-number objects ({ type, value, state_code? }). Passed through as-is.",
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools
verifiedversion not recorded14 tools