diff --git a/inventory_provider/routes/msr.py b/inventory_provider/routes/msr.py
index 6f5087b2fdf6ff14fa2ddd40c298a0ba140c2733..ae0c98ab79e48a272256e67056f539ca40db9066 100644
--- a/inventory_provider/routes/msr.py
+++ b/inventory_provider/routes/msr.py
@@ -875,3 +875,48 @@ def bgp_all_peerings():
     r = common.get_current_redis()
     response = r.get('juniper-peerings:all')
     return Response(response.decode('utf-8'), mimetype="application/json")
+
+
+@routes.route('/mdvpn', methods=['GET', 'POST'])
+@common.require_accepts_json
+def mdvpn():
+    def _make_bgplu_index(bgplu):
+        index = {}
+        for peering in bgplu:
+            asn = peering['remote-asn']
+            if asn in index:
+                peering_list = index[asn]
+                peering_list.append(peering)
+            else:
+                index[asn] = [peering]
+        return index
+
+    def _bgplu_peerings(asn, bgplu_index):
+        peerings = []
+        if asn in bgplu_index:
+            for peering in bgplu_index[asn]:
+                formatted_peering = {
+                    "name": peering['description'],
+                    "v4": peering['address'],
+                    "v6": '',
+                    "hostname": peering['hostname']
+                }
+                peerings.append(formatted_peering)
+        return peerings
+
+    def _peerings_for_nren(asn, bgplu_index):
+        return {
+            "asn": asn,
+            "AP": _bgplu_peerings(asn, bgplu_index),
+            "VRR": []
+        }
+
+    r = common.get_current_redis()
+    bgplu = json.loads(r.get('juniper-peerings:group:BGPLU').decode('utf-8'))
+    bgplu_index = _make_bgplu_index(bgplu)
+    config = current_app.config['INVENTORY_PROVIDER_CONFIG']
+    nren_asn_map = config['nren-asn-map']
+    nren_details = [_peerings_for_nren(int(asn), bgplu_index) for asn in
+                    nren_asn_map]
+    response = json.dumps(nren_details)
+    return Response(response, mimetype='application/json')