子プロセスを起動して pipe を確立
mcp_proc_open "command", "working_dir"
"command" : コマンドラインまたは実行ファイルパス + 引数
"working_dir" : 作業ディレクトリ ("" でカレント)
(プラグイン / モジュール : hspmcp.dll)
"command" のコマンドラインで子プロセスを起動して、stdin/stdout を 匿名 pipe で接続します。バックグラウンド reader thread が子プロセス stdout を読み続けて行 buffer に溜めるので、HSP 側からは mcp_proc_recv_line で 1 行ずつ取り出せます。 戻り値: ハンドル (>=0) / -1 失敗 CreateProcess の dwCreationFlags には CREATE_NO_WINDOW を指定して あるので、子プロセスのコンソールウィンドウは表示されません。 最大 64 プロセスまで並列で開けます。
| mcp_proc_send | 子プロセス stdin にデータを書き込む | (hspmcp.dll) |
| mcp_proc_recv_line | 子プロセス stdout から 1 行取得 | (hspmcp.dll) |
| mcp_proc_close | 子プロセスを終了して pipe を閉じる | (hspmcp.dll) |
| プラグイン / モジュール | hspmcp.dll |
| バージョン | 1.0 |
| 作成日 | 2026-04-14 |
| 著作者 | IronHSP / hspmcp |
| URL | https://github.com/inovia/IronHSP |
| 備考 | hspmcp.dll は HSP からは扱いづらい以下の処理を C++ で隠蔽します:
* CreateProcess + 匿名 pipe で子プロセスを spawn * 子プロセス stdin/stdout を行単位で読み書き * バックグラウンド reader thread + 内部 line buffer * 自プロセスの stdin/stdout (HSP3CL を MCP server として動かすとき) 主に Anthropic Model Context Protocol (MCP) の stdio transport 実装に使うために作りましたが、汎用の "process pipe wrapper" として 他の用途にも使えます (子プロセス起動 + パイプ通信が必要な任意の場面)。 HSP からは package/win32/common/iron_mcp_client.hsp と iron_mcp_server.hsp を include して使うのが推奨です。 |
| タイプ | 拡張命令 |
| グループ | hspmcp ― process spawn |
| 対応環境 |
|
| hs ファイル | hsphelp\hspmcp.hs |