MCP の常駐サーバーを起動・停止し、待ち受けているポートを確かめる手順
プラグインの MCP サーバー plugin:mdmark:mdmark は、mdmark serve が常駐させるサーバーへ HTTP でつなぐ。
プラグインを入れた後、MCP のツールを使う前に、端末で 1 回起動する。
並行して開いたセッションは、同じプロセスのツールを呼ぶ。
serve を起動するnpx github:shuhei1101/mdmark#v{バージョン} serve
{バージョン} は使うバージョンの {MAJOR}.{MINOR}.{PATCH}。
初回の起動は依存を取るため、待つ。
起動のコマンドは、バージョンをまたいで変わらない。
待ち受けると、接続先の URL を標準出力に 1 行出し、端末を開いたまま動き続ける。
MCP サーバーを起動しました: http://127.0.0.1:8782/mcp
127.0.0.1 の /mcp だけを待ち受ける。
ほかのパスは 404、Host や Origin が localhost でないリクエストは 403 で返す。
起動したときの出力の URL のポートが、待ち受けているポート。
既定は 8782、MDMARK_PORT を指定したときはそのポート。
lsof -iTCP:8782 -sTCP:LISTEN
Get-NetTCPConnection -LocalPort 8782 -State Listen
待ち受けているプロセスが 1 つ出る。
常駐サーバーを起動した後に開いたセッションは、plugin:mdmark:mdmark がつながる。
常駐サーバーが起動していないと、そのセッションでは MCP サーバー plugin:mdmark:mdmark だけが接続に失敗する(ECONNREFUSED)。
ほかの MCP サーバーとセッションは使える。
常駐サーバーを起動した後、同じセッションで /mcp を開き、plugin:mdmark:mdmark を選んで接続し直す(Reconnect)。
セッションを開き直さずに、ツールを呼べる。
MDMARK_PORT を両方に設定する既定のポート 8782 をほかのプロセスが使っているとき、serve は待ち受けずに、理由と直し方を標準エラーに出して終了コード 1 で終わる。
Claude Code の接続先も同じ環境変数で決まるため、~/.claude/settings.json の env と、serve を起動する環境の両方に同じ MDMARK_PORT を設定する。
{
"env": {
"MDMARK_PORT": "18782"
}
}
MDMARK_PORT=18782 npx github:shuhei1101/mdmark#v{バージョン} serve
PowerShell では、先に $env:MDMARK_PORT = "18782" を実行する。
~/.claude/settings.json を変えた後は、セッションを開き直す。
MDMARK_PORT は 1〜65535 の整数。
整数でない値を指定すると、serve は待ち受けずに終了コード 1 で終わる。
serve が既に起動しているときは、起動し直さずにそのまま使える。
serve を動かしている端末で Ctrl+C を押す。
待ち受けを閉じて、終了コード 0 で終わる。
止めている間、Claude Code では MCP サーバー plugin:mdmark:mdmark が接続に失敗する。
起動した常駐サーバーに、MCP のツールの呼び出しが届く。
起動する前に開いたセッションは、/mcp で接続し直した後から。
起動の出力に http://127.0.0.1:{ポート}/mcp が出て、そのポートで待ち受けるプロセスがある。
セッションで /mcp を開く。
plugin:mdmark:mdmark がつながっていて、ツールが並ぶ(MCP)。
Ctrl+C で常駐サーバーを止める。
プラグインは入ったまま残る。
外すには プラグインを入れる の「元に戻す」。