outris-identity-mcp

Identity resolution MCP server for phone/email lookups across 31+ services. Global + India coverage.

Should I use this

Quality & Safety

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

Findings (1)

  • LOWTool 'check_digital_commerce_activity' name length outside 3-30 rangein check_digital_commerce_activity

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,670Tokens (tool definitions)
~669 BTypical response size
Significant attention impact (2.09% 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": {
    "outris-identity-mcp": {
      "url": "https://mcp-server.outris.com/http"
    }
  }
}

Remote endpoints

https://mcp-server.outris.com/httpstreamable-http

What it can do

Tool inventory

Tools (19)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded19 tools
verifiedversion not recorded19 tools