diff --git a/TODO-RELEASE b/TODO-RELEASE
index c480ba0..5fe3d53 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -25,4 +25,5 @@
 #
 #library		what		description / commit summary line
 libosmo-netif           >1.2.0          OSMUX_DEFAULT_PORT, osmux_xfrm_output_*, osmux_xfrm_input_*
-libosmocore             >1.7.0          osmo_sockaddr_is_any()
\ No newline at end of file
+libosmocore             >1.7.0          osmo_sockaddr_is_any()
+libmgcp-client          NEW APIs        mgcp_client_pool_member_...()
\ No newline at end of file
diff --git a/include/osmocom/mgcp_client/mgcp_client_pool.h b/include/osmocom/mgcp_client/mgcp_client_pool.h
index d0a6ff4..949e870 100644
--- a/include/osmocom/mgcp_client/mgcp_client_pool.h
+++ b/include/osmocom/mgcp_client/mgcp_client_pool.h
@@ -2,10 +2,17 @@
 
 struct mgcp_client;
 struct mgcp_client_pool;
+struct mgcp_client_pool_member;
 
 struct mgcp_client_pool *mgcp_client_pool_alloc(void *talloc_ctx);
+
 void mgcp_client_pool_vty_init(int parent_node, int mgw_node, const char *indent, struct mgcp_client_pool *pool);
 unsigned int mgcp_client_pool_connect(struct mgcp_client_pool *pool);
 void mgcp_client_pool_register_single(struct mgcp_client_pool *pool, struct mgcp_client *mgcp_client);
+
 struct mgcp_client *mgcp_client_pool_get(struct mgcp_client_pool *pool);
 void mgcp_client_pool_put(struct mgcp_client *mgcp_client);
+
+struct mgcp_client_pool_member *mgcp_client_pool_find_member_by_nr(struct mgcp_client_pool *pool, unsigned int nr);
+struct mgcp_client *mgcp_client_pool_member_get(struct mgcp_client_pool_member *pool_member);
+bool mgcp_client_pool_member_is_blocked(const struct mgcp_client_pool_member *pool_member);
diff --git a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h
index d71deaf..999c3ef 100644
--- a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h
+++ b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h
@@ -18,9 +18,6 @@
 	struct cmd_node *vty_node;
 };
 
-struct mgcp_client_pool_member *mgcp_client_pool_find_member_by_nr(struct mgcp_client_pool *pool, unsigned int nr);
-
-
 /* Struct to handle a member of a pool of MGWs. */
 struct mgcp_client_pool_member {
 	/* Entry in llist mgcp_client_pool->pool. */
diff --git a/src/libosmo-mgcp-client/mgcp_client_pool.c b/src/libosmo-mgcp-client/mgcp_client_pool.c
index bee3555..caec535 100644
--- a/src/libosmo-mgcp-client/mgcp_client_pool.c
+++ b/src/libosmo-mgcp-client/mgcp_client_pool.c
@@ -148,12 +148,10 @@
 
 	/* Pick a suitable pool member */
 	pool_member = mgcp_client_pool_pick(pool);
-	if (pool_member) {
-		pool_member->refcount++;
-		return pool_member->client;
-	}
+	if (!pool_member)
+		return NULL;
 
-	return NULL;
+	return mgcp_client_pool_member_get(pool_member);
 }
 
 /*! put an MGCP client back into the pool (decrement reference counter).
@@ -273,3 +271,22 @@
 
 	return name;
 }
+
+/*! Get the MGCP client associated with the pool reference from the pool (increment reference counter).
+ *  \param[in] pool_member MGCP client pool descriptor.
+ *  \returns MGCP client descriptor, NULL if no member was not ready.
+ */
+struct mgcp_client *mgcp_client_pool_member_get(struct mgcp_client_pool_member *pool_member)
+{
+	pool_member->refcount++;
+	return pool_member->client;
+}
+
+/*! Get whether the MGCP client associated with the pool reference is blocked by policy.
+ *  \param[in] pool_member MGCP client pool descriptor.
+ *  \returns true if blocked, false otherwise
+ */
+bool mgcp_client_pool_member_is_blocked(const struct mgcp_client_pool_member *pool_member)
+{
+	return pool_member->blocked;
+}
diff --git a/src/libosmo-mgcp-client/mgcp_client_vty.c b/src/libosmo-mgcp-client/mgcp_client_vty.c
index a823b0c..da017f6 100644
--- a/src/libosmo-mgcp-client/mgcp_client_vty.c
+++ b/src/libosmo-mgcp-client/mgcp_client_vty.c
@@ -32,6 +32,7 @@
 #include <osmocom/mgcp_client/mgcp_client.h>
 #include <osmocom/mgcp_client/mgcp_client_internal.h>
 #include <osmocom/mgcp_client/mgcp_client_pool_internal.h>
+#include <osmocom/mgcp_client/mgcp_client_pool.h>
 
 #define MGW_STR MGCP_CLIENT_MGW_STR
 
