diff --git a/brian_polling_manager/configuration.py b/brian_polling_manager/configuration.py
index a200bb881182fd2d521b7474ca318054b207f18a..e7c273d54762b1d074e805af20ea4721cbbf8a74 100644
--- a/brian_polling_manager/configuration.py
+++ b/brian_polling_manager/configuration.py
@@ -36,12 +36,19 @@ _DEFAULT_CONFIG = {
         'gws-direct-interface-check': {
             'script': '/var/lib/sensu/bin/poll-gws-direct.sh',
             'measurement': 'gwsd_counters',
-            'command': '{script} {measurement} {nren} {isp} {hostname} {tag}'
+            'command': '{script} --inventory http://localhost:18080'
+                       ' {measurement} {nren} {isp} {hostname} {tag}'
         },
         'dscp32-service-check': {
             'script': '/var/lib/sensu/bin/poll-gws-indirect.sh',
             'measurement': 'dscp32_counters',
             'command': '{script} {measurement} {service}'
+        },
+        'eumetsat-multicast-check': {
+          'script': '/home/brian_checks/venv/eumetsat-multicast',
+          'measurement': 'multicast',
+          'command': '{script} --inventory http://localhost:18080'
+                     ' --measurement {measurement} --hostname {hostname}'
         }
     },
     'statedir': '/tmp/',
@@ -75,16 +82,21 @@ CONFIG_SCHEMA = {
                     'minItems': 1
                 },
                 'api-key': {'type': 'string'},
-                'interface-check': {'$ref': '#/definitions/influx-check'},
+                'interface-check':
+                    {'$ref': '#/definitions/influx-check'},
                 'gws-direct-interface-check':
                     {'$ref': '#/definitions/influx-check'},
-                'dscp32-service-check': {'$ref': '#/definitions/influx-check'},
+                'dscp32-service-check':
+                    {'$ref': '#/definitions/influx-check'},
+                'eumetsat-multicast-check':
+                    {'$ref': '#/definitions/influx-check'},
             },
             'required': [
                 'api-base', 'api-key',
                 'interface-check',
                 'gws-direct-interface-check',
-                'dscp32-service-check'],
+                'dscp32-service-check',
+                'eumetsat-multicast-check'],
             'additionalProperties': False
         },
         'statsd': {
diff --git a/brian_polling_manager/eumetsat_multicast.py b/brian_polling_manager/eumetsat_multicast.py
new file mode 100644
index 0000000000000000000000000000000000000000..2912e49c264260f26c14ff4b09b2cb31283e106a
--- /dev/null
+++ b/brian_polling_manager/eumetsat_multicast.py
@@ -0,0 +1,48 @@
+from brian_polling_manager import sensu
+
+
+def load_eumetsat_multicast_checks(sensu_params):
+    def _is_eumetsat_multicast_check(check):
+        name = check['metadata']['name']
+        return name.startswith('eumetmc')
+    ifc_checks = filter(
+        _is_eumetsat_multicast_check, sensu.load_all_checks(sensu_params))
+    return {c['metadata']['name']: c for c in ifc_checks}
+
+
+class EUMETSATMulticastHostCheck(sensu.AbstractCheck):
+
+    def __init__(self, check_config, hostname):
+        super().__init__()
+        self.check_config = check_config
+        self.hostname = hostname
+
+    @sensu.AbstractCheck.name.getter
+    def name(self):
+        return f'eumetmc-{self.hostname}'
+
+    @sensu.AbstractCheck.command.getter
+    def command(self):
+        return self.check_config['command'].format(
+            script=self.check_config['script'],
+            measurement=self.check_config['measurement'],
+            hostname=self.hostname)
+
+    @sensu.AbstractCheck.proxy_entity_name.getter
+    def proxy_entity_name(self):
+        return self.hostname
+
+
+def refresh(sensu_params, eumetsat_multicast_config):
+
+    # one check per unique host
+    all_routers = {x['router'] for x in eumetsat_multicast_config}
+    required_checks = [
+        EUMETSATMulticastHostCheck(
+            sensu_params['eumetsat-multicast-check'], hostname)
+        for hostname in all_routers]
+
+    return sensu.refresh(
+        sensu_params,
+        required_checks,
+        load_eumetsat_multicast_checks(sensu_params))
diff --git a/brian_polling_manager/main.py b/brian_polling_manager/main.py
index a753961cd9aa60da479c218461dde27b6de08dda..cb31270288382a802917b699eb398ffb80a58715 100644
--- a/brian_polling_manager/main.py
+++ b/brian_polling_manager/main.py
@@ -30,7 +30,7 @@ import jsonschema
 from statsd import StatsClient
 
 from brian_polling_manager import inventory, configuration, \
-    interfaces, gws_direct, gws_indirect, sensu
+    interfaces, gws_direct, gws_indirect, eumetsat_multicast, sensu
 
 logger = logging.getLogger(__name__)
 
@@ -90,6 +90,9 @@ def refresh(config, force=False):
         'gws_direct': gws_direct.refresh(config['sensu'], state.gws_direct),
         'gws_indirect': gws_indirect.refresh(
             config['sensu'], state.gws_indirect),
+        'eumetsat_multicast': eumetsat_multicast.refresh(
+            config['sensu'], state.eumetsat_multicast),
+
     }
     jsonschema.validate(result, REFRESH_RESULT_SCHEMA)  # sanity