credit-risk-intelligence-mcp

credit-risk-intelligence-mcp

MCP server that exposes the credit scoring model's deterministic tools (probability of default, SHAP explanations, typicality check, financial ratios) to AI agents, enabling natural language credit risk assessment.

Category
Visit Server

README

πŸ’³ Credit Risk Intelligence System

Un sistema di credit scoring che valuta il rischio di un cliente e spiega la sua decisione in linguaggio naturale β€” un modello statistico interpretabile e verificato fa i calcoli, 4 agenti AI (Claude) li orchestrano e li raccontano.

Repository


In azione

Un utente compila i dati di un cliente in un form web (nessun terminale richiesto), e il sistema restituisce in pochi secondi: probabilitΓ  di default, spiegazione dei fattori che l'hanno determinata, verifica di quanto ci si puΓ² fidare della previsione, e rapporti finanziari β€” il tutto scritto come un vero credit memo.

streamlit run src/agents/app.py

Esempio di output (cliente con storico di pagamento regolare ma limite di credito e rimborsi contenuti): PD: 44.72% β€” rischio medio-alto Β· AffidabilitΓ : alta (cliente tipico, 99.91Β° percentile) Β· Fattore protettivo principale: pagamento puntuale (PAY_0) Β· Fattore di rischio principale: rimborsi storicamente bassi rispetto al limite concesso

Come funziona, in breve

                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚   SUPERVISOR AGENT   β”‚
                         β”‚  (sintetizza tutto)  β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                β”‚                     β”‚                β”‚
        β–Ό                β–Ό                     β–Ό                β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Risk Modeling β”‚ β”‚Explainabilityβ”‚  β”‚      Critic       β”‚ β”‚  Rapporti    β”‚
β”‚     Agent      β”‚ β”‚    Agent     β”‚  β”‚      Agent        β”‚ β”‚  finanziari  β”‚
β”‚                β”‚ β”‚              β”‚  β”‚                    β”‚ β”‚              β”‚
β”‚ "Quanto rischiaβ”‚ β”‚  "PerchΓ©?"   β”‚  β”‚"Posso fidarmi di   β”‚ β”‚"Come si      β”‚
β”‚  questo        β”‚ β”‚  (SHAP)      β”‚  β”‚ questa previsione?"β”‚ β”‚ comporta il  β”‚
β”‚  cliente?"     β”‚ β”‚              β”‚  β”‚ (Mahalanobis)      β”‚ β”‚ cliente?"    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                 β”‚                     β”‚                   β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                      β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   MODELLO STATISTICO (Logistic     β”‚
                    β”‚   Regression, AUC-ROC 0.7629)      β”‚
                    β”‚   L'UNICA fonte di ogni numero.    β”‚
                    β”‚   Nessun agente inventa mai una    β”‚
                    β”‚   probabilitΓ  o un contributo.     β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Ogni agente chiama uno strumento Python deterministico (mai una stima "a mente" della LLM) e traduce il risultato in linguaggio naturale. Lo stesso modello Γ¨ raggiungibile anche via server MCP standard, verificato con l'MCP Inspector ufficiale.

Risultati

Metrica Valore
AUC-ROC (test set / 5-fold CV) 0.7629 / 0.7717 Β± 0.0087
Recall @ soglia ottimizzata 0.8117
Variabile piΓΉ predittiva PAY_0 (storico pagamento recente), IV = 0.898
Test automatici 21, tutti superati
Costo medio per credit memo β‰ˆ $0.03 (misurato)

Curva ROC

PerchΓ© Γ¨ piΓΉ di un modello

Molti progetti di data science si fermano al modello. Questo va oltre, con scelte metodologiche esplicite e verificate:

  • Nessun data leakage: ogni calcolo statistico (WOE, binning, PSI) usa solo il train set, mai il test.
  • Due modelli confrontati onestamente: Logistic Regression scelta sopra Gradient Boosting nonostante quest'ultimo ottenga metriche leggermente superiori β€” il guadagno non giustificava la perdita di interpretabilitΓ  in un contesto normato come il credito.
  • Explainability verificata matematicamente: i contributi SHAP di ogni cliente ricostruiscono esattamente, cifra per cifra, la probabilitΓ  del modello.
  • Robustezza: limite di iterazioni sugli agenti, gestione degli errori di rete e di input malformato, validazione dei dati in ingresso, guardrail espliciti sullo scopo β€” non solo "il caso felice".
  • Limiti dichiarati, non nascosti: l'Expected Loss usa stime di settore per LGD/EAD (non presenti nel dataset), documentato esplicitamente nel codice.

Come lanciare il progetto

# Ambiente
python -m venv venv && .\venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

# Pipeline dati -> modello (necessaria prima di usare gli agenti)
python src\data\run_pipeline.py

# Interfaccia web
streamlit run src\agents\app.py

# Oppure un singolo agente da terminale
python src\agents\supervisor_agent.py

# Test automatici
python -m pytest tests\ -v

# Server MCP (richiede Node.js per l'Inspector)
npx @modelcontextprotocol/inspector python src\agents\mcp_server.py

Richiede una ANTHROPIC_API_KEY in un file .env nella root del progetto.

Il dataset

"Default of Credit Card Clients", UCI Machine Learning Repository (Yeh & Lien, 2009). 30.000 clienti reali di carte di credito a Taiwan, 23 variabili esplicative, licenza CC BY 4.0.

Approfondimenti tecnici

<details> <summary><strong>Sistema multi-agente, in dettaglio</strong></summary>

  • Risk Modeling Agent β€” chiama score_new_client, mai genera il numero da solo.
  • Explainability Agent β€” chiama explain_client_shap (SHAP con LinearExplainer, esatto per modelli lineari).
  • Critic Agent β€” chiama check_client_typicality (distanza di Mahalanobis), usa Claude Haiku per contenere i costi su un compito semplice.
  • Supervisor Agent β€” orchestra tutti gli strumenti sopra piΓΉ calculate_financial_ratios, dΓ  prioritΓ  esplicita agli avvisi di atipicitΓ  o dati implausibili nella sintesi finale.

Verificato concretamente: lo stesso cliente valutato tramite script diretto, tre agenti diversi, e il server MCP produce sempre lo stesso identico risultato (0.4472).

</details>

<details> <summary><strong>Metodologia del modello, in dettaglio</strong></summary>

  • Data Quality Assessment: 345 anomalie corrette in EDUCATION, 54 in MARRIAGE; un caso analogo in PAY_0...PAY_6 (valori -2/0 non documentati ma strutturali) identificato e volutamente non "corretto", perchΓ© parte reale del dataset.
  • Selezione delle feature su Information Value e matrice di correlazione: escluse MARRIAGE (IV troppo basso) e le 6 BILL_AMT (IV bassissimo e correlate tra loro).
  • Soglia di decisione ottimizzata su un criterio di business esplicito (Recall β‰₯ 0.80), con il trade-off in Precision quantificato, non ignorato.

</details>

<details> <summary><strong>Struttura del progetto</strong></summary>

β”œβ”€β”€ data/raw/                # dataset grezzo
β”œβ”€β”€ models/                  # modello, trasformazioni, grafici
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ data/                # pipeline: caricamento, pulizia, feature engineering, training
β”‚   └── agents/               # 4 agenti Claude, server MCP, interfaccia Streamlit
└── tests/                   # 21 test automatici

</details>


Progetto di Alessandro Donnini β€” MSc Marketing Management, Bocconi. Costruito come pezzo di portfolio per una transizione verso ruoli di Data Science / Corporate Finance.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured