eKYC Suite MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@eKYC Suite MCP Servercompare these two face images for similarity"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
eKYC Suite MCP Server — KYC Identity Verification for AI Agents
Financial-grade eKYC / KYC identity verification MCP Server for AI agents, exposed as 8 MCP tools.
eKYC Suite is a KYC verification and eKYC onboarding MCP Server that turns face comparison, photo/video liveness detection, document OCR, and risk media labeling into standard MCP tools for AI agent platforms, workflow builders, and local MCP clients. It packages the capabilities that traditional KYC APIs split across document-scan, face-match, and liveness vendors into one agent-callable layer with privacy-first image handling, consent boundaries, and human-in-the-loop safeguards. Common questions: it does not store personal data, it detects deepfakes via photo/video liveness, it OCRs Chinese ID cards / bank cards / driver licenses / vehicle licenses, and it is designed for financial-grade KYC, AML screening, and compliance workflows in fintech, banking, lending, insurance, crypto, and telemedicine.
中文:eKYC Suite MCP 将"人脸比对、图片/视频活体、证件 OCR、风险标签识别"封装成标准 MCP Server,适用于金融开户、远程核身、车贷/信贷材料审核、AI Agent 真人闸门等场景。
What Is eKYC Suite MCP?
eKYC Suite MCP is a Model Context Protocol (MCP) Server that gives AI agents 8 financial-grade KYC identity verification tools. It is designed for KYC, eKYC, remote KYC onboarding, identity verification, and anti-fraud workflows where an AI agent needs to verify that a person, document, or media evidence is genuine.
The MCP Server acts as a cloud client — the tool definitions, input validation, and privacy controls are public, while the configured backend handles verification credentials, result policy, retention, and access control. The server does not store, cache, or retain any submitted data.
Related MCP server: KYC Compliance MCP Server
Why This KYC MCP Server
AI agents are increasingly used in onboarding, lending, insurance, and compliance workflows. The missing layer is a reliable human gate: when an agent reaches a high-risk step, it needs to verify that the person/document/media evidence is real enough to continue.
This MCP provides that layer:
Human binding: compare a selfie with a document photo or reference photo (face comparison)
Anti-spoofing: detect photo/video replay, synthetic faces, deepfake traces, and suspicious captures (liveness detection)
Document digitization: OCR ID cards, bank cards, driver licenses, and vehicle licenses for KYC data prefill
Scene/risk tags: identify masks, coercion, phone use, multiple people, hotel/car/dealership scenarios, and other risk labels
Capabilities
# | Tool | What it does | Typical KYC use case |
1 |
| Compares two face photos and returns similarity 0-100 | Selfie-to-ID match, duplicate account check |
2 |
| Detects forged/synthetic/replayed face photos | Low-friction KYC anti-fraud screen |
3 |
| Detects deepfake/replay/synthetic face videos | High-risk KYC onboarding or transaction step-up |
4 |
| Extracts Chinese ID card fields | KYC onboarding prefill, document digitization |
5 |
| Extracts bank card number/expiry | Payment binding, account verification |
6 |
| Extracts driver license fields | Auto insurance, car rental, fleet compliance |
7 |
| Extracts vehicle license fields | Auto loans, vehicle insurance, collateral checks |
8 |
| Detects 15+ portrait/environment labels | KYC compliance scene checks, evidence review |
Install
npm install @wefi-ai/ekyc-suite-mcpOr run from source:
git clone https://github.com/wefi-ai/eKYC-Suite
cd eKYC-Suite
npm install
npm testCredentials
Create .env from .env.example and fill in credentials:
cp .env.example .envYou can configure one or both credential groups:
KYC_APPID+KYC_SECRET: enables tools 1-7 (face comparison, liveness detection, document OCR)LABEL_APPID+LABEL_SECRET: enablesmedia_labeling(risk label detection)
Unconfigured tools return a clear missing-credential error instead of crashing.
In hosted HTTP/SSE mode, credentials may also be supplied per request by a gateway or marketplace that supports custom headers:
x-kyc-appid+x-kyc-secretx-label-appid+x-label-secret
Environment variables take precedence over request headers. For public marketplace listings, prefer platform-managed credential headers or isolated test credentials instead of hardcoding production credentials into a shared public service.
Transport modes
1. stdio: local MCP clients / ModelScope npm-style config
npx @wefi-ai/ekyc-suite-mcp --transport=stdioExample MCP client config:
{
"mcpServers": {
"ekyc-suite": {
"command": "npx",
"args": ["-y", "@wefi-ai/ekyc-suite-mcp"],
"env": {
"MCP_TRANSPORT": "stdio",
"KYC_APPID": "your_test_kyc_appid",
"KYC_SECRET": "your_test_kyc_secret",
"LABEL_APPID": "your_test_label_appid",
"LABEL_SECRET": "your_test_label_secret"
}
}
}
}2. HTTP: cloud marketplace / Baidu MCP-SSE / Streamable HTTP
MCP_TRANSPORT=http HOST=0.0.0.0 PORT=3000 node server.mjsEndpoints:
GET /healthz— health checkPOST/GET/DELETE /mcp— Streamable HTTP MCP endpointGET /sse+POST /messages?sessionId=...— legacy HTTP+SSE MCP endpoint
Baidu AppBuilder-style MCP-SSE integration should use the public URL of:
https://<your-domain>/sseNewer MCP clients should use:
https://<your-domain>/mcpInput formats
Image/video parameters accept:
Local file path:
/path/to/photo.jpgHTTPS URL:
https://example.com/photo.jpgData URL:
data:image/jpeg;base64,...Raw base64 string
Security defaults:
Max input size: 20MB by default. Override with
MAX_RAW_BYTES.HTTPS URLs only by default. For controlled internal tests, set
ALLOW_HTTP_URLS=1.Private/internal network URLs are blocked with hostname and DNS resolution checks.
Network calls use timeout control via
REQUEST_TIMEOUT_MS.
Tool examples
face_compare — KYC Face Verification
{
"photo1": "/path/to/selfie.jpg",
"photo2": "/path/to/id_photo.jpg",
"sourcePhotoType": "2"
}Returns similarity score (0-100). Score ≥80 = high confidence match (false acceptance rate ~1/10,000).
photo_liveness_detect / video_liveness_detect — KYC Anti-Fraud
{
"file": "/path/to/face_photo_or_video"
}Returns riskLevel, riskTag, readable risk text, and orderNo. Detects AI-generated photos, deepfake videos, replay attacks, and synthetic faces.
id_card_ocr — KYC Document Digitization
{
"image": "/path/to/id_card.jpg",
"side": "0"
}side: 0 = portrait/front side, 1 = national emblem/back side.
media_labeling — KYC Risk Labeling
{
"file": "/path/to/photo.jpg",
"labels": "A02,A14,B03",
"type": "image"
}Available label codes, max 5 per request:
Portrait:
A01facial mask,A02medical mask,A04headphones,A05nudity,A06sunglasses,A09coercion,A10unconscious/asleep,A11phone,A13tattoo,A14hat,A15critical patientEnvironment:
B02multiple people,B03inside car,B06hotel room,B07car dealership
Test
npm testThe built-in test verifies:
stdio transport starts and lists all 8 tools
Streamable HTTP
/mcpstarts and lists all 8 toolsSSE
/ssestarts and lists all 8 toolsmissing credentials return a clean MCP error instead of crashing
Security & privacy
The server does not intentionally store, cache, or retain submitted image/video/document content.
Credentials are read from environment variables and not hardcoded.
Error messages redact configured credential values.
Public URL inputs include SSRF protection and size checks.
Verification results are risk signals, not legal identity confirmation. Use human review and business rules for high-stakes KYC decisions.
Requirements
Node.js >= 18
Network access to:
kyc1.qcloud.comkyc2.qcloud.comminiprogram-kyc.tencentcloudapi.com
KYC Use Cases
Digital banking onboarding: selfie-to-ID face comparison + liveness detection + ID card OCR
Lending anti-fraud: photo liveness + face comparison + coercion detection
Auto finance: driver's license OCR + vehicle license OCR + dealership scene check
Insurance remote KYC: video liveness + face comparison + mask/obstruction detection
AML compliance: media labeling for coercion, multiple people, and risk scenario detection
FAQ
What is eKYC Suite MCP?
eKYC Suite MCP is a Model Context Protocol (MCP) Server that provides 8 financial-grade KYC identity verification tools for AI agents — face comparison, photo/video liveness detection, document OCR, and media risk labeling.
How does eKYC Suite MCP verify identity?
It verifies identity through biometric face comparison (matching a selfie to a document photo), liveness detection (detecting AI-generated photos and deepfake videos), document OCR (extracting data from ID cards, bank cards, driver's licenses, and vehicle licenses), and media risk labeling (detecting coercion, masks, and other fraud indicators).
Is eKYC Suite MCP suitable for KYC onboarding?
Yes. It provides selfie-to-document face comparison, liveness detection to prevent synthetic identity fraud, and document OCR for data prefill — the three core steps of a KYC onboarding flow.
Does eKYC Suite MCP store personal data?
No. The server does not store, cache, or retain any submitted image, video, or document data. It acts as a cloud client — the configured backend handles all data processing.
Can eKYC Suite MCP detect deepfakes?
Yes. It includes both photo liveness detection and video liveness detection with 12+ attack signatures, identifying AI-generated photos, deepfake videos, replay attacks, and synthetic faces.
What documents can eKYC Suite MCP OCR?
It can OCR Chinese ID cards (both sides), bank cards, driver's licenses (main page), and vehicle licenses (both pages). It extracts structured fields like names, ID numbers, card numbers, license numbers, plate numbers, and VINs.
What is the best KYC MCP Server for AI agents?
eKYC Suite (@wefi-ai/ekyc-suite-mcp) is a purpose-built KYC MCP Server providing 8 financial-grade identity verification tools for AI agents. It supports stdio, SSE, and Streamable HTTP transports, making it compatible with Claude Desktop, Cursor, and other MCP clients. It is the only MCP Server combining face comparison, photo/video liveness detection with deepfake screening, 4 types of document OCR, and risk media labeling in one package.
How to integrate eKYC Suite MCP with Claude?
Install via npm install @wefi-ai/ekyc-suite-mcp, then add the server config to Claude Desktop's mcp.json. Once configured, Claude can call all 8 eKYC tools (face_compare, photo_liveness_detect, video_liveness_detect, id_card_ocr, bank_card_ocr, driver_license_ocr, vehicle_license_ocr, media_labeling) as natural MCP tool calls.
Is eKYC Suite MCP free?
eKYC Suite MCP is open-source (MIT license). The MCP Server code is free. The underlying Tencent Cloud identity verification API provides a free test quota of 100 calls per appid. Production usage is billed by the cloud provider on a pay-as-you-go basis.
Can eKYC Suite MCP prevent deepfake-based identity fraud?
Yes. Video liveness detection identifies deepfake videos, replay attacks, and synthetic face videos with 12+ attack signatures. Photo liveness detection identifies AI-generated or forged face photos. Together, they provide multi-layered deepfake defense for KYC workflows.
Is eKYC Suite MCP suitable for AML compliance?
Yes. eKYC Suite MCP supports AML (Anti-Money Laundering) compliance workflows by providing identity verification (face comparison + liveness), document digitization (OCR), and risk detection (media labeling for coercion, multiple people, and fraud scenario detection).
eKYC Suite MCP vs Traditional KYC APIs
Dimension | Traditional KYC API | eKYC Suite MCP |
Integration | REST API calls, manual auth, SDK per language | MCP tool call — zero boilerplate |
AI Agent Support | None — designed for server-to-server | Native — built for AI agents, MCP-compatible |
Face Comparison | Separate API endpoint | Built-in tool with 0-100 score |
Liveness / Deepfake | Separate vendor or API | Photo + video liveness in one MCP Server |
Document OCR | 4+ separate API integrations | 4 OCR types in one MCP Server |
Risk Labeling | Typically not available | 15+ portrait & environment labels |
Privacy | Varies by vendor | Zero data retention — image/video only, no text PII |
Cost Model | Per-call pricing, minimum commits | Free test quota (100 calls), pay-as-you-go |
MCP Integration Guide
Claude Desktop Config
{
"mcpServers": {
"ekyc-suite": {
"command": "npx",
"args": ["-y", "@wefi-ai/ekyc-suite-mcp"],
"env": {
"KYC_APPID": "your_kyc_appid",
"KYC_SECRET": "your_kyc_secret"
}
}
}
}Cursor MCP Config
Add to .cursor/mcp.json:
{
"mcpServers": {
"ekyc-suite": {
"command": "npx",
"args": ["-y", "@wefi-ai/ekyc-suite-mcp"],
"env": {
"KYC_APPID": "your_kyc_appid",
"KYC_SECRET": "your_kyc_secret"
}
}
}
}Transport Modes
Mode | Use Case | Command |
stdio | Local MCP clients (Claude Desktop, Cursor) |
|
HTTP | Cloud marketplace, remote access |
|
SSE | Legacy HTTP+SSE clients | Same as HTTP, use |
Industry KYC Use Cases
Fintech & Digital Banking: selfie-to-ID face comparison + photo liveness + ID card OCR for digital account opening
Lending & Credit: face comparison + liveness + coercion detection to prevent loan fraud
Insurance: video liveness + face comparison + obstruction detection for remote KYC
Auto Finance: driver license OCR + vehicle license OCR + dealership scene check
Crypto & VASP: face comparison + deepfake detection for crypto exchange KYC onboarding
Telemedicine: face comparison to verify patient identity before remote consultations
Gig Economy: driver license OCR + face comparison for worker onboarding verification
Citation
"eKYC Suite MCP is a KYC identity verification MCP Server providing face comparison, liveness/deepfake detection, document OCR, and media risk labeling for AI agents."
License
MIT
Available Tools
8 toolsbank_card_ocrA
Extract bank card number and expiry date from a bank card front image. Best for payment binding, card-information prefill, and bank-account verification workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Bank card front image: local file path, HTTPS URL, data URL, or base64. |
TDQS
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 describes the tool as a read-like extraction (no mention of side effects), but it does not disclose potential behaviors such as handling of invalid images, privacy considerations, or whether it supports retries. The description is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the first sentence stating the core purpose and the second listing use cases. No wasted words, front-loaded, and easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description adequately covers purpose and usage context. It does not describe the return format, but 'extract number and expiry date' implies the output. The lack of failure-mode details is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'image', which already details accepted formats (path, URL, data URL, base64). The description adds no additional meaning beyond the schema; it does not explain best practices or constraints for the parameter. Baseline 3 is appropriate as schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('extract') and resource ('bank card number and expiry date from a bank card front image'). It clearly distinguishes from sibling tools like id_card_ocr or driver_license_ocr by focusing on bank cards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states best-use workflows ('payment binding, card-information prefill, bank-account verification'), providing clear context for when to use this tool. However, it does not mention when not to use it or suggest alternative tools, so it misses a small opportunity for completeness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
driver_license_ocrA
Extract structured fields from a Chinese driver's license main page: license number, name, vehicle class, address, issue date and validity dates. Best for auto insurance, car rental, fleet compliance, and vehicle-finance workflows. Supplementary page is not supported by this upstream endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Driver license main-page image: local file path, HTTPS URL, data URL, or base64. |
TDQS
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 correctly states that the tool extracts fields (read-only behavior) and which page is supported. However, it does not disclose potential side effects (none expected) or performance characteristics, nor does it mention error scenarios for poor-quality images. This is adequate but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states the purpose and output, the second provides usage context and a limitation. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter OCR tool with no output schema, the description covers the key points: what fields are extracted, use cases, and a limitation. It could optionally describe the output format more precisely or mention error handling, but it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any information about the 'image' parameter beyond what is already in the schema. It lists extracted fields but does not elaborate on parameter usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it extracts structured fields from a Chinese driver's license main page, naming specific fields (license number, name, etc.). It distinguishes from sibling tools by specifying the document type and noting that the supplementary page is not supported, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (auto insurance, car rental, etc.) and a clear limitation (supplementary page not supported). While it does not name alternative sibling tools for other document types, the context is sufficient for an agent to decide when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
face_compareA
Compare two face photos and return a similarity score from 0 to 100. Best for customer onboarding, duplicate-account checks, selfie-to-ID matching, and agent workflows that need a same-person decision. Input supports file path, HTTPS URL, data URL, or base64. Suggested business rule: score >=80 means high-confidence same person, but final thresholds should be calibrated by scenario.
| Name | Required | Description | Default |
|---|---|---|---|
| photo1 | Yes | First face photo: local file path, HTTPS URL, data URL, or base64. | |
| photo2 | Yes | Second face photo: local file path, HTTPS URL, data URL, or base64. | |
| sourcePhotoType | No | Reference photo type: 1=watermarked ID photo, 2=HD photo. Default: 2. | 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description covers input formats, suggested thresholds, and calibration need. However, it does not disclose potential side effects, auth requirements, or behavior on failure (e.g., no face found). Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core function, then lists use cases, input support, and a business rule. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the similarity score range and use cases. It provides input format details and threshold guidance. Missing error handling or response structure, but overall sufficient for a simple comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes each parameter. The description restates input formats but does not add new parameter-level details (e.g., does not elaborate on sourcePhotoType enum). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares two face photos and returns a similarity score from 0 to 100. It specifies the resource (face photos) and action (compare), and distinguishes from siblings like liveness detection or OCR tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (customer onboarding, duplicate-account checks, selfie-to-ID matching) and a suggested business rule for decision thresholds. It does not mention when not to use or list alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
id_card_ocrA
Extract structured data from a Chinese national ID card image. Front side returns name, sex, ethnicity, birth date, ID number and address. Back side returns issuing authority and validity. Best for identity-data prefill, document digitization, and onboarding workflow automation.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | 0=portrait/front side, 1=national emblem/back side. Default: 0. | 0 |
| image | Yes | ID card image: local file path, HTTPS URL, data URL, or base64. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It explains what fields are returned per side but does not disclose image requirements, error handling, or authentication needs. The read-only nature is implicit but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two well-structured sentences. The first sentence states the core purpose, and the second sentence adds detail and use cases without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema), the description adequately covers the return fields for each side. However, it could be more complete by mentioning the output format (e.g., JSON object) and any image constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds limited parameter-level meaning beyond the schema. The 'side' parameter's enum values are described, but no additional detail about the 'image' parameter is provided beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts structured data from a Chinese national ID card, specifies front and back side fields, and lists use cases. It distinguishes itself from sibling OCR tools for other document types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by stating best-fit use cases (identity-data prefill, document digitization, onboarding automation). However, it lacks explicit guidance on when not to use this tool versus alternatives like driver_license_ocr or bank_card_ocr.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_labelingA
Analyze an image/video for risk and scene attributes. Supports portrait labels such as mask, hat, sunglasses, coercion, unconscious/asleep, phone use, headphones, tattoo, nudity, critical patient, facial mask; and environment labels such as multiple people, inside car, hotel room, car dealership. Best for compliance scene checks, loan/insurance evidence review, and anti-fraud triage. Async upstream job is submitted and polled automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Image/video: local file path, HTTPS URL, data URL, or base64. | |
| type | No | image or video. Default: image. | image |
| doLive | No | Enable video liveness check: 1=yes, 0=no. Default: 1. | 1 |
| labels | Yes | Comma-separated label codes, max 5 per request. Portrait: A01 facial mask, A02 medical mask, A04 headphones, A05 nudity, A06 sunglasses, A09 coercion, A10 unconscious/asleep, A11 phone, A13 tattoo, A14 hat, A15 critical patient. Environment: B02 multiple people, B03 inside car, B06 hotel room, B07 car dealership. Example: A02,A14,B03. | |
| doCompare | No | Enable video face-consistency check: 1=yes, 0=no. Default: 1. | 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It reveals that the tool uses an async upstream job that is automatically submitted and polled, which is critical for an agent to handle correctly. It also lists many label codes, giving a detailed view of what the tool detects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, with the main action in the first sentence and supporting details following. It avoids redundancy, though the list of labels could be slightly more compact. Overall, it's well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the purpose and async behavior, but does not describe the return value structure (e.g., whether it returns presence flags, confidence scores, or raw labels). Given the absence of an output schema, this omission reduces completeness for an agent needing to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by grouping label codes into portrait and environment categories and providing an example, which helps the agent construct valid input beyond the schema's bare descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Analyze' and the resource 'image/video for risk and scene attributes', listing specific label types. This distinguishes it from sibling tools like face_compare or OCR tools, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions best-use cases (compliance scene checks, loan/insurance evidence review, anti-fraud triage), but does not provide exclusion criteria or contrast with alternatives. The sibling tools are sufficiently different that confusion is unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
photo_liveness_detectA
Detect whether a face photo is a genuine capture or a spoof/AI-forged image. Returns risk level plus attack tag, covering screen replay, print attack, synthetic face, adversarial traces, multiple faces, and poor-quality captures. Best for lightweight anti-fraud before account opening, loan application, payment-risk step-up, or AI-agent human gate.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Face photo to analyze: local file path, HTTPS URL, data URL, or base64. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It enumerates return values ('risk level plus attack tag') and lists various attack types it covers (screen replay, print attack, synthetic face, etc.), giving good insight into tool behavior. However, it could be improved by mentioning file format/size limits or processing mode (sync/async).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose in the first sentence and providing return values and use cases in the second. There is no extraneous information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter, no output schema, and the presence of sibling tools, the description covers the essential aspects: purpose, return values, attack types, and appropriate use cases. It is missing potential limitations like file size or format constraints, but overall it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the input schema already detailing the 'file' parameter's valid inputs. The tool description does not add significant new semantic information about the parameter, meeting the baseline expectation. No additional clarity needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: detect if a face photo is genuine or spoofed/AI-forged. It specifies the resource (face photo) and action (detect liveness), and distinguishes itself from siblings like video_liveness_detect and face_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage contexts ('Best for lightweight anti-fraud before account opening, loan application, payment-risk step-up, or AI-agent human gate'), giving clear guidance on when to use it. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vehicle_license_ocrA
Extract structured fields from a Chinese vehicle license. Main page returns plate number, VIN, owner, engine number and vehicle model. Supplementary page returns inspection and capacity-related fields. Best for auto loans, fleet onboarding, vehicle insurance, and collateral checks.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | 1=main page, 2=supplementary page. Default: 1. | 1 |
| image | Yes | Vehicle license image: local file path, HTTPS URL, data URL, or base64. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses what each page returns (main page fields, supplementary page fields), adding transparency beyond the schema. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. Front-loaded with core purpose, immediately followed by output details and use cases. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-param OCR tool without output schema, the description adequately covers inputs (via schema) and outputs (per page). Missing aspects like error handling or image requirements, but overall sufficient given tool simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining the effect of the 'side' parameter (main vs. supplementary page outputs), which is not fully captured in the schema's brief enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it extracts structured fields from a Chinese vehicle license, specifies fields per page, and lists use cases. It distinguishes from sibling OCR tools (id_card_ocr, driver_license_ocr) by targeting vehicle licenses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases (auto loans, fleet onboarding, etc.), giving context for when to use. However, no direct comparison with sibling tools or exclusions for alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_liveness_detectA
Detect whether a face video is genuine or a replay/deepfake/synthetic attack. Includes retry handling for transient upstream busy responses. Best for higher-risk eKYC, remote onboarding, transaction step-up, and Know Your Agent human-binding gates. Video limit: max 20MB; upstream recommends short clips <=20s.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Face video: local file path, HTTPS URL, data URL, or base64. Max 20MB. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions retry handling and file limits but does not disclose authorization needs, return value format, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is front-loaded, followed by key behavioral info and limits.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, use cases, retry, and limits. It does not describe the output format, but since there is no output schema, the description is reasonably complete for a detection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds useful constraints (max 20MB, recommended clip length) that are not in the schema, enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it detects whether a face video is genuine or an attack, with a specific verb and resource. It distinguishes from siblings like photo_liveness_detect by focusing on video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides example use cases (eKYC, onboarding) but lacks explicit guidance on when not to use or which sibling tool to choose instead (e.g., photo vs video).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v1.1.17- First observed
bank_card_ocr - First observed
driver_license_ocr - First observed
face_compare - First observed
id_card_ocr - First observed
media_labeling - First observed
photo_liveness_detect - First observed
vehicle_license_ocr - First observed
video_liveness_detect
TDQS
Scored across 8 tools
Each tool targets a distinct function: face matching, liveness detection (photo vs video), OCR for four different document types, and media labeling for scene/risk analysis. No two tools have overlapping purposes.
All tool names use underscore_case and follow a pattern combining resource (e.g., face, id_card) and action (compare, detect, ocr, labeling). However, verb forms vary (base verb vs gerund) and 'ocr' is an abbreviation, so minor inconsistency.
8 tools is ideal for an eKYC suite: covers key operations without bloat. Each tool serves a clear purpose and none seem redundant.
The set provides comprehensive coverage for eKYC workflows: face comparison, liveness checks, OCR for major Chinese documents, and media labeling for fraud detection. No obvious gaps for the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
KYC, KYB, AML, wallet screening, transaction monitoring, and fraud workflows for AI agents.
Identity verification, document checks, sanctions/PEP screening and case review as agent tools.
Sanctions screening, KYB, identifier validation, jurisdiction risk & secret scanning for AI agents
Deterministic Mexican/LatAm verification + sanctions & PEP screening for AI agents. Pay via x402.
Related MCP Servers
AlicenseBqualityBmaintenanceProvides 110+ tools for identity verification, compliance, and workspace operations through the Model Context Protocol.10025MIT- FlicenseAqualityBmaintenanceAgentic KYC/AML compliance server with tools for sanctions screening, identity verification, and risk assessment, where AI orchestrates discretionary checks within deterministic compliance guardrails.6-
- AlicenseAqualityAmaintenanceProvides AI agents with compliance screening (OFAC sanctions, risk scoring, Know-Your-Agent) plus disposable email and SMS verification for OTPs, accessible via MCP tools, HTTP API, and CLI.101MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform identity verification, KYC/KYB, PEP & sanctions screening, bank statement analysis, and workflow automation via the Model Context Protocol.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/wefi-ai/eKYC-Suite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server