<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ellenbruch Zsolt — AI SEO & MCP]]></title><description><![CDATA[I explore AI SEO and MCP from a journalist's perspective, sharing hands-on tests, project experiences and what I learn about how AI assistants discover software]]></description><link>https://ezstgb.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ae4b5bca536be2ed7cf9c1b/06a0953d-19ab-4d99-bb19-f3024388f8a3.png</url><title>Ellenbruch Zsolt — AI SEO &amp; MCP</title><link>https://ezstgb.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 04 Nov 2026 15:05:38 GMT</lastBuildDate><atom:link href="https://ezstgb.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[remotify-mcp in practice — running remote commands between two Windows computers]]></title><description><![CDATA[A hands-on remotify-mcp test using Claude Desktop on two Windows PCs, covering setup, command approval and rejection in supervised mode.]]></description><link>https://ezstgb.hashnode.dev/remotify-mcp-in-practice-running-remote-commands-between-two-windows-computers</link><guid isPermaLink="true">https://ezstgb.hashnode.dev/remotify-mcp-in-practice-running-remote-commands-between-two-windows-computers</guid><category><![CDATA[mcp]]></category><category><![CDATA[mcp server]]></category><category><![CDATA[claude]]></category><category><![CDATA[Windows]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Ellenbruch Zsolt]]></dc:creator><pubDate>Sat, 31 Oct 2026 15:45:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae4b5bca536be2ed7cf9c1b/0be78033-bd33-4e73-9300-dd1e75b4c8c2.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Working with an AI assistant can involve several applications and tools. We retrieve information from one place, perform an action somewhere else, and use the results to decide what to do next. That workflow can extend across two separate computers. The connection then needs to let the person at the other computer see and approve the requests sent to it.</p>
<p>With remotify-mcp, an AI assistant can send shell commands to another computer and receive their output. This can help with inspecting logs, checking services, or gathering information for troubleshooting while you continue using the AI application on your own computer. Commands and results pass through an HTTP relay, without an SSH connection.</p>
<p>In supervised mode, the person at the receiving computer can review each incoming command and decide whether to run it. The documentation also describes an automatic mode that executes commands without asking the operator for confirmation. [4]</p>
<p><em>Disclosure: I work on improving remotify-mcp's visibility and have a professional connection to the project. This article explains how it works, then walks through my setup on October 30–31, 2026, and the test across two computers on October 31. I also used AI assistance during the technical setup.</em></p>
<h2>How the components connect</h2>
<p>remotify-mcp is an MCP server that runs locally. MCP, short for Model Context Protocol, connects AI applications with external tools; an MCP server can run on your own computer. In this case, that server makes remote command execution available to the assistant. [2]</p>
<p>Three components work together. The AI application and remotify-mcp run on one computer, while a receiving program waits for requests on the other. The project calls that program a listener, and the relay connects the two sides. [1]</p>
<table>
<thead>
<tr>
<th>Component</th>
<th>Role</th>
</tr>
</thead>
<tbody><tr>
<td>Computer running the AI application and remotify-mcp</td>
<td>The assistant sends a command through the MCP tool and receives the response.</td>
</tr>
<tr>
<td>HTTP relay</td>
<td>Passes commands and results between the two computers.</td>
</tr>
<tr>
<td>Receiving computer with Bash, curl, and the listener</td>
<td>Displays the request, waits for the operator's decision in supervised mode, and returns either the output or a rejection.</td>
</tr>
</tbody></table>
<p>The AI application communicates with the local MCP server over stdio, or standard input and output. Commands and results travel through the relay over HTTP(S), so the client configuration needs the command that starts the local MCP program. [1]</p>
<h2>Preparing my laptop</h2>
<p>I first installed Claude Desktop on my Windows laptop and signed in with a Free account. I used the Chat interface and pinned remotify-mcp to version 0.6.2 for the test. I chose supervised mode to try approving one command and rejecting another on the receiving computer.</p>
<p>The first obstacle appeared on my own laptop. Neither <code>node --version</code> nor <code>npx --version</code> returned a version number in Windows Command Prompt, so I installed Node.js. In a newly opened Command Prompt, the versions then appeared as Node.js 26.13.0 and npx 11.20.0.</p>
<p>To check them, I pressed <strong>Windows + R</strong>, typed <code>cmd</code>, pressed Enter, and ran:</p>
<pre><code class="language-cmd">node --version
npx --version
</code></pre>
<p>In my Claude installation, <strong>Settings → Developer → Edit config</strong> opened <code>claude_desktop_config.json</code>. I added the remotify startup configuration, using the pinned <code>0.6.2</code> package version. I kept the settings already present in the file.</p>
<p>On the first launch, remotify showed “Server disconnected.” The log contained an npm certificate verification error:</p>
<pre><code class="language-text">UNABLE_TO_VERIFY_LEAF_SIGNATURE
unable to verify the first certificate
</code></pre>
<p>Using Node.js's system certificate store resolved the issue in my environment. I first checked whether the package was accessible with that setting in Windows Command Prompt:</p>
<pre><code class="language-cmd">set "NODE_USE_SYSTEM_CA=1"
npm view remotify-mcp@0.6.2 version
</code></pre>
<p>The response was <code>0.6.2</code>. I then added <code>NODE_USE_SYSTEM_CA</code> to the remotify entry in Claude's configuration, because the <code>set</code> command only applied to that Command Prompt session. My Node.js version supports this setting, which includes the system's trusted certificates in certificate verification. [3]</p>
<p>Here is a standalone, minimal example of the configuration that worked for me:</p>
<pre><code class="language-json">{
  "mcpServers": {
    "remotify": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "remotify-mcp@0.6.2"
      ],
      "env": {
        "NODE_USE_SYSTEM_CA": "1"
      }
    }
  }
}
</code></pre>
<p>For an existing configuration, add the <code>remotify</code> entry to its <code>mcpServers</code> object while preserving other servers and settings. The certificate-store setting addressed the specific error I encountered; check that your Node.js version supports <code>NODE_USE_SYSTEM_CA</code>.</p>
<p>After saving the file, I fully quit Claude, including the application still running in the system tray, and restarted it. The local MCP server then showed <strong>Running</strong>, and Claude successfully retrieved the remotify session details.</p>
<h2>The test across two computers</h2>
<p>On the receiving Windows computer, we opened a Bash terminal and checked the tools with <code>bash --version</code> and <code>curl --version</code>. The first paste inserted unwanted control characters before the command, causing Bash to report an error. Both checks worked when we typed the commands manually.</p>
<p>We then created a separate test folder and switched into it:</p>
<pre><code class="language-bash">mkdir -p ~/remotify-teszt
cd ~/remotify-teszt
</code></pre>
<p>On my laptop, I asked Claude for a fresh remotify session. The <code>remote_session_info</code> tool returned the command needed to start the listener, and we chose the <strong>supervised</strong> version.</p>
<p>The following example shows the command's structure. <code>YOUR_SESSION_KEY</code> is a placeholder for your own session key; copy the actual command from the tool's response:</p>
<pre><code class="language-bash">curl -fsSL 'https://relay.remotify.run/r/YOUR_SESSION_KEY' | bash
</code></pre>
<p>This command downloads the listener program from the relay and runs it with Bash. The receiving computer's terminal displayed:</p>
<pre><code class="language-text">remotify: connected [supervised] - preview each command before it runs. Ctrl+C to stop.
</code></pre>
<p>We left that terminal window open. I then asked Claude on my laptop to use the <code>remote_exec</code> tool to send exactly <code>pwd</code> and show the actual output.</p>
<p>I encountered two separate approval steps. On my laptop, Claude requested permission to use the MCP tool, which I granted by clicking <strong>Allow once</strong>. On the other computer, the listener then asked for permission to execute the command with <strong>Run? [y/N]</strong>.</p>
<p>We answered <code>y</code> there. The command ran, and Claude returned the path of the folder we had created on the other computer:</p>
<pre><code class="language-text">/c/Users/[username]/remotify-teszt
</code></pre>
<p>I have anonymized the username in that output. The returned path matched the one we had previously checked in the receiving computer's terminal.</p>
<p>The second request was <code>date</code>, which would have displayed the current date and time. This time, we answered <code>n</code> on the receiving computer. Claude displayed the tool's actual response:</p>
<pre><code class="language-text">[declined by operator]
</code></pre>
<p>No date output was returned for the rejected request. The two tests covered the full path of both an approved command and an operator rejection, from my Claude conversation to the other computer and back.</p>
<h2>What I learned, and the limits of the test</h2>
<p>Understanding the role of each component helped me most during setup. <strong>Running</strong> showed that the local MCP server had started; completing the remote workflow also required starting the listener on the other computer. The process came together when the local tool call produced an approval prompt on the receiving computer, followed by a result in my conversation.</p>
<p>We already had access to the receiving computer at the start of the test and opened its terminal ourselves. In this case, “without SSH” described how commands and responses were transported. A supervised session needs an operator present, and the listener can be stopped with <strong>Ctrl + C</strong>. [4]</p>
<p>The relay is also part of the trust model. According to the documentation, it stores commands, output, and history for the session, so the relay operator may have access to the data passing through it. Self-hosting the relay is also an option. Treat the session key as an access credential: approved commands run with the permissions of the user who started the listener. The test folder alone does not restrict those permissions. [4]</p>
<p>This was a functional test involving two simple commands, one Windows-to-Windows setup, and supervised mode. Both approval and rejection worked in that setup, and the experience showed which preparation steps and permission prompts a first-time user needs to understand.</p>
<p>If you have used a similar tool, I would be interested to hear when approval by the person at the receiving computer is useful in your workflow. Technical corrections to this article and experiences from your own tests are welcome too.</p>
<p><em>Test date: October 31, 2026. My laptop: Windows, Claude Desktop Free, Node.js 26.13.0, npx 11.20.0, remotify-mcp 0.6.2. Receiving computer: Windows, Bash 5.3.15(2), curl 8.23.0. The session key shown is a placeholder, and the username in the folder path has been anonymized.</em></p>
<hr />
<p><strong>Sources</strong></p>
<ol>
<li><a href="https://github.com/onlsol/relay.remotify.run/blob/main/mcp/README.md">remotify-mcp — MCP README</a></li>
<li><a href="https://modelcontextprotocol.io/docs/learn/architecture">Model Context Protocol — Architecture overview</a></li>
<li><a href="https://nodejs.org/docs/latest-v26.x/api/cli.html#node_use_system_ca1">Node.js — NODE_USE_SYSTEM_CA</a></li>
<li><a href="https://github.com/onlsol/relay.remotify.run">HTTP command relay — operation and security model</a></li>
</ol>
]]></content:encoded></item></channel></rss>