A powerful MCP server built with NitroStack
Add via Cursor Settings UI (Settings > Features > MCP > Add New MCP Server):
{
"mcpServers": {
// your other mcp servers
"vitta-lending": {
"url": "https://vitta-6a5a5835-the-beetles-amrita-university-amritapuri-campus.app.nitrocloud.ai/mcp"
}
}
}
Connect remote tools directly via Claude's Web UI:
Configure custom tools directly via ChatGPT's Web UI:
Add the following configuration block under mcpServers in your Antigravity configuration file (~/.gemini/config/mcp_config.json):
{
"mcpServers": {
// your other mcp servers
"vitta-lending": {
"serverUrl": "https://vitta-6a5a5835-the-beetles-amrita-university-amritapuri-campus.app.nitrocloud.ai/mcp"
}
}
}
Add the following configuration block to your Codex configuration file (~/.codex/config.toml):
[mcp_servers.vitta-lending] url = "https://vitta-6a5a5835-the-beetles-amrita-university-amritapuri-campus.app.nitrocloud.ai/mcp"
Connect directly using the Server-Sent Events endpoint:
https://vitta-6a5a5835-the-beetles-amrita-university-amritapuri-campus.app.nitrocloud.ai/mcp
Start a loan application: capture intent (purpose, amount, tenure, employment, city) and run quick eligibility. Returns a lead_id and a session_id you MUST reuse for every later tool call. Detects medical/emergency intent as FAST_TRACK.
Capture explicit, versioned, timestamped DPDP consent and ISSUE the consent_token that unlocks data-pull tools (also returns jti for revoke_consent). Call this BEFORE pull_bureau or fetch_bank_statements. IMPORTANT: only call with accepted=true AFTER the human has explicitly agreed in this conversation — never assume or pre-fill consent on their behalf. If accepted=false, no token is issued and those tools will refuse.
PAN name-match + CKYC alignment (mock). Returns PASS / RETRY / FAIL, a kyc_hash, and any risk flags.
Fraud, velocity and AML/PEP watchlist screening (mock). Returns CLEAR / REVIEW / BLOCK with signals and a score. A REVIEW verdict should pause for human handoff.
CONSENT-GATED. Pull the credit bureau report (score, DPD, write-offs, inquiries, active EMIs). Refuses with {error:"CONSENT_REQUIRED"} unless a valid consent_token granting CREDIT_BUREAU scope is passed.
CONSENT-GATED. Fetch 12-month bank/Account-Aggregator cashflow summary (salary credits, variance, bounces, surplus, stability). Refuses with {error:"CONSENT_REQUIRED"} unless a valid consent_token granting BANK_STATEMENTS scope is passed.
Compute net income, proposed EMI, FOIR and DTI from the pulled bureau + bank data. Run after pull_bureau and fetch_bank_statements.
Explainable underwriting: hard negatives + FOIR cap + a pre-baked scorecard → APPROVE / CONDITIONAL / DECLINE, with reason_codes and borrower-friendly explanations. CONDITIONAL should pause for human review before generate_offers.
Produce up to 3 priced offers (amount, ROI, EMI, APR, total cost) with a recommended flag. Intent-aware: FAST_TRACK (medical/emergency) surfaces the lowest-EMI offer first. Only runs after an APPROVE or CONDITIONAL decision.
Generate a signed sanction letter for a chosen offer: borrower + amount + EMI/APR, first-EMI date, a 3-row amortization preview, 3-day cooling-off notice, a mock e-sign line, and a SHA256 integrity hash. Returns a downloadable url. Only after the applicant accepts an offer.
Append a redacted event to the immutable audit trail (returns an ack + sequence number). Every decision, prompt and parameter version is stamped. PII is redacted automatically.
Retrieve the append-only audit trail for a session. view=FULL (all fields), SUMMARY (seq/actor/event/ts) or COMPLIANCE_VIEW (adds version stamps). PII is already redacted at write time.
DPDP withdrawal: revoke a previously issued consent by its token id (jti — returned by record_consent). After revocation, consent-gated tools refuse with CONSENT_REVOKED.
Liveness probe. Returns {ok:true, version, commit, server, ts}. Use to verify the deployment is reachable and which build is live.
FAST PATH: after record_consent, run the entire post-consent chain in ONE call — verify_kyc, screen_fraud, pull_bureau (consent-gated), fetch_bank_statements (consent-gated), compute_affordability, and underwrite — and return the decision. Use this right after consent instead of calling those six tools one by one. Refuses with {error:"CONSENT_REQUIRED"} if the consent_token is missing, wrong-scope, or issued for a different lead.
What-If Simulator: re-run affordability + underwriting with one or two changed levers (net_income, tenure_months, requested_amount, close_existing_emi) WITHOUT changing the real application. Returns baseline vs scenario decisions and a plain-language delta (e.g. "close your ₹4,000 card EMI and the offer rises to ₹3L"). Use after underwrite, especially on CONDITIONAL or DECLINE, to show the applicant a constructive path.
LIVE external data: fetch current INR reference FX rates (Frankfurter/ECB free API) plus the policy rate context our ROI bands are set against. Falls back to a cached snapshot if offline, so it always answers.