outris-identity-mcp
Identity resolution MCP server for phone/email lookups across 31+ services. Global + India coverage.
Should I use this
Quality & Safety
Findings (1)
- LOWin check_digital_commerce_activity
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"outris-identity-mcp": {
"url": "https://mcp-server.outris.com/http"
}
}
}Remote endpoints
https://mcp-server.outris.com/httpstreamable-httpWhat it can do
Tool inventory
Tools (19)
⚪investigate_phone(phone, depth)
Investigate an Indian mobile number and return who is behind it — name(s), addresses, alternate phone numbers, and social/digital footprint. Use depth='basic' for a fast identity bundle (default) or depth='full' for a comprehensive multi-source investigation (slower). Best for: 'who owns this number', caller ID, KYC, skip-tracing. Cost: 3 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Indian mobile number (10-digit, with or without +91)."
},
"depth": {
"type": "string",
"enum": [
"basic",
"full"
],
"description": "basic = fast identity bundle (default); full = comprehensive investigation (slower)."
}
},
"required": [
"phone"
]
}🟡assess_fraud_risk(phone, detailed)
Assess the fraud risk of an Indian mobile number. Returns a composite risk profile: SIM age / age-on-network, number revocation status, SIM-swap / port signals, and digital & financial exposure. Set detailed=true for the full signal breakdown. Best for: onboarding risk checks, is-this-number-risky. Cost: 3 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Indian mobile number (10-digit, with or without +91)."
},
"detailed": {
"type": "boolean",
"description": "Include the full raw signal breakdown. Default false."
}
},
"required": [
"phone"
]
}🟢find_contacts(phone, consent_token, consent)
Skip-trace an Indian mobile number for the person's ALTERNATE phone numbers and current, geocoded addresses. Requires the end user's consent: ask the user to open the consent link in portal.outris.com/mcp and pass the consent_token they receive. Best for: debt collection, locating a person. Never fabricate consent. Cost: 3 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Indian mobile number (10-digit, with or without +91)."
},
"consent_token": {
"type": "string",
"description": "Server-issued consent token from portal.outris.com/mcp (preferred)."
},
"consent": {
"type": "string",
"description": "Deprecated legacy consent flag ('Y'); accepted only during migration."
}
},
"required": [
"phone"
]
}🟡due_diligence_person_start(phone, consent_token, consent, name, pan, ...)
Start a full due-diligence / background check on a PERSON, anchored on their mobile number (optionally add name, PAN, DOB, email, city). Covers PEP, sanctions, enforcement, cybercrime, breaches, directorships, and adverse media. PREMIUM and ASYNC (~40-70s): it returns a job_id — poll check_job until status is 'complete'. Requires consent: ask the user to open the consent link in portal.outris.com/mcp and pass the consent_token. Cost: 5 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Indian mobile number (10-digit, with or without +91)."
},
"consent_token": {
"type": "string",
"description": "Server-issued consent token (preferred)."
},
"consent": {
"type": "string",
"description": "Deprecated legacy consent flag ('Y'); migration only."
},
"name": {
"type": "string",
"description": "Optional subject full name."
},
"pan": {
"type": "string",
"description": "Optional PAN — strongest key for PEP/enforcement."
},
"dob": {
"type": "string",
"description": "Optional date of birth (disambiguates common names)."
},
"email": {
"type": "string",
"description": "Optional subject email."
},
"city": {
"type": "string",
"description": "Optional city (adverse-media disambiguation)."
}
},
"required": [
"phone"
]
}🟢check_job(job_id)
Check the status/result of an async job by job_id (e.g. from due_diligence_person_start). Free to poll — wait ~10s between polls. Cost: 0 credits
Input Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "The job_id returned by an async tool."
}
},
"required": [
"job_id"
]
}⚪investigate_email(email)
Trace the person behind an email address — linked names, phone numbers, addresses, and known data breaches. Best for: reverse email lookup, digital footprint, cross-referencing an identity. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Email address to investigate."
}
},
"required": [
"email"
]
}⚪resolve_company(company_name)
Resolve an Indian company from its NAME and return its CIN (Corporate Identification Number) plus any GSTIN / MSME registrations discovered along the way. Best for: 'is this a real company', KYB entry point, finding a CIN from a company name. Cost: 3 credits
Input Schema
{
"type": "object",
"properties": {
"company_name": {
"type": "string",
"description": "Company name to resolve."
}
},
"required": [
"company_name"
]
}⚪lookup_gst(gstin)
Look up GST registration details for a business by its GSTIN (15-character GST number). Returns legal/trade name, status, registration type, and address. Best for: GST verification, vendor onboarding. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"gstin": {
"type": "string",
"description": "15-character GSTIN."
}
},
"required": [
"gstin"
]
}⚪verify_pan(pan)
Verify an Indian PAN (Permanent Account Number) and return the holder's name, status, and PAN type (individual / company / etc.). Best for: KYC, PAN validity checks. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"pan": {
"type": "string",
"description": "10-character PAN (e.g. ABCDE1234F)."
}
},
"required": [
"pan"
]
}⚪lookup_vehicle(rc_number)
Look up an Indian vehicle by its RC (registration) number — returns make/model, registration details, and the registered owner. Best for: vehicle verification, RC checks. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"rc_number": {
"type": "string",
"description": "Vehicle registration number (e.g. MH12AB1234)."
}
},
"required": [
"rc_number"
]
}⚪verify_bank_account(account_number, ifsc)
Validate an Indian bank account WITHOUT moving any money (no-debit NPCI validation) and return whether it is valid plus the account holder's name for matching. Best for: payout/beneficiary verification. This does NOT transfer funds. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"account_number": {
"type": "string",
"description": "Bank account number to validate."
},
"ifsc": {
"type": "string",
"description": "IFSC code of the account's branch."
}
},
"required": [
"account_number",
"ifsc"
]
}⚪smart_lookup(question, identifiers, consent_token, consent)
Answer any other identity / KYC / business question when no specific tool fits. Provide a natural-language `question` plus the `identifiers` you already have (phone, email, PAN, GSTIN, CIN, DIN, UAN, IFSC, vehicle RC, UPI VPA, UDIN, or a company name). It figures out the right lookup — or a short sequence — and returns the answer. Only pass identifiers the user actually gave you; never invent one. For consent-required lookups, ask the user to open the consent link in portal.outris.com/mcp and pass the consent_token they receive. Cost: 3 credits
Input Schema
{
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The user's question in plain language."
},
"identifiers": {
"type": "object",
"description": "Identifiers you have, as {type: value} — e.g. {\"pan\": \"ABCDE1234F\"} or {\"phone\": \"9876543210\"}. Only include values the user provided."
},
"consent_token": {
"type": "string",
"description": "Server-issued consent token from portal.outris.com/mcp (preferred for consent-required lookups)."
},
"consent": {
"type": "string",
"description": "Deprecated legacy consent flag ('Y'); accepted only during migration. Prefer consent_token."
}
},
"required": [
"question",
"identifiers"
]
}🟢check_online_platforms(phone)
**What it does:** Checks if a phone number is registered on major global platforms (Amazon, Instagram, Snapchat). **Input:** Phone number (with or without country code). **Returns:** Registration status (true/false) for each specific platform. **Best for:** Digital footprint analysis, verifying if a number is "real" and active on social/shopping apps. Cost: 1 credit
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number (with or without country code)"
}
},
"required": [
"phone"
]
}🟢get_identity_profile(phone)
**What it does:** Comprehensive identity report. Fetches names, emails, addresses, metadata, and risk scores in one go . **Input:** Phone number. **Returns:** Complete JSON profile containing all linked entities. **Best for:** Deep investigations where you need the "full picture" immediately. Understand if similar names, addresses appear, then that gives more confidence Cost: 3 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number"
}
},
"required": [
"phone"
]
}🟢get_name(phone)
**What it does:** identifying the owner name of a phone number. **Input:** Phone number (with or without country code). **Returns:** List of full names linked to this phone with confidence scores. **Best for:** KYC verification, caller ID, finding out "who called me". Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number"
}
},
"required": [
"phone"
]
}🟢get_email(phone)
**What it does:** Finds email addresses linked to a phone number. **Input:** Phone number. **Returns:** List of email addresses with confidence scores. **Best for:** Digital footprint analysis, finding contact details, or cross-referencing identities. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number"
}
},
"required": [
"phone"
]
}🟢get_address(phone)
**What it does:** Finds physical addresses associated with a phone number. **Input:** Phone number. **Returns:** List of addresses with metadata (e.g., "shipping", "billing", "home") and dates. **Best for:** Fraud investigation, delivery verification, and location analysis. Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number"
}
},
"required": [
"phone"
]
}🟢get_alternate_phones(phone)
Get other phone numbers belonging to the same person. Returns: List of alternate phone numbers linked through shared identities (same name, email, or address). Use when: User wants to find all phones associated with a person. Example queries: - "What other phones does this person have?" - "Find alternate numbers for 9876543210" - "Are there other phones linked to this one?" Cost: 2 credits
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number"
}
},
"required": [
"phone"
]
}🟡check_digital_commerce_activity(phone, include_demographics)
**What it does:** Checks if a phone number has been used for any digital commerce activity (ecommerce, travel, quick-commerce). **Input:** Phone number (Indian numbers only, add ISD code infront). **Returns:** Boolean flags for overall commerce types, activity timeline, and demographics if available. **Best for:** Assessing if a phone number belongs to a real, active consumer vs. a throwaway number. Cost: 1 credit
Input Schema
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"description": "Phone number (with or without country code)"
},
"include_demographics": {
"type": "boolean",
"description": "Include age/gender estimation (default: true)"
}
},
"required": [
"phone"
]
}Community
Evidence