I tried this a few years back and wasn't able to get it to work.
you could look into
Join by joaoapps and tasker, I'm not sure how well it will work as a remote structure though.
Join has a rest Api so you can use it with VC, I use it for notifications, and tasker actions.
your work flow might be something like this:
VC (Join API(Tasker actions)) > Tasker (on Shield TV) > Tasker send ADB cmd.
Join and Tasker are paid apps, I paid $3.00 USD each I believe.
Join Actions group:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.3.0.3-->
<commandGroup open="False" name="Join - Notifications" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="746" name="Join Basic Notification" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1}= Device Name&#xD;&#xA;{2}=Title&#xD;&#xA;{3}=Text&#xD;&#xA;{4}=Icon&#xD;&#xA;{5}=Notification Bar Icon">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceNames={1}&text={3}&title={2}&icon={M:JoinNotification.{4}}&smallicon={M:JoinNotification.{4}Icon}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Notification</event>
</command>
<command id="809" name="Join Tasker Command" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1}= Device Name&#xD;&#xA;{2}= Tasker command (text)">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceNames={1}&text={2}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Tasker</event>
</command>
<command id="810" name="Join Tasker (all Androids)" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1}= Tasker command">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceId=group.android&text={1}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Tasker.Group</event>
</command>
<command id="817" name="Join android App" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1}= Device Name&#xD;&#xA;{2}= App Name">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceNames={1}&app={2}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Android.App</event>
</command>
<command id="846" name="Join Set Device Clipboard" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1} Device name&#xD;&#xA;{2} Tasker "Event"">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceNames={1}&clipboard={2}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Clipboard</event>
</command>
<command id="812" name="Join Say" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1}= Device Name&#xD;&#xA;{2}= What to say">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceNames={1}&say={2}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Say</event>
</command>
<command id="789" name="Join set volume Android Devices" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceId=group.android&mediaVolume=100&ringVolume=100&alarmVolume=100&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
<command id="844" name="Join Link" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="NOTIFICATION&#xD;&#xA;{1}=Device Name&#xD;&#xA;{2}=Title&#xD;&#xA;{3}=Text&#xD;&#xA;{4}=Icon&#xD;&#xA;{5}=url">
<action>
<cmdType>Tools.Encode.URI</cmdType>
<params>
<param>https://joinjoaomgcd.appspot.com/_ah/api/messaging/v1/sendPush?deviceNames={1}&text={3}&title={2}&url={5}&dismissOnTouch=true&icon={M:JoinNotification.{4}}&smallicon={M:JoinNotification.{4}Icon}&apikey={M:apiKeys.Join}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<event>Join.Link</event>
</command>
</commandGroup>
there are multpile commands in the group above they will all require your Join API key,
replace {M:apiKeys.Join} with your API Key