<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://mochiu.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki</id>
	<title>MochiuWiki : SUSE, EC, PCB - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://mochiu.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki"/>
	<link rel="alternate" type="text/html" href="https://mochiu.net/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Wiki"/>
	<updated>2026-04-15T20:45:03Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Bun&amp;diff=14632</id>
		<title>インストール - Bun</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Bun&amp;diff=14632"/>
		<updated>2026-04-11T15:18:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* 任意のディレクトリへのインストール */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Bunは、Oven Inc.のJarred Sumnerによって開発された、高速なJavaScript / TypeScriptランタイムである。&amp;lt;br&amp;gt;&lt;br /&gt;
Zig言語で記述されており、JavaScriptCore (Safariのエンジン) を採用することにより、V8ベースのNode.jsより大幅に速い起動時間と低いメモリ使用量を実現している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bunの最大の特徴は、ランタイム・パッケージマネージャー・バンドラー・テストランナーの4つの機能を単一バイナリに統合している点である。&amp;lt;br&amp;gt;&lt;br /&gt;
従来のJavaScriptエコシステムで必要だったNode.js + npm / Yarn + webpack / esbuild + Jestという複数ツールの組み合わせを、Bun単体で置き換えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Node.jsとの互換性を設計目標としており、&amp;lt;u&amp;gt;fs&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;path&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;http&amp;lt;/u&amp;gt; 等の組み込みモジュールやnpmレジストリからのパッケージをそのまま利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
TypeScriptおよびJSX / TSXはネイティブにサポートされており、追加のトランスパイラ設定なしで直接実行可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの要件、チームの慣習、パフォーマンスの要求に応じて、npm・Yarn・pnpmとの使い分けを検討することが重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bun ==&lt;br /&gt;
Bunは公式インストールスクリプトによりひとつのコマンドでセットアップできる。&amp;lt;br&amp;gt;&lt;br /&gt;
Linux上ではGLIBC 2.17以上の環境 (glibcビルド) と musl libc環境 (Alpine等) 向けに別のビルドが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bunのインストール ====&lt;br /&gt;
Bunには以下のインストール方法が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 公式インストールスクリプトを使用したインストール (推奨)&lt;br /&gt;
*: 最も簡単な方法であり、システムを自動検出して適切なバイナリをダウンロードする。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 任意のディレクトリへのインストール&lt;br /&gt;
*: 環境変数 &amp;lt;code&amp;gt;BUN_INSTALL&amp;lt;/code&amp;gt; を指定することで、インストール先を自由に変更できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境や要件に応じて、適切なインストール方法を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 前提条件の確認 =====&lt;br /&gt;
インストールの前に、Linuxカーネルのバージョンとゲプロセッサーの機能拡張を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カーネルバージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 uname -r&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カーネルバージョン5.6以上を推奨する。(最低要件は5.1)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;5.1未満の環境ではBunは動作しない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CPUのAVX2サポートを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -o &#039;avx2&#039; /proc/cpuinfo | head -1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
確認結果の解釈は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;avx2&amp;lt;/u&amp;gt; と表示される場合&lt;br /&gt;
*: 標準ビルドを使用できる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 何も表示されない場合&lt;br /&gt;
*: SSE4.2のみを必要とするベースラインビルドを使用する。&lt;br /&gt;
===== 依存パッケージのインストール =====&lt;br /&gt;
インストールスクリプトの実行には &amp;lt;u&amp;gt;unzip&amp;lt;/u&amp;gt; と &amp;lt;u&amp;gt;curl&amp;lt;/u&amp;gt; が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install unzip curl&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install unzip curl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 公式インストールスクリプトを使用したインストール =====&lt;br /&gt;
公式のcurlスクリプトを使用する方法が推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
このスクリプトはシステムを自動検出して適切なバイナリをダウンロードし、デフォルトでは &amp;lt;u&amp;gt;~/.bun/&amp;lt;/u&amp;gt; ディレクトリ内に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://bun.com/install | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後のディレクトリ構成は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
 ~/.bun/&lt;br /&gt;
 ├── bin/&lt;br /&gt;
 │   └── bun          # 実行バイナリ&lt;br /&gt;
 └── install/&lt;br /&gt;
     └── cache/       # パッケージキャッシュ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CPUがAVX2に対応していない場合、&amp;lt;u&amp;gt;&amp;quot;Illegal Instruction&amp;quot;&amp;lt;/u&amp;gt; エラーが発生することがある。&amp;lt;br&amp;gt;&lt;br /&gt;
その場合は以下に示すコマンドを実行して、ベースラインビルドをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://bun.com/install | bash -s -- --baseline&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 任意のディレクトリへのインストール =====&lt;br /&gt;
インストール先ディレクトリを変更したい場合は、環境変数 &amp;lt;code&amp;gt;BUN_INSTALL&amp;lt;/code&amp;gt; を事前に設定することで実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;この方法は公式インストールスクリプトが正式にサポートしている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;BUN_INSTALL&amp;lt;/code&amp;gt; に指定したパスの下に &amp;lt;u&amp;gt;bin/&amp;lt;/u&amp;gt; サブディレクトリが作成され、bunバイナリが配置される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
任意のディレクトリを指定してインストールスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # 任意のディレクトリを指定して実行&lt;br /&gt;
 export BUN_INSTALL=&amp;quot;/opt/bun&amp;quot;&lt;br /&gt;
 curl -fsSL https://bun.com/install | bash&lt;br /&gt;
 &lt;br /&gt;
 # または1行で実行する場合&lt;br /&gt;
 BUN_INSTALL=&amp;quot;/opt/bun&amp;quot; curl -fsSL https://bun.com/install | bash&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に代表的なインストール先の例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ユーザ専用ディレクトリへのインストール例&lt;br /&gt;
 BUN_INSTALL=&amp;quot;$HOME/.local/bun&amp;quot; curl -fsSL https://bun.com/install | bash&lt;br /&gt;
 &lt;br /&gt;
 # システム共有ディレクトリへのインストール例 (root権限が必要)&lt;br /&gt;
 sudo BUN_INSTALL=&amp;quot;/usr/local/bun&amp;quot; curl -fsSL https://bun.com/install | bash&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;BUN_INSTALL&amp;lt;/code&amp;gt; はインストール時のみ参照される環境変数であり、インストール完了後はPATHの設定で同じディレクトリを指定することが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== PATHの設定 =====&lt;br /&gt;
インストールスクリプトは自動でPATHを追記するが、反映されない場合は手動で設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.profileファイル等&lt;br /&gt;
 &lt;br /&gt;
 # デフォルトディレクトリの場合&lt;br /&gt;
 export BUN_INSTALL=&amp;quot;$HOME/.bun&amp;quot;&lt;br /&gt;
 export PATH=&amp;quot;$BUN_INSTALL/bin:$PATH&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # 任意のディレクトリ (例：/opt/bun) を指定した場合&lt;br /&gt;
 export BUN_INSTALL=&amp;quot;/opt/bun&amp;quot;&lt;br /&gt;
 export PATH=&amp;quot;$BUN_INSTALL/bin:$PATH&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RHELでの注意 =====&lt;br /&gt;
RHELでは、シェル設定の管理に &amp;lt;u&amp;gt;~/.bashrc.d/&amp;lt;/u&amp;gt; ディレクトリが活用されている。&amp;lt;br&amp;gt;&lt;br /&gt;
インストールスクリプトが &amp;lt;u&amp;gt;~/.bashrc&amp;lt;/u&amp;gt; を直接書き換えた場合、PATH設定が重複することがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、設定を分離して管理することを推奨する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # .bashrc.d ディレクトリを作成 (存在しない場合)&lt;br /&gt;
 mkdir -p ~/.bashrc.d&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.bashrc.d/bun.sh ファイルを作成する&lt;br /&gt;
 &lt;br /&gt;
 export BUN_INSTALL=&amp;quot;$HOME/.bun&amp;quot;&lt;br /&gt;
 export PATH=&amp;quot;$BUN_INSTALL/bin:$PATH&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールが正常に完了したことを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # バージョン番号を表示&lt;br /&gt;
 bun --version&lt;br /&gt;
 &lt;br /&gt;
 # 詳細なビルドリビジョンを表示&lt;br /&gt;
 bun --revision&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bunの使用方法 ====&lt;br /&gt;
Bunのコマンド構文はnpmやYarnと高い互換性を持ち、既存の &amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; ファイルをそのまま利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
新しいプロジェクトを初期化する時は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 対話形式でpackage.jsonを作成&lt;br /&gt;
 bun init&lt;br /&gt;
 &lt;br /&gt;
 # デフォルト設定で初期化&lt;br /&gt;
 bun init -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; ファイルに記述された全ての依存関係をインストールする場合は、以下に示すコマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 全ての依存関係をインストール&lt;br /&gt;
 bun install&lt;br /&gt;
 ## または&lt;br /&gt;
 bun i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
新しいパッケージを追加する場合は、以下に示すコマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 本番環境で必要な依存関係として追加&lt;br /&gt;
 bun add &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 開発環境でのみ必要な依存関係として追加&lt;br /&gt;
 bun add --dev &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
 ## または&lt;br /&gt;
 bun add -D &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 特定のバージョンを指定して追加&lt;br /&gt;
 bun add &amp;lt;パッケージ名&amp;gt;@&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # グローバルにインストール&lt;br /&gt;
 bun add -g &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールされているパッケージを更新する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 全てのパッケージを更新&lt;br /&gt;
 bun update&lt;br /&gt;
 &lt;br /&gt;
 # 特定のパッケージを更新&lt;br /&gt;
 bun update &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パッケージを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun remove &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; ファイルに定義されているスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run &amp;lt;スクリプト名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 例: テストスクリプトを実行&lt;br /&gt;
 bun test&lt;br /&gt;
 &lt;br /&gt;
 # 例: ビルドスクリプトを実行&lt;br /&gt;
 bun run build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== bun.lockbファイル ====&lt;br /&gt;
Bunは、&amp;lt;u&amp;gt;bun.lockb&amp;lt;/u&amp;gt; ファイルというバイナリ形式のロックファイルを使用して依存関係のバージョンを固定する。&amp;lt;br&amp;gt;&lt;br /&gt;
このファイルはnpmの &amp;lt;u&amp;gt;package-lock.json&amp;lt;/u&amp;gt; や Yarnの &amp;lt;u&amp;gt;yarn.lock&amp;lt;/u&amp;gt; に相当し、チーム全体で一貫した依存関係を保証するために重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;bun.lockb&amp;lt;/u&amp;gt; ファイルの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* インストールされた全てのパッケージの正確なバージョンを記録する。&lt;br /&gt;
* バイナリ形式のため、テキスト形式のロックファイルよりも解析が高速である。&lt;br /&gt;
* 異なる環境で同一の依存関係ツリーを再現できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;bun.lockbファイルは自動生成されるため手動編集は不要であり、バージョン管理システムにコミットすることが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テキスト形式で内容を確認する場合は以下のコマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun bun.lockb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bunのキャッシュ管理 ====&lt;br /&gt;
Bunは、ダウンロードしたパッケージをグローバルキャッシュに保存することにより、インストール速度を向上させている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトのキャッシュパスは &amp;lt;u&amp;gt;~/.bun/install/cache&amp;lt;/u&amp;gt; であり、環境変数 &amp;lt;code&amp;gt;BUN_INSTALL_CACHE_DIR&amp;lt;/code&amp;gt; で変更可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
キャッシュに関連する操作を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 # キャッシュのパスを確認&lt;br /&gt;
 echo $BUN_INSTALL_CACHE_DIR&lt;br /&gt;
 &lt;br /&gt;
 # キャッシュをクリア&lt;br /&gt;
 rm -rf ~/.bun/install/cache&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;bunfig.toml&amp;lt;/u&amp;gt; ファイルにキャッシュディレクトリを設定することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
 # bunfig.toml&lt;br /&gt;
 &lt;br /&gt;
 [install.cache]&lt;br /&gt;
 # キャッシュディレクトリのパス&lt;br /&gt;
 dir = &amp;quot;~/.bun/install/cache&amp;quot;&lt;br /&gt;
 # trueの場合、グローバルキャッシュを使用しない&lt;br /&gt;
 disable = false&lt;br /&gt;
 # trueの場合、常にレジストリから最新バージョンを解決する&lt;br /&gt;
 disableManifest = false&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bunのアップデート ====&lt;br /&gt;
Bunは自身のコマンドでアップデートできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 安定版の最新リリースへアップデート&lt;br /&gt;
 bun upgrade&lt;br /&gt;
 &lt;br /&gt;
 # canary (開発最新) ビルドへアップデート&lt;br /&gt;
 bun upgrade --canary&lt;br /&gt;
 &lt;br /&gt;
 # canaryから安定版に戻す&lt;br /&gt;
 bun upgrade --stable&lt;br /&gt;
 &lt;br /&gt;
 # 特定のバージョンを指定してインストール&lt;br /&gt;
 curl -fsSL https://bun.com/install | bash -s &amp;quot;bun-v1.x.y&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bunのアンインストール ====&lt;br /&gt;
Bunはシステムへの影響が最小限であり、インストールディレクトリを削除するだけで完全にアンインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # デフォルトインストールの場合&lt;br /&gt;
 rm -rf ~/.bun&lt;br /&gt;
 &lt;br /&gt;
 # 任意ディレクトリへインストールした場合 (例：/opt/bun)&lt;br /&gt;
 rm -rf /opt/bun&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
合わせて、&amp;lt;u&amp;gt;~/.profile&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;~/.bashrc.d/bun.sh&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;~/.zprofile&amp;lt;/u&amp;gt; 等に追記したPATH設定の行を手動で削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== パッケージマネージャーの比較 ==&lt;br /&gt;
==== npm ====&lt;br /&gt;
npmは、Node.jsに標準で付属しており、追加のインストールが不要であることがメリットである。&amp;lt;br&amp;gt;&lt;br /&gt;
また、最も広く使用されているため、ドキュメントとコミュニティサポートが充実している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
npm 7以降では、パフォーマンスが大幅に改善されており、ワークスペース機能もサポートされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Yarn ====&lt;br /&gt;
Yarnは、並列インストールによる高速化と、&amp;lt;u&amp;gt;yarn.lock&amp;lt;/u&amp;gt; ファイルによる確実な依存関係の固定が特徴である。&amp;lt;br&amp;gt;&lt;br /&gt;
Yarn Classicは、安定性と互換性を重視する場合に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Yarn Berryは、Plug&#039;n&#039;Play機能により、高速化とディスク効率の向上が図られている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ワークスペース機能がネイティブにサポートされており、モノレポ構成に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== pnpm ====&lt;br /&gt;
pnpmは、コンテンツアドレサブルストレージとハードリンクを使用することで、ディスク使用量を大幅に削減できる点が最大の特徴である。&amp;lt;br&amp;gt;&lt;br /&gt;
また、厳密な依存関係の管理により、ゴーストディペンデンシーの問題を防ぐことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ワークスペース機能も優れており、モノレポ構成の管理が効率的に行える。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bun ====&lt;br /&gt;
Bunは、パッケージマネージャーとしても最速クラスの性能を発揮し、npmの最大30倍速いインストール速度が計測されている。&amp;lt;br&amp;gt;&lt;br /&gt;
ランタイム・バンドラー・テストランナーを一体化しているため、ツールチェーンを大幅に簡素化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Node.jsとの高い互換性を持つが、一部のネイティブアドオンパッケージでは互換性の問題が生じる場合があるため、事前の検証を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一般的に、Bunが最も高速なインストール速度を提供して、次いでpnpm、Yarn、npmの順となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 移行時の注意 ====&lt;br /&gt;
既存プロジェクトのパッケージマネージャーを変更する場合は、以下に示す事柄に注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ロックファイルの違い&lt;br /&gt;
*: npmは &amp;lt;u&amp;gt;package-lock.json&amp;lt;/u&amp;gt;、Yarnは &amp;lt;u&amp;gt;yarn.lock&amp;lt;/u&amp;gt;、pnpmは &amp;lt;u&amp;gt;pnpm-lock.yaml&amp;lt;/u&amp;gt;、Bunは &amp;lt;u&amp;gt;bun.lockb&amp;lt;/u&amp;gt; を使用する。&lt;br /&gt;
*: パッケージマネージャーを変更する場合は、古いロックファイルを削除して、新しいロックファイルを生成する必要がある。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 統一されたツールを使用すること&lt;br /&gt;
*: 異なるパッケージマネージャーを混在させると、ロックファイルの不整合が発生する可能性がある。&lt;br /&gt;
*: &amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; の &amp;lt;code&amp;gt;packageManager&amp;lt;/code&amp;gt; フィールドに使用するツールを明記することを推奨する。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* CI/CD環境の設定を更新する&lt;br /&gt;
*: 各パッケージマネージャーに応じて、インストールコマンドとキャッシュの設定を適切に構成する必要がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Bun,JavaScript,TypeScript,Runtime,Package Manager,RHEL,SUSE,Linux,Node.js,npm,Yarn,pnpm&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Web]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=OpenCode%E3%81%AE%E8%A8%AD%E5%AE%9A_-_%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%83%81%E3%83%BC%E3%83%A0&amp;diff=14631</id>
		<title>OpenCodeの設定 - エージェントチーム</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=OpenCode%E3%81%AE%E8%A8%AD%E5%AE%9A_-_%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%83%81%E3%83%BC%E3%83%A0&amp;diff=14631"/>
		<updated>2026-04-10T11:09:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* oh-my-opencodeのインストール */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OpenCodeは、Go言語で開発されたオープンソースのターミナルベースAIコーディングアシスタントツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
Bubble Teaフレームワークによるターミナルユーザインターフェース (TUI) を実装しており、75以上のAIモデルをサポートする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeには、プライマリエージェントとサブエージェントによる強力なエージェント機能が搭載されている。&amp;lt;br&amp;gt;&lt;br /&gt;
プライマリエージェントはタスクの種類に応じて[Tab]キーで切り替え、サブエージェントは &amp;lt;code&amp;gt;@メンション&amp;lt;/code&amp;gt; で呼び出すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
oh-my-opencodeは、OpenCodeの機能を大幅に拡張するプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;the best agent harness&amp;lt;/u&amp;gt; として設計されており、11個の専門化されたエージェント、44個のライフサイクルフック、26以上の組み込みツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、oh-my-opencodeが提供するエージェントチームの主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 組み込みワークフローエージェント一覧&lt;br /&gt;
|-&lt;br /&gt;
! エージェント名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || メイン調整役・オーケストレーター&amp;lt;br&amp;gt;タスク完了まで実行継続し、中断後の自動再開をサポート&lt;br /&gt;
|-&lt;br /&gt;
| Hephaestus || ゴール指定での自律的な深掘り作業&amp;lt;br&amp;gt;コードベース全体をエンドツーエンドで完了&lt;br /&gt;
|-&lt;br /&gt;
| Prometheus || インタビューモードで十分なコンテキストを収集した上で専門エージェントに委譲&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント管理とコード例・パターン発見に特化&lt;br /&gt;
|-&lt;br /&gt;
| Explore || 大規模コードベースのナビゲーションと依存関係分析に特化&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || コンテキスト認識型の質問応答とトラブルシューティングに特化&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenCodeのエージェント機能 ==&lt;br /&gt;
OpenCodeは、プライマリエージェントとサブエージェントの2種類のエージェントを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プライマリエージェント ====&lt;br /&gt;
プライマリエージェントはOpenCodeの主要な動作モードを制御する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Tab]キーで切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ エージェントモード一覧&lt;br /&gt;
|-&lt;br /&gt;
! エージェント名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | build || デフォルトのエージェント&amp;lt;br&amp;gt;開発作業向けのフルツールアクセスが可能&lt;br /&gt;
|-&lt;br /&gt;
| コード編集、ファイル操作、コマンド実行など全ての操作を実行できる。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | plan || 読み取り専用エージェント&amp;lt;br&amp;gt;コード修正を行わずに分析・コード探索を行う。&lt;br /&gt;
|-&lt;br /&gt;
| コードベースの構造理解や実装方針の検討に使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サブエージェント ====&lt;br /&gt;
サブエージェントは、&amp;lt;code&amp;gt;@メンション&amp;lt;/code&amp;gt; で呼び出すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ サブエージェント一覧&lt;br /&gt;
|-&lt;br /&gt;
! エージェント名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| general || 複雑な調査やマルチステップタスクを担当する汎用サブエージェント&lt;br /&gt;
|-&lt;br /&gt;
| explore || コードベース探索用の読み取り専用サブエージェント&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムエージェントの定義 ====&lt;br /&gt;
カスタムエージェントは、&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;~/.config/opencode/agents/&amp;lt;/u&amp;gt; 内のMarkdownファイルで定義できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルによるカスタムエージェント定義の例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;custom-agent&amp;quot;: {&lt;br /&gt;
          &amp;quot;mode&amp;quot;: &amp;quot;subagent&amp;quot;,&lt;br /&gt;
          &amp;quot;model&amp;quot;: &amp;quot;anthropic/claude-opus-4&amp;quot;,&lt;br /&gt;
          &amp;quot;tools&amp;quot;: {&lt;br /&gt;
             &amp;quot;edit&amp;quot;: true,&lt;br /&gt;
             &amp;quot;bash&amp;quot;: false,&lt;br /&gt;
             &amp;quot;view&amp;quot;: true&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;permission&amp;quot;: {&lt;br /&gt;
             &amp;quot;edit&amp;quot;: &amp;quot;ask&amp;quot;,&lt;br /&gt;
             &amp;quot;bash&amp;quot;: &amp;quot;deny&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;temperature&amp;quot;: 0.7,&lt;br /&gt;
          &amp;quot;prompt&amp;quot;: &amp;quot;You are a specialized code reviewer focused on security.&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムエージェントの管理には以下のコマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode agent create &amp;lt;エージェント名&amp;gt;&lt;br /&gt;
 opencode agent list&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== oh-my-opencodeのインストール ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
oh-my-opencodeのインストールに必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OpenCode 1.0.133以降&lt;br /&gt;
*: 以前のバージョンでは動作しない場合がある。&lt;br /&gt;
* Node.js最新バージョン&lt;br /&gt;
*: &amp;lt;code&amp;gt;bunx&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが利用可能であること&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プラットフォームを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS (ARM64, x64)&lt;br /&gt;
* Linux (x64, ARM64, Alpine/musl)&lt;br /&gt;
* Windows (x64)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール手順 ====&lt;br /&gt;
oh-my-opencodeのインストール手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenCodeをインストールする。&lt;br /&gt;
#: OpenCodeのインストールは、[[インストール - OpenCode]]のページを参照すること。&lt;br /&gt;
# oh-my-opencodeをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;bunx oh-my-opencode install&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenCodeを起動する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;opencode&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;oh-my-opencodeはシェルエイリアスやPATHではなく、OpenCodeのプラグインシステムとして動作している。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
oh-my-opencodeはOpenCodeのプラグインであり、単独のCLIではない。&amp;lt;br&amp;gt;&lt;br /&gt;
インストール時はplugin配列に追加され、設定ファイルが作成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストールオプション ====&lt;br /&gt;
&amp;lt;code&amp;gt;bunx oh-my-opencode install&amp;lt;/code&amp;gt; には、各種AIプロバイダーの設定を同時に行うオプションが用意されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode install --no-tui --claude=&amp;lt;yes|no|max20&amp;gt; --gemini=&amp;lt;yes|no&amp;gt; --copilot=&amp;lt;yes|no&amp;gt; --openai=&amp;lt;yes|no&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、利用可能なオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ インストールスクリプトのオプション一覧&lt;br /&gt;
|-&lt;br /&gt;
! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--claude=yes|no|max20&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || Claudeの認証設定を行う。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;max20&amp;lt;/code&amp;gt; は、Claude Max (月20ドルプラン) を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--openai=yes|no&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || OpenAIの認証設定を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--gemini=yes|no&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || Google Geminiの認証設定を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--copilot=yes|no&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || GitHub Copilotの認証設定を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--opencode-zen=yes|no&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || OpenCode Zenの設定を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--zai-coding-plan=yes|no&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || Z.AIコーディングプランの設定を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--no-tui&amp;lt;/code&amp;gt; || TUIを使用せず、対話なしでインストールを実行する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
代替インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g oh-my-opencode&lt;br /&gt;
 bun install -g oh-my-opencode&lt;br /&gt;
 yarn global add oh-my-opencode&lt;br /&gt;
 pnpm add -g oh-my-opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== oh-my-opencodeのアンインストール ==&lt;br /&gt;
==== OpenCodeの設定ファイルからプラグインを削除 ====&lt;br /&gt;
OpenCodeの設定ファイルを編集して、プラグインエントリを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 設定ファイルの場所&lt;br /&gt;
** MacOS / Linux&lt;br /&gt;
**: ~/.config/opencode/opencode.json &lt;br /&gt;
**: または&lt;br /&gt;
**: opencode.jsonc&lt;br /&gt;
** Windows&lt;br /&gt;
**: %USERPROFILE%\.config\opencode\opencode.json&lt;br /&gt;
**: または&lt;br /&gt;
**: opencode.jsonc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 削除対象ファイル一覧&lt;br /&gt;
! 場所 !! ファイル !! 用途&lt;br /&gt;
|-&lt;br /&gt;
|OpenCode設定 || ~/.config/opencode/opencode.json&amp;lt;br&amp;gt;または&amp;lt;br&amp;gt;/&amp;lt;プロジェクトルート&amp;gt;/opencode.jsonc || plugin配列からエントリ削除&lt;br /&gt;
|-&lt;br /&gt;
|ユーザ設定 || ~/.config/opencode/oh-my-openagent.json[c] || ユーザプラグイン設定 (新名称)&lt;br /&gt;
|-&lt;br /&gt;
|ユーザ設定 || ~/.config/opencode/oh-my-opencode.json[c] || ユーザプラグイン設定 (旧名称)&lt;br /&gt;
|-&lt;br /&gt;
|プロジェクト設定 || .opencode/oh-my-openagent.json[c] || プロジェクトプラグイン設定 (新名称)&lt;br /&gt;
|-&lt;br /&gt;
|プロジェクト設定 || .opencode/oh-my-opencode.json[c] || プロジェクトプラグイン設定 (旧名称)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイル内のplugin配列から &amp;lt;u&amp;gt;oh-my-openagent&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;oh-my-opencode&amp;lt;/u&amp;gt; のエントリを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイルを削除 ====&lt;br /&gt;
プラグイン固有の設定ファイルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザ全体の設定ファイル&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プラグイン設定ファイルを削除&lt;br /&gt;
 rm -f ~/.config/opencode/oh-my-openagent.jsonc ~/.config/opencode/oh-my-openagent.json \&lt;br /&gt;
       ~/.config/opencode/oh-my-opencode.jsonc ~/.config/opencode/oh-my-opencode.json&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト固有の設定ファイル (プロジェクト内に存在する場合)&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロジェクト設定ファイルを削除（各プロジェクトディレクトリで実行）&lt;br /&gt;
 rm -f .opencode/oh-my-openagent.jsonc .opencode/oh-my-openagent.json \&lt;br /&gt;
       .opencode/oh-my-opencode.jsonc .opencode/oh-my-opencode.json&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 削除の確認 ====&lt;br /&gt;
OpenCodeのバージョンコマンドを実行して、プラグインが表示されないことを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== oh-my-opencodeの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
oh-my-opencodeの設定ファイルの場所を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
優先度が高い設定が低い設定を上書きする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト固有設定 (最優先)&lt;br /&gt;
*: &amp;lt;u&amp;gt;.opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* ユーザ全体設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エージェント設定 ====&lt;br /&gt;
各エージェントの有効 / 無効を設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;planner-sisyphus&amp;quot;: {&amp;quot;enabled&amp;quot;: true, &amp;quot;replace_plan&amp;quot;: true},&lt;br /&gt;
       &amp;quot;hephaestus&amp;quot;: {&amp;quot;enabled&amp;quot;: false},&lt;br /&gt;
       &amp;quot;prometheus&amp;quot;: {&amp;quot;enabled&amp;quot;: false},&lt;br /&gt;
       &amp;quot;librarian&amp;quot;: {&amp;quot;enabled&amp;quot;: false},&lt;br /&gt;
       &amp;quot;explore&amp;quot;: {&amp;quot;enabled&amp;quot;: false},&lt;br /&gt;
       &amp;quot;oracle&amp;quot;: {&amp;quot;enabled&amp;quot;: false}&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ カスタムエージェントの設定項目&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt; でエージェントを有効化、&amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt; で無効化する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;replace_plan&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt; に設定すると、デフォルトのplanエージェントをこのエージェントで置き換える。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== フック設定 ====&lt;br /&gt;
不要なライフサイクルフックを無効化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;disabled_hooks&amp;quot;: [&amp;quot;comment-checker&amp;quot;, &amp;quot;agent-usage-reminder&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;disabled_hooks&amp;lt;/code&amp;gt; に無効化するフック名を配列で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP設定 ====&lt;br /&gt;
不要なMCPサーバを無効化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;disabled_mcps&amp;quot;: [&amp;quot;context7&amp;quot;, &amp;quot;grep_app&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;disabled_mcps&amp;lt;/code&amp;gt; に無効化するMCP名を配列で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== エージェントチーム ==&lt;br /&gt;
oh-my-opencodeが提供するエージェントチームの各メンバーについて説明する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Sisyphus ====&lt;br /&gt;
Sisyphusは、oh-my-opencodeのデフォルトエージェントであり、メインの調整役・オーケストレーターとして機能する。&amp;lt;br&amp;gt;&lt;br /&gt;
ギリシャ神話のシジフォスから命名されており、タスクが完了するまで粘り強く実行し続けることを表している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Sisyphusの特徴&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 役割 || メイン調整役・オーケストレーター&amp;lt;br&amp;gt;計画、委譲、並列実行管理を担当する。&lt;br /&gt;
|-&lt;br /&gt;
| todo-driven workflow || タスクリストを管理しながら順序立てて実行する。&lt;br /&gt;
|-&lt;br /&gt;
| extended thinking || 複雑な問題に対して深く考察してから行動する。&lt;br /&gt;
|-&lt;br /&gt;
| 自動再開 || 中断後もタスクを自動的に再開できる。&lt;br /&gt;
|-&lt;br /&gt;
| 推奨モデル || Claude Pro/Maxサブスクリプションを推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Sisyphusは &amp;lt;code&amp;gt;replace_plan: true&amp;lt;/code&amp;gt; を設定することにより、デフォルトのplanエージェントを置き換えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Hephaestus ====&lt;br /&gt;
Hephaestusは、ゴールを指定するだけで自律的に深く作業を進めるエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ギリシャ神話の鍛冶の神ヘパイストスから命名されており、ツールや技術の精通を象徴する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Hephaestus の主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 役割 || 自律的な深い作業者&amp;lt;br&amp;gt;ゴール指定での独立実行が得意。&lt;br /&gt;
|-&lt;br /&gt;
| コードベースパターン探索 || プロジェクト全体のパターンを自ら探索・理解する。&lt;br /&gt;
|-&lt;br /&gt;
| エンドツーエンド完了 || タスク開始から完了まで自律的に実行する。&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphusとの違い || 他のエージェントへの委譲ではなく、自ら深掘りして作業を完遂する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Prometheus ====&lt;br /&gt;
Prometheusは、十分なコンテキストを収集した上で専門エージェントに委譲する戦略的プランナーエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ギリシャ神話のプロメテウスから命名されており、先見性と戦略的思考を象徴する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Prometheusの特徴&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 役割 || 戦略的プランナー&amp;lt;br&amp;gt;委譲ベースの実行を担当する。&lt;br /&gt;
|-&lt;br /&gt;
| インタビューモード || 作業開始前に十分なコンテキストを収集するための質問を行う。&lt;br /&gt;
|-&lt;br /&gt;
| 要求分類 || ユーザの要求をリファクタリングと新機能開発に分類し、適切な専門エージェントに委譲する。&lt;br /&gt;
|-&lt;br /&gt;
| 直接実行との違い || 自ら直接実行するのではなく、適切な専門家に委ねる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Librarian ====&lt;br /&gt;
Librarianは、ドキュメント管理とコード例・パターン発見に特化したエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Librarianの特徴&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 役割 || ドキュメント・コード探索専門&amp;lt;br&amp;gt;ドキュメント管理、コード例・パターンの発見を担当する。&lt;br /&gt;
|-&lt;br /&gt;
| コードベース構造理解 || プロジェクトのファイル構成や依存関係を把握する。&lt;br /&gt;
|-&lt;br /&gt;
| Context7 MCP との連携 || Context7 MCPと組み合わせて使用することで効果的に機能する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Explore ====&lt;br /&gt;
Exploreは、大規模コードベースのナビゲーションに特化したエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Exploreの特徴&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 役割 || コード探索専門&amp;lt;br&amp;gt;大規模コードベースのナビゲーションを担当する。&lt;br /&gt;
|-&lt;br /&gt;
| 素早いコード移動 || 関連するコード間を効率的に移動できる。&lt;br /&gt;
|-&lt;br /&gt;
| パターン検出 || コードベース内のパターンを素早く見つける。&lt;br /&gt;
|-&lt;br /&gt;
| 依存関係分析 || モジュール間の依存関係を分析する。&lt;br /&gt;
|-&lt;br /&gt;
| 用途 || 未知のコードベースへの入門や、既存コードの把握に適している。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Oracle ====&lt;br /&gt;
Oracleは、コンテキストを理解した上で質問に答えることに特化したエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Oracleの特徴&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 役割 || Q&amp;amp;A 特化型。コンテキスト認識型の質問応答を担当する。&lt;br /&gt;
|-&lt;br /&gt;
| コード動作原理説明 || なぜそのコードがそのように動作するかを説明する。&lt;br /&gt;
|-&lt;br /&gt;
| ベストプラクティス提示 || 特定の問題に対する推奨されるアプローチを示す。&lt;br /&gt;
|-&lt;br /&gt;
| トラブルシューティング || 問題の原因と解決策を分析する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エージェントの比較 ====&lt;br /&gt;
下表に、各エージェントの特性を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ oh-my-opencode エージェント比較&lt;br /&gt;
! エージェント !! 主な役割 !! 特性 !! 推奨用途&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || オーケストレーター || todo-driven、委譲、並列実行 || 複雑なマルチステップタスク全般&lt;br /&gt;
|-&lt;br /&gt;
| Hephaestus || 自律実行者 || 深掘り、エンドツーエンド完了 || 単一ゴールの自律的な実装&lt;br /&gt;
|-&lt;br /&gt;
| Prometheus || 戦略プランナー || インタビュー、分類、委譲 || 要件が不明確な大きなタスク&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント探索 || コードパターン発見 || ドキュメント作成・コード調査&lt;br /&gt;
|-&lt;br /&gt;
| Explore || コード探索 || ナビゲーション、依存関係分析 || 未知コードベースへの入門&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || Q&amp;amp;A || コンテキスト認識型回答 || 技術的な質問・トラブルシューティング&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== エージェントの使用方法 ==&lt;br /&gt;
==== 基本的な使い方 ====&lt;br /&gt;
各エージェントの呼び出し方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プライマリエージェントの切り替え&lt;br /&gt;
*: [Tab]キーを押下することにより、&amp;lt;u&amp;gt;build&amp;lt;/u&amp;gt; と &amp;lt;u&amp;gt;plan&amp;lt;/u&amp;gt; エージェントを切り替える。&lt;br /&gt;
* サブエージェントの呼び出し&lt;br /&gt;
*: チャット入力欄で &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; に続けてエージェント名を入力する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
サブエージェントの呼び出し例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 @Librarian このプロジェクトの認証モジュールの構造を教えて&lt;br /&gt;
 &lt;br /&gt;
 @Oracle このエラーの原因と解決策を教えて&lt;br /&gt;
 &lt;br /&gt;
 @Explore このファイルに依存しているモジュールを全て教えて&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ultraworkコマンド ====&lt;br /&gt;
oh-my-opencodeが提供する &amp;lt;code&amp;gt;ultrawork&amp;lt;/code&amp;gt; コマンド (短縮形: &amp;lt;code&amp;gt;ulw&amp;lt;/code&amp;gt;) を使用することにより、エージェントがプロジェクトの探索から実装・検証・完了まで自動的に実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ultraworkコマンドの使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode &amp;quot;ultrawork: Refactor user authentication module, add OAuth2 support&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ultraworkコマンドの実行フローを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# プロジェクト探索&lt;br /&gt;
#: コードベース全体の構造を把握する。&lt;br /&gt;
# パターン研究&lt;br /&gt;
#: 既存のコードパターンやアーキテクチャを理解する。&lt;br /&gt;
# 実装&lt;br /&gt;
#: タスクを実行する。&lt;br /&gt;
# 検証&lt;br /&gt;
#: 実装結果を確認・テストする。&lt;br /&gt;
# 完了&lt;br /&gt;
#: タスクを完了して結果を報告する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;auto_resume&amp;lt;/code&amp;gt; 機能を有効化することにより、中断後も自動的にタスクを再開できる。&amp;lt;br&amp;gt;&lt;br /&gt;
設定方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;experimental&amp;quot;: {&lt;br /&gt;
       &amp;quot;auto_resume&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 認証設定 ==&lt;br /&gt;
==== Claude (Anthropic) ====&lt;br /&gt;
Anthropic Claudeの認証設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すコマンドを実行する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;opencode auth login&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 表示された一覧から[Anthropic]を選択する。&lt;br /&gt;
# &amp;lt;code&amp;gt;Claude Pro/Max&amp;lt;/code&amp;gt; を選択する。&lt;br /&gt;
# Webブラウザが開くので、OAuthで認証する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Sisyphusエージェントを最大限活用するには、Claude Maxサブスクリプションを推奨する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Google Gemini ====&lt;br /&gt;
Google Geminiの認証には、&amp;lt;u&amp;gt;opencode-antigravity-auth&amp;lt;/u&amp;gt; プラグインを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt; にプラグインを追加する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;plugin&amp;quot;: [&amp;quot;oh-my-opencode&amp;quot;, &amp;quot;opencode-antigravity-auth@latest&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すコマンドを実行する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;opencode auth login&amp;lt;/pre&amp;gt;&lt;br /&gt;
# 表示された一覧から[Google]を選択し、OAuth (Antigravity) で認証する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GLM 5 (Z.AI) ====&lt;br /&gt;
GLM-5は、智谱AI (Zhipu AI / Z.AI) が開発した大規模言語モデルである。&amp;lt;br&amp;gt;&lt;br /&gt;
744億パラメータのMoEアーキテクチャを採用し、アクティブパラメータは約40億、コンテキスト長は200,000トークンに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; を実行して、[Z.AI]を選択する。&lt;br /&gt;
# [https://z.ai/ Z.AI Open Platform]にアクセスして、APIキーを取得する。&lt;br /&gt;
# APIキーを入力する。&amp;lt;br&amp;gt;APIキーの形式は &amp;lt;u&amp;gt;{API Key ID}.{secret}&amp;lt;/u&amp;gt; である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに記述するカスタムプロバイダー設定を以下に示す。&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;provider&amp;quot;: {&lt;br /&gt;
       &amp;quot;zai&amp;quot;: {&lt;br /&gt;
          &amp;quot;npm&amp;quot;: &amp;quot;@ai-sdk/openai-compatible&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;Z.AI&amp;quot;,&lt;br /&gt;
          &amp;quot;options&amp;quot;: {&lt;br /&gt;
             &amp;quot;baseURL&amp;quot;: &amp;quot;https://api.z.ai/api/paas/v4/&amp;quot;,&lt;br /&gt;
             &amp;quot;apiKey&amp;quot;: &amp;quot;{env:ZAI_API_KEY}&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;models&amp;quot;: {&lt;br /&gt;
             &amp;quot;glm-5&amp;quot;: {&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;GLM-5&amp;quot;&lt;br /&gt;
             }&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;zai/glm-5&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* コーディング専用エンドポイントを使用する場合の設定を以下に示す。&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;provider&amp;quot;: {&lt;br /&gt;
       &amp;quot;zai-coding&amp;quot;: {&lt;br /&gt;
          &amp;quot;npm&amp;quot;: &amp;quot;@ai-sdk/openai-compatible&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;Z.AI Coding&amp;quot;,&lt;br /&gt;
          &amp;quot;options&amp;quot;: {&lt;br /&gt;
             &amp;quot;baseURL&amp;quot;: &amp;quot;https://api.z.ai/api/coding/paas/v4/&amp;quot;,&lt;br /&gt;
             &amp;quot;apiKey&amp;quot;: &amp;quot;{env:ZAI_API_KEY}&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;models&amp;quot;: {&lt;br /&gt;
             &amp;quot;glm-5&amp;quot;: {&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;GLM-5 Coding&amp;quot;&lt;br /&gt;
             }&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;zai-coding/glm-5&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 環境変数を使用してAPIキーを設定する場合は、以下に示すコマンドを実行する。&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ZAI_API_KEY=&amp;lt;APIキー&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Copilot ====&lt;br /&gt;
GitHub Copilotの認証設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すコマンドを実行する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;opencode auth login&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 表示された一覧から[GitHub]を選択する。&lt;br /&gt;
# Webブラウザが開くので、OAuthで認証する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
下表に、oh-my-opencodeのインストールおよび動作に関する問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| インストールが失敗する || Node.jsの最新バージョンがインストールされているか確認する。&amp;lt;br&amp;gt;OpenCode 1.0.133以降を使用しているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| JSONの設定が反映されない || 設定ファイルの内容が有効なJSON形式であるか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bunx&amp;lt;/code&amp;gt; コマンドが見つからない || &amp;lt;code&amp;gt;npx oh-my-opencode install&amp;lt;/code&amp;gt; を使用する。&lt;br /&gt;
|-&lt;br /&gt;
| npmキャッシュの問題 || 以下に示すコマンドでキャッシュをクリアする。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;npm cache clean --force&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Snapでインストールしたbunの問題 || npxを使用する、または、OpenCodeのオフィシャルインストーラーを再利用する。&lt;br /&gt;
|-&lt;br /&gt;
| エージェントが起動しない || &amp;lt;u&amp;gt;oh-my-opencode.json&amp;lt;/u&amp;gt; の &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; が &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt; になっているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| インストール後にエージェントが表示されない || 異なるパッケージマネージャー (npm, bun, yarn, pnpm) でのインストールを試みる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,OpenCode,oh-my-opencode,AI,エージェント,Agent,LLM,GLM-5,Claude,Gemini,GitHub Copilot,TUI,ターミナル&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Draw.io&amp;diff=14630</id>
		<title>MCPサーバ - Draw.io</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Draw.io&amp;diff=14630"/>
		<updated>2026-04-09T15:18:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* 設定とカスタマイズ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Draw.io MCP Server は、AI システムがDraw.io ダイアグラムをプログラマティックに制御・検査できるようにするMCP (Model Context Protocol) サーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
このMCPを使用することにより、Claude等のLLMがDraw.io上でフローチャート、シーケンス図、アーキテクチャ図、ネットワーク図等の様々なダイアグラムを自動的に作成・編集することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverは、以下に示すような機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
* ダイアグラムの検査機能 (選択セル取得、シェイプカテゴリ列挙、ページモデル取得)&lt;br /&gt;
* ダイアグラムの編集機能 (矩形追加、エッジ追加、カスタムシェイプ追加、セル削除)&lt;br /&gt;
* セルのプロパティ編集とスタイル適用&lt;br /&gt;
* カスタム属性の保存と管理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverは、WebSocket (デフォルトポート: 3333) を使用してブラウザ拡張機能経由でDraw.ioと通信する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、Claude Desktop、oterm、Zed等のMCPクライアントと統合することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverの最大の特徴は、Webブラウザ拡張機能を介してリアルタイムにDraw.ioダイアグラムを操作できることである。&amp;lt;br&amp;gt;&lt;br /&gt;
全てのダイアグラム処理機能は、TypeScriptで実装されており、Node.js 20以上で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Serverの機能 ==&lt;br /&gt;
==== ダイアグラム検査機能 ====&lt;br /&gt;
* 選択されたセルの取得 (get-selected-cells)&lt;br /&gt;
* シェイプカテゴリの列挙 (get-shape-categories)&lt;br /&gt;
* 特定のシェイプ情報の取得 (get-specific-shapes)&lt;br /&gt;
* ページ分割されたダイアグラムモデルの取得 (list-paged-model)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラム編集機能 ====&lt;br /&gt;
* 矩形の追加 (add-rectangle)&lt;br /&gt;
* エッジ (接続線) の追加 (add-edge)&lt;br /&gt;
* カスタムシェイプの追加 (add-custom-shape)&lt;br /&gt;
* セルの削除 (delete-cell)&lt;br /&gt;
* セルのプロパティ編集 (edit-cell)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スタイルとデータ管理 ====&lt;br /&gt;
* ライブラリスタイルの適用 (apply-library-style)&lt;br /&gt;
* カスタム属性の保存 (set-cell-data)&lt;br /&gt;
* シェイプのプロパティ変更&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応ダイアグラムタイプ ==&lt;br /&gt;
Draw.io MCP Serverは、Draw.ioで作成可能なすべてのダイアグラムタイプをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 対応ダイアグラムタイプ&lt;br /&gt;
|-&lt;br /&gt;
! タイプ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| フローチャート || プロセスフローと意思決定を視覚化&lt;br /&gt;
|-&lt;br /&gt;
| シーケンス図 || システムコンポーネント間の相互作用を時系列で表現&lt;br /&gt;
|-&lt;br /&gt;
| アーキテクチャ図 || システムアーキテクチャとコンポーネント構成を記述&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク図 || ネットワークトポロジーとデバイス接続を表現&lt;br /&gt;
|-&lt;br /&gt;
| データベース設計図 || データベーススキーマとER図を記述&lt;br /&gt;
|-&lt;br /&gt;
| UML図 || クラス図、アクティビティ図、ユースケース図等&lt;br /&gt;
|-&lt;br /&gt;
| マインドマップ || アイデアと概念の階層構造を視覚化&lt;br /&gt;
|-&lt;br /&gt;
| 組織図 || 組織構造と報告関係を表現&lt;br /&gt;
|-&lt;br /&gt;
| Ganttチャート || プロジェクトタイムラインとタスク管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== システム要件 ====&lt;br /&gt;
* Node.js 20以上&lt;br /&gt;
* Draw.io MCP Browser Extension (Chrome または Firefox)&lt;br /&gt;
* MCPクライアント (Claude Desktop、oterm、Zed等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 必須コンポーネント ====&lt;br /&gt;
* Draw.io MCP Server (TypeScript実装)&lt;br /&gt;
* Draw.io MCP Extension (ブラウザ拡張機能)&lt;br /&gt;
* app.diagrams.net へのアクセス&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ネットワーク要件 ====&lt;br /&gt;
* WebSocketポート (デフォルト: 3333) の利用可能性&lt;br /&gt;
* ファイアウォールでの指定ポートの開放&lt;br /&gt;
* ブラウザ拡張機能とサーバ間の通信許可&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Draw.io MCP Serverのインストール ====&lt;br /&gt;
Draw.io MCP Serverは、MCPクライアントの設定ファイルを編集することにより、自動的にインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す設定例を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/Claude/claude_desktop_config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\Claude\claude_desktop_config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
npmを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
pnpmを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;pnpm&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;dlx&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yarnを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;yarn&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;dlx&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopを再起動して、Draw.io MCP Serverが利用可能であることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeでの設定 ====&lt;br /&gt;
Claude Code (CLI) でも、Claude Desktopと同様の設定ファイルを使用してDraw.io MCP Serverを利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/claude/config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\claude\config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容は、Claude Desktopと同じである。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブラウザ拡張機能のインストール ====&lt;br /&gt;
Draw.io MCP Extensionをブラウザにインストールする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Google Chromeの場合 =====&lt;br /&gt;
# Chrome Web Storeから「Draw.io MCP Extension」を検索&lt;br /&gt;
# [追加] ボタンをクリックしてインストール&lt;br /&gt;
# 拡張機能がアクティブであることを確認&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Mozilla Firefoxの場合 =====&lt;br /&gt;
# Firefox Add-onsから &amp;lt;u&amp;gt;&amp;quot;Draw.io MCP Extension&amp;quot;&amp;lt;/u&amp;gt; を検索する。&lt;br /&gt;
# [Firefoxに追加]ボタンを押下してインストールする。&lt;br /&gt;
# 拡張機能がアクティブであることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== app.diagrams.netへのアクセス ====&lt;br /&gt;
# Webブラウザで https://app.diagrams.net を開く。&lt;br /&gt;
# Draw.io MCP Serverは、このページ上でダイアグラムを操作する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定とカスタマイズ ==&lt;br /&gt;
==== ポート設定 ====&lt;br /&gt;
Draw.io MCP Serverは、デフォルトでWebSocketポート3333を使用してブラウザ拡張機能と通信する。&amp;lt;br&amp;gt;&lt;br /&gt;
このポート番号は、カスタマイズすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;各MCPサーバインスタンスが独自のWebSocketサーバを起動しようとするため、同じポートを使う複数のインスタンスは共存できない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;例えば、複数のClaude CodeおよびClaude Desktopを起動してDraw.io MCP Serverを使用する場合、同じポート番号を使用するとエラーになる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、異なるポート番号を指定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムポートの設定例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;, &amp;quot;--extension-port&amp;quot;, &amp;quot;4000&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、ポート4000でWebSocket通信を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ブラウザ拡張機能側も同じポート番号を設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ拡張機能のポート設定&lt;br /&gt;
*# ブラウザ拡張機能のアイコンをクリックする。&lt;br /&gt;
*# 設定画面が表示される。&lt;br /&gt;
*# WebSocketポート番号を4000に変更する。&lt;br /&gt;
*# 保存して拡張機能を再読み込みする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HTTPトランスポートの使用 ====&lt;br /&gt;
リモートアクセス用にHTTPトランスポートを有効化することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトポートは3000である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPトランスポートの有効化例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;, &amp;quot;--transport&amp;quot;, &amp;quot;http&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、HTTP経由でMCPサーバにアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 利用可能なツール ==&lt;br /&gt;
==== get-selected-cells ====&lt;br /&gt;
選択されたセルの情報を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: ダイアグラム上で選択されているセル (シェイプ、エッジ) の詳細情報を取得する&lt;br /&gt;
*: セルID、スタイル、位置、サイズ等の属性を返す&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 選択されているセルの情報を取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== get-shape-categories ====&lt;br /&gt;
利用可能なシェイプカテゴリの一覧を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: Draw.ioライブラリで利用可能なシェイプカテゴリを列挙する&lt;br /&gt;
*: 各カテゴリに含まれるシェイプタイプを確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 利用可能なシェイプカテゴリを一覧表示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== get-specific-shapes ====&lt;br /&gt;
特定のシェイプ情報を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: 指定されたシェイプタイプの詳細情報を取得する&lt;br /&gt;
*: スタイルプロパティ、デフォルト設定、カスタマイズオプションを確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 矩形シェイプの詳細情報を取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== list-paged-model ====&lt;br /&gt;
ページ分割されたダイアグラムモデルを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: 複数ページを持つダイアグラムの構造を取得する&lt;br /&gt;
*: 各ページのセル、階層、接続関係を確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 ダイアグラムの全ページモデルを取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-rectangle ====&lt;br /&gt;
ダイアグラムに矩形を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| x || number || X座標位置&lt;br /&gt;
|-&lt;br /&gt;
| y || number || Y座標位置&lt;br /&gt;
|-&lt;br /&gt;
| width || number || 矩形の幅&lt;br /&gt;
|-&lt;br /&gt;
| height || number || 矩形の高さ&lt;br /&gt;
|-&lt;br /&gt;
| style || string || スタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 表示テキスト (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 座標 (100, 100) に幅200、高さ100の矩形を追加してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-edge ====&lt;br /&gt;
2つのセルを接続するエッジ (接続線) を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| source || string || 接続元のセルID&lt;br /&gt;
|-&lt;br /&gt;
| target || string || 接続先のセルID&lt;br /&gt;
|-&lt;br /&gt;
| style || string || エッジのスタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || エッジのラベル (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルAとセルBを矢印で接続してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-custom-shape ====&lt;br /&gt;
カスタムシェイプを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| shapeType || string || シェイプタイプ (円、菱形、楕円等)&lt;br /&gt;
|-&lt;br /&gt;
| x || number || X座標位置&lt;br /&gt;
|-&lt;br /&gt;
| y || number || Y座標位置&lt;br /&gt;
|-&lt;br /&gt;
| width || number || シェイプの幅&lt;br /&gt;
|-&lt;br /&gt;
| height || number || シェイプの高さ&lt;br /&gt;
|-&lt;br /&gt;
| style || string || スタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 表示テキスト (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 座標 (200, 200) に円形シェイプを追加してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== delete-cell ====&lt;br /&gt;
指定されたセルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || 削除するセルのID&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」を削除してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== edit-cell ====&lt;br /&gt;
既存のセルのプロパティを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || 編集するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| style || string || 新しいスタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 新しい表示テキスト (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| geometry || object || 新しい位置・サイズ情報 (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」のテキストを「データベース」に変更してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== apply-library-style ====&lt;br /&gt;
ライブラリで定義されたスタイルをセルに適用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || スタイルを適用するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| libraryName || string || ライブラリ名&lt;br /&gt;
|-&lt;br /&gt;
| styleName || string || スタイル名&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」にAWSライブラリのEC2スタイルを適用してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== set-cell-data ====&lt;br /&gt;
セルにカスタム属性データを保存する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || データを保存するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| key || string || 属性のキー&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 属性の値&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」にカスタム属性「type=server」を保存してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
==== プロンプトの基本形式 ====&lt;br /&gt;
Claude DesktopでDraw.io MCP Serverを使用する際は、自然言語でダイアグラムの作成を依頼できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 基本形式 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server &amp;lt;指示内容&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロンプト内で、作成するダイアグラムの種類、含めるべき要素、レイアウト、スタイル等を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude AIが自動的に適切なツールを選択して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シンプルなフローチャートの作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server フローチャートを作成してください。&lt;br /&gt;
 スタートノード、処理ステップ3つ、判定ノード1つ、終了ノードを含めてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アーキテクチャ図の作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server データベースアーキテクチャ図を作成してください。&lt;br /&gt;
 ユーザサーバ、アプリケーションサーバ、データベースサーバを矩形で表現し、矢印で接続関係を示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マイクロサービス図の作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server マイクロサービスのシステムアーキテクチャを描画してください。&lt;br /&gt;
 各サービスを異なる色の矩形で表現し、それぞれの通信プロトコルをラベル付きの矢印で示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スタイル指定を含む作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server ネットワーク図を作成してください。&lt;br /&gt;
 ルータ、スイッチ、サーバを適切なアイコンで表現し、VLANごとに異なる背景色を使用してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数ページのダイアグラム ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server システム設計書を作成してください。&lt;br /&gt;
 ページ1に概要図、ページ2に詳細アーキテクチャ、ページ3にデータフロー図を配置してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== システムアーキテクチャ ==&lt;br /&gt;
Draw.io MCP Serverは、3層アーキテクチャで構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アーキテクチャ概要 ====&lt;br /&gt;
コンポーネント構成&amp;lt;br&amp;gt;&lt;br /&gt;
* MCPクライアント層&lt;br /&gt;
*: Claude Desktop、oterm、Zed 等&lt;br /&gt;
* Draw.io MCP Server層&lt;br /&gt;
*: Node.jsベースのTypeScript実装&lt;br /&gt;
* ブラウザ拡張機能層&lt;br /&gt;
*: Draw.io MCP Extension (Chrome / Firefox)&lt;br /&gt;
* Draw.io層&lt;br /&gt;
*: app.diagrams.net のWebアプリケーション&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
通信フロー&amp;lt;br&amp;gt;&lt;br /&gt;
# Claude DesktopからDraw.io MCP Serverにツール呼び出しを送信する。&lt;br /&gt;
# Draw.io MCP ServerがWebSocket (ポート3333) 経由でブラウザ拡張機能に接続する。&lt;br /&gt;
# ブラウザ拡張機能がDraw.io APIを使用してダイアグラムを操作する。&lt;br /&gt;
# 結果がサーバ経由でClaudeに返却される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データフロー&amp;lt;br&amp;gt;&lt;br /&gt;
# プロンプトを入力する。(Claude Desktop)&lt;br /&gt;
# MCPツールを呼び出す。(Claude → Draw.io MCP Server)&lt;br /&gt;
# WebSocket通信を開始する。(Draw.io MCP Server → ブラウザ拡張機能)&lt;br /&gt;
# ダイアグラム操作 (ブラウザ拡張機能 → Draw.io)&lt;br /&gt;
# 結果が返却 (逆方向)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== サーバに接続できない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ拡張機能がインストールされているか確認&lt;br /&gt;
*: Chrome Web StoreまたはFirefox Add-onsから正しくインストールされていることを確認&lt;br /&gt;
* ブラウザ拡張機能がアクティブであるか確認&lt;br /&gt;
*: 拡張機能のアイコンが表示され、有効化されていることを確認&lt;br /&gt;
* Claude Desktopが再起動されているか確認&lt;br /&gt;
*: 設定ファイル編集後、必ずClaude Desktopを再起動する&lt;br /&gt;
* デフォルトポート3333が使用可能か確認&lt;br /&gt;
*: 他のアプリケーションがポート3333を使用していないか確認&lt;br /&gt;
*: ファイアウォールでポート3333が開放されているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラムが更新されない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* app.diagrams.netがブラウザで開かれているか確認&lt;br /&gt;
*: ブラウザで app.diagrams.net が開かれていることが必須&lt;br /&gt;
* WebSocket接続が確立されているか確認&lt;br /&gt;
*: ブラウザの開発者ツールでWebSocket接続状態を確認&lt;br /&gt;
* ペイロードサイズを確認&lt;br /&gt;
*: 大規模なダイアグラム操作の場合、処理に時間がかかる可能性がある&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツール呼び出しエラーが発生する ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.jsのバージョンの確認&lt;br /&gt;
*: Node.js 20以上がインストールされていることを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;node --version&amp;lt;/code&amp;gt; コマンドでバージョンを確認する。&lt;br /&gt;
* MCP Server設定ファイルの確認&lt;br /&gt;
*: claude_desktop_config.jsonファイルの設定が正しいかどうかを確認する。&lt;br /&gt;
*: JSON形式のエラーがないかどうかを確認する。&lt;br /&gt;
* サーバログの確認&lt;br /&gt;
*: Claude Desktopのデバッグコンソールでエラーログを確認する。&lt;br /&gt;
*: View &amp;gt; Toggle Developer Tools でコンソールを開く。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Firefox拡張機能が動作しない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 拡張機能のバージョンの確認&lt;br /&gt;
*: バージョン1.3.0以降を使用していることを確認する。&lt;br /&gt;
* 拡張機能の権限の確認&lt;br /&gt;
*: app.diagrams.net へのアクセス権限が付与されているか確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Extension ==&lt;br /&gt;
==== ブラウザ拡張機能の役割 ====&lt;br /&gt;
Draw.io MCP Extensionは、Draw.io MCP ServerとDraw.io間の橋渡しを行うコンポーネントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* WebSocket経由でDraw.io MCP Serverと通信&lt;br /&gt;
* Draw.io APIを使用してダイアグラムを操作&lt;br /&gt;
* セル選択、シェイプ追加、エッジ追加、セル削除等の操作を実行&lt;br /&gt;
* ダイアグラムの状態をサーバに返却&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 拡張機能のインストール場所 ====&lt;br /&gt;
* Google Chrome&lt;br /&gt;
** Chrome Web Store から「Draw.io MCP Extension」を検索してインストール&lt;br /&gt;
** URL: chrome.google.com/webstore (検索キーワード: Draw.io MCP Extension)&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Mozilla Firefox&lt;br /&gt;
** Firefox Add-onsから &amp;lt;u&amp;gt;Draw.io MCP Extension&amp;lt;/u&amp;gt; を検索してインストール&lt;br /&gt;
** URL: addons.mozilla.org (検索キーワード: Draw.io MCP Extension)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 関連リソース ==&lt;br /&gt;
* [https://github.com/lgazo/drawio-mcp-server Draw.io MCP ServerのGitHub]&lt;br /&gt;
* [https://glama.ai/mcp/servers/@lgazo/drawio-mcp-server Draw.io MCP Server on GLAMA]&lt;br /&gt;
* [https://modelcontextprotocol.io/ Model Context Protocol公式サイト]&lt;br /&gt;
* [https://app.diagrams.net/ Draw.io公式サイト]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Server (jgraph/drawio-mcp) ==&lt;br /&gt;
JGraph Ltd (Draw.ioの開発元) が公式に提供するMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
npmパッケージ名は &amp;lt;u&amp;gt;@drawio/mcp&amp;lt;/u&amp;gt; であり、Apache 2.0ライセンスで配布されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
前述の@lgazo/drawio-mcp-serverがブラウザ拡張機能経由でリアルタイムにDraw.ioを操作するのに対し、jgraph版はブラウザ拡張機能を必要としない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
代わりに、以下に示す4つの統合アプローチを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Draw.io 統合方式の一覧&lt;br /&gt;
! 方式 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| MCP App Server || チャット内にインラインでダイアグラムを表示する方式&amp;lt;br&amp;gt;インストール不要で、公式ホストエンドポイント (https://mcp.draw.io/mcp) を使用する。&lt;br /&gt;
|-&lt;br /&gt;
| MCP Tool Server || WebブラウザでDraw.ioエディタを開いてダイアグラムを表示する方式&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;@drawio/mcp&amp;lt;/u&amp;gt; パッケージをnpxで実行する。&lt;br /&gt;
|-&lt;br /&gt;
| Skill + CLI || &amp;lt;code&amp;gt;.drawio&amp;lt;/code&amp;gt; ファイルを生成し、draw.io DesktopアプリでPNG / SVG / PDFにエクスポートする方式&amp;lt;br&amp;gt;draw.io Desktopアプリのインストールが必要&lt;br /&gt;
|-&lt;br /&gt;
| Project Instructions || インストール不要で、Pythonスクリプトを使用してDraw.ioのURLを生成する方式&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応する入力フォーマットは、XML、CSV、Mermaid.jsの3種類である。&amp;lt;br&amp;gt;&lt;br /&gt;
Node.js 18.0.0以上が必要である (MCP Tool ServerおよびSkill + CLI使用時)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応するMCPクライアントは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Claude Desktop&lt;br /&gt;
* Claude Code (CLI)&lt;br /&gt;
* Cursor&lt;br /&gt;
* Windsurf&lt;br /&gt;
* その他のMCP対応クライアント&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 4つの統合アプローチ ==&lt;br /&gt;
jgraph版Draw.io MCPは、4つの異なる統合アプローチを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
用途に応じて適切なアプローチを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 4つの統合アプローチの比較&lt;br /&gt;
! アプローチ !! 動作方法 !! 出力形式 !! インストール !! 対応フォーマット !! 対応クライアント !! ベストユースケース&lt;br /&gt;
|-&lt;br /&gt;
| MCP App Server || チャット内にインライン表示 || インラインダイアグラム || 不要 (公式ホスト使用) || XML, CSV, Mermaid || Claude Desktop || チャット内でダイアグラムを確認したい場合&lt;br /&gt;
|-&lt;br /&gt;
| MCP Tool Server || ブラウザでDraw.ioエディタを開く || ブラウザ表示 || npxで実行 || XML, CSV, Mermaid || Claude Desktop, Cursor, Windsurf等 || ダイアグラムをDraw.ioエディタで編集したい場合&lt;br /&gt;
|-&lt;br /&gt;
| Skill + CLI || .drawioファイル生成 + エクスポート || .drawio, PNG, SVG, PDF || npm install + draw.io Desktop || XML || Claude Code || ファイルとして保存・エクスポートしたい場合&lt;br /&gt;
|-&lt;br /&gt;
| Project Instructions || PythonでURL生成 || ブラウザ表示 || 不要 (Pythonのみ) || XML || 全クライアント || インストールなしでダイアグラムを生成したい場合&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 動作要件 ==&lt;br /&gt;
==== 共通要件 ====&lt;br /&gt;
* インターネット接続&lt;br /&gt;
*: Draw.ioのWebアプリケーション (https://app.diagrams.net) へのアクセスが必要&lt;br /&gt;
* MCPクライアント&lt;br /&gt;
*: Claude Desktop、Claude Code、Cursor、Windsurf等のMCP対応クライアント&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP Tool Serverの要件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* npm (npxコマンドが利用可能であること)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Skill + CLIの要件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* npm または pnpm&lt;br /&gt;
* draw.io Desktopアプリ&lt;br /&gt;
*: エクスポート機能 (PNG / SVG / PDF) を使用する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP App Serverの要件 ====&lt;br /&gt;
* 追加のインストールは不要&lt;br /&gt;
* 公式ホストエンドポイント (https://mcp.draw.io/mcp) を使用&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Project Instructionsの要件 ====&lt;br /&gt;
* Python 3の実行環境&lt;br /&gt;
* 追加のパッケージインストールは不要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP Tool Serverのインストール ==&lt;br /&gt;
==== npxでの実行 (推奨) ====&lt;br /&gt;
グローバルインストール不要で、常に最新バージョンを使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== グローバルインストール ====&lt;br /&gt;
npmでグローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 drawio-mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソースからのインストール ====&lt;br /&gt;
GitHubリポジトリからソースコードを取得してビルドする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/jgraph/drawio-mcp.git&lt;br /&gt;
 cd drawio-mcp&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルド後、以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 node dist/tool-server.js&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルを編集して、MCP Tool Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/Claude/claude_desktop_config.json&lt;br /&gt;
* MacOS&lt;br /&gt;
*: ~/Library/Application Support/Claude/claude_desktop_config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\Claude\claude_desktop_config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;drawio-mcp&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@drawio/mcp&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeでの設定 ====&lt;br /&gt;
Claude Codeで使用する場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add drawio-mcp -- npx -y @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、設定ファイルを直接編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS / Linux&lt;br /&gt;
*: ~/.config/claude/config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\claude\config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容は、Claude Desktopと同じJSONフォーマットを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のMCPクライアントでの設定 ====&lt;br /&gt;
Cursor、Windsurf等の他のMCPクライアントでも使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
各クライアントの設定方法に従い、以下の情報を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt;&lt;br /&gt;
* 引数&lt;br /&gt;
*: &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;@drawio/mcp&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP App Serverの設定 ==&lt;br /&gt;
MCP App Serverは、チャット内にダイアグラムをインラインで表示する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
インストール不要で、公式ホストのエンドポイントを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ホストエンドポイント ====&lt;br /&gt;
JGraphが提供する公式エンドポイントを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://mcp.draw.io/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定で、上記URLをMCP App Serverとして登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セルフホスト (Node.js) ====&lt;br /&gt;
MCP App Serverをセルフホストする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @drawio/mcp --app-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトでは、ポート3000でHTTPサーバが起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 (stdio) ====&lt;br /&gt;
stdioトランスポートを使用してMCP App Serverを起動する場合は、以下の設定を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;drawio-app&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@drawio/mcp&amp;quot;, &amp;quot;--app-server&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cloudflare Workersへのデプロイ ====&lt;br /&gt;
MCP App ServerをCloudflare Workersにデプロイすることも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリのクローンとデプロイは以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/jgraph/drawio-mcp.git&lt;br /&gt;
 cd drawio-mcp&lt;br /&gt;
 npm install&lt;br /&gt;
 npx wrangler deploy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デプロイ後、Cloudflare WorkersのURLをMCPクライアントに設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : Skill + CLIの設定 ==&lt;br /&gt;
Skill + CLIは、&amp;lt;code&amp;gt;.drawio&amp;lt;/code&amp;gt;ファイルを生成し、draw.io DesktopアプリでPNG / SVG / PDFにエクスポートする方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* draw.io Desktopアプリ&lt;br /&gt;
*: エクスポート機能を使用するために必要&lt;br /&gt;
*: [https://github.com/jgraph/drawio-desktop/releases draw.io Desktop公式リリースページ] からダウンロード可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
グローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクト単位でインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== draw.io CLIの場所 ====&lt;br /&gt;
draw.io Desktopアプリのコマンドライン実行ファイルの場所は、OSにより異なる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;code&amp;gt;/Applications/draw.io.app/Contents/MacOS/draw.io&amp;lt;/code&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;code&amp;gt;drawio&amp;lt;/code&amp;gt; (PATHに含まれている場合)&lt;br /&gt;
*: または、AppImageの場所を直接指定する&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;code&amp;gt;C:\Program Files\draw.io\draw.io.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エクスポートフォーマット ====&lt;br /&gt;
Skill + CLIで対応しているエクスポートフォーマットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ エクスポートフォーマット&lt;br /&gt;
! フォーマット !! 拡張子 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Draw.io || .drawio || Draw.ioネイティブ形式 (XML)&lt;br /&gt;
|-&lt;br /&gt;
| PNG || .png || ラスター画像形式&lt;br /&gt;
|-&lt;br /&gt;
| SVG || .svg || ベクター画像形式&lt;br /&gt;
|-&lt;br /&gt;
| PDF || .pdf || PDF文書形式&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : Project Instructionsの設定 ==&lt;br /&gt;
Project Instructionsは、インストール不要でダイアグラムを生成する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
Pythonスクリプトを使用してDraw.ioのURLを生成し、ブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 概要 ====&lt;br /&gt;
MCPサーバのインストールが不要であり、全てのMCPクライアントで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの指示ファイル (CLAUDE.mdやcursor rules等) にDraw.io URLの生成方法を記述することで、LLMがPythonスクリプトを実行してダイアグラムを生成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セットアップ方法 ====&lt;br /&gt;
プロジェクトの指示ファイルに以下の内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 When generating diagrams, create a draw.io compatible XML representation&lt;br /&gt;
 and then generate a URL using the following Python code:&lt;br /&gt;
 &lt;br /&gt;
 import zlib, base64&lt;br /&gt;
 xml = &#039;&amp;lt;your draw.io XML&amp;gt;&#039;&lt;br /&gt;
 compressed = zlib.compress(xml.encode(&#039;utf-8&#039;), 9)[2:-4]&lt;br /&gt;
 encoded = base64.urlsafe_b64encode(compressed).decode(&#039;utf-8&#039;)&lt;br /&gt;
 url = f&#039;https://app.diagrams.net/#create={encoded}&#039;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作の仕組み ====&lt;br /&gt;
# LLMがDraw.io互換のXMLを生成する。&lt;br /&gt;
# Pythonのzlibで圧縮 (deflateRaw) を行う。&lt;br /&gt;
# base64でURLセーフエンコードを行う。&lt;br /&gt;
# https://app.diagrams.net/#create= の後にエンコード済みデータを付加してURLを生成する。&lt;br /&gt;
# 生成されたURLをWebブラウザで開くと、Draw.ioエディタにダイアグラムが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP Tool Serverのツール ==&lt;br /&gt;
MCP Tool Serverは、3つのツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
各ツールは、異なる入力フォーマットに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_xml ====&lt;br /&gt;
Draw.io XML形式のダイアグラムをブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_xmlのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || Draw.io XML形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_csv ====&lt;br /&gt;
CSV形式のデータからダイアグラムをWebブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_csvのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || CSV形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_mermaid ====&lt;br /&gt;
Mermaid.js形式のダイアグラムをブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_mermaidのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || Mermaid.js形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 使用方法 ==&lt;br /&gt;
==== MCP Tool Serverでの使用例 ====&lt;br /&gt;
MCP Tool Serverを使用する場合のプロンプト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Mermaidダイアグラムの場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下のMermaid形式でシーケンス図をDraw.ioで作成してください。&lt;br /&gt;
 sequenceDiagram&lt;br /&gt;
    Client-&amp;gt;&amp;gt;Server: HTTPリクエスト&lt;br /&gt;
    Server-&amp;gt;&amp;gt;Database: クエリ実行&lt;br /&gt;
    Database--&amp;gt;&amp;gt;Server: 結果返却&lt;br /&gt;
    Server--&amp;gt;&amp;gt;Client: HTTPレスポンス&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* CSVデータからダイアグラムを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下の組織データからCSV形式で組織図をDraw.ioで作成してください。&lt;br /&gt;
 CEO配下にCTO、CFO、COOの3つのポジションがあります。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* XMLダイアグラムの場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Webアプリケーションの3層アーキテクチャ図をDraw.io XMLで作成してください。&lt;br /&gt;
 フロントエンド、バックエンド、データベースの3層を含めてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Skill + CLIでの使用例 ====&lt;br /&gt;
Claude Code (CLI) でSkill + CLIを使用する場合は、&amp;lt;code&amp;gt;/drawio&amp;lt;/code&amp;gt; コマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 /drawio マイクロサービスのアーキテクチャ図を作成してください。&lt;br /&gt;
 各サービス間の通信方式も記載してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エクスポートを含む使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 /drawio ネットワーク構成図を作成して、PNGファイルとしてエクスポートしてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Project Instructionsでの使用例 ====&lt;br /&gt;
Project Instructionsを使用する場合のプロンプト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 システムのデプロイメントフロー図を作成して、Draw.ioで開けるURLを生成してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 動作の仕組み ==&lt;br /&gt;
==== MCP Tool Serverの処理フロー ====&lt;br /&gt;
MCP Tool Serverは、以下の手順でダイアグラムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアントからダイアグラムデータ (XML / CSV / Mermaid) を受信する。&lt;br /&gt;
# pakoライブラリを使用して、データをdeflateRaw圧縮する。&lt;br /&gt;
# 圧縮データをBase64エンコードする。&lt;br /&gt;
# https://app.diagrams.net/#create= の後にエンコード済みデータを付加したURLを生成する。&lt;br /&gt;
# 生成されたURLをWebブラウザで開き、Draw.ioエディタにダイアグラムを表示する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP App Serverの処理フロー ====&lt;br /&gt;
MCP App Serverは、以下の手順でダイアグラムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアントからダイアグラムデータを受信する。&lt;br /&gt;
# サーバ側でダイアグラムデータを処理する。&lt;br /&gt;
# チャットインターフェース内にダイアグラムをインラインで描画する。&lt;br /&gt;
# ユーザはチャット内で直接ダイアグラムを確認できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== URLの安全性 ====&lt;br /&gt;
MCP Tool ServerおよびProject Instructionsで生成されるURLは、ハッシュフラグメント方式 (&amp;lt;code&amp;gt;#create=&amp;lt;/code&amp;gt;) を使用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ハッシュフラグメント (&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 以降のデータ) は、Webブラウザからサーバに送信されない&lt;br /&gt;
*: そのため、ダイアグラムデータがDraw.ioのサーバに送信されることはない&lt;br /&gt;
* 全てのデータ処理はブラウザ内で完結する&lt;br /&gt;
* 機密性の高いダイアグラムデータも安全に扱うことができる&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : トラブルシューティング ==&lt;br /&gt;
==== npxが見つからない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.jsのバージョン確認&lt;br /&gt;
*: Node.js 18.0.0以上がインストールされていることを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;node --version&amp;lt;/code&amp;gt; コマンドでバージョンを確認する。&lt;br /&gt;
* npxの確認&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; コマンドでnpxが利用可能であることを確認する。&lt;br /&gt;
*: npxが見つからない場合は、Node.jsを再インストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラムが開かない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* インターネット接続の確認&lt;br /&gt;
*: https://app.diagrams.net にアクセスできることを確認する。&lt;br /&gt;
* Webブラウザの確認&lt;br /&gt;
*: デフォルトブラウザが設定されていることを確認する。&lt;br /&gt;
*: ポップアップブロッカーがURLの展開を妨げていないか確認する。&lt;br /&gt;
* URLの長さ制限&lt;br /&gt;
*: 非常に大きなダイアグラムの場合、URLの長さがブラウザの制限を超える可能性がある。&lt;br /&gt;
*: その場合は、Skill + CLIアプローチを使用してファイルとして生成することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== draw.io CLIでのエクスポートが失敗する場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* draw.io Desktopの確認&lt;br /&gt;
*: draw.io Desktopアプリがインストールされていることを確認する。&lt;br /&gt;
*: CLIコマンドがPATHに含まれていることを確認する。&lt;br /&gt;
* ディスプレイ環境の確認 (Linux)&lt;br /&gt;
*: LinuxでGUIなし環境の場合、&amp;lt;code&amp;gt;xvfb-run&amp;lt;/code&amp;gt; が必要になることがある。&lt;br /&gt;
*: &amp;lt;code&amp;gt;xvfb-run drawio --export --format png diagram.drawio&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopで認識されない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 設定ファイルの確認&lt;br /&gt;
*: &amp;lt;u&amp;gt;claude_desktop_config.jsonファイル&amp;lt;/u&amp;gt; のJSON形式が正しいことを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;mcpServers&amp;lt;/code&amp;gt; キーの下に正しく設定されていることを確認する。&lt;br /&gt;
* Claude Desktopの再起動&lt;br /&gt;
*: 設定ファイル編集後、Claude Desktopを再起動する。&lt;br /&gt;
* ログの確認&lt;br /&gt;
*: Claude Desktopのデバッグコンソール ([View] - [Toggle Developer Tools]) でエラーログを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Draw.io MCP Server | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,MCP,Model Context Protocol,Draw.io,Diagram,Flowchart,Architecture,UML,Sequence Diagram,Network Diagram,Claude,AI,Machine Learning,Node.js,TypeScript,Browser Extension,WebSocket,Visualization,jgraph,@drawio/mcp,MCP App Server,Mermaid,CSV,Skill,CLI&lt;br /&gt;
|description={{PAGENAME}} - Draw.io MCP Serverに関する包括的なガイド、コミュニティ版とJGraph公式版の両方を網羅したAIアシスタントによるダイアグラム作成と編集の自動化 | This page is {{PAGENAME}} in our wiki about Draw.io MCP servers and AI-powered diagram creation&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Draw.io&amp;diff=14629</id>
		<title>MCPサーバ - Draw.io</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Draw.io&amp;diff=14629"/>
		<updated>2026-04-09T15:17:11Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* app.diagrams.netへのアクセス */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Draw.io MCP Server は、AI システムがDraw.io ダイアグラムをプログラマティックに制御・検査できるようにするMCP (Model Context Protocol) サーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
このMCPを使用することにより、Claude等のLLMがDraw.io上でフローチャート、シーケンス図、アーキテクチャ図、ネットワーク図等の様々なダイアグラムを自動的に作成・編集することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverは、以下に示すような機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
* ダイアグラムの検査機能 (選択セル取得、シェイプカテゴリ列挙、ページモデル取得)&lt;br /&gt;
* ダイアグラムの編集機能 (矩形追加、エッジ追加、カスタムシェイプ追加、セル削除)&lt;br /&gt;
* セルのプロパティ編集とスタイル適用&lt;br /&gt;
* カスタム属性の保存と管理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverは、WebSocket (デフォルトポート: 3333) を使用してブラウザ拡張機能経由でDraw.ioと通信する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、Claude Desktop、oterm、Zed等のMCPクライアントと統合することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverの最大の特徴は、Webブラウザ拡張機能を介してリアルタイムにDraw.ioダイアグラムを操作できることである。&amp;lt;br&amp;gt;&lt;br /&gt;
全てのダイアグラム処理機能は、TypeScriptで実装されており、Node.js 20以上で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Serverの機能 ==&lt;br /&gt;
==== ダイアグラム検査機能 ====&lt;br /&gt;
* 選択されたセルの取得 (get-selected-cells)&lt;br /&gt;
* シェイプカテゴリの列挙 (get-shape-categories)&lt;br /&gt;
* 特定のシェイプ情報の取得 (get-specific-shapes)&lt;br /&gt;
* ページ分割されたダイアグラムモデルの取得 (list-paged-model)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラム編集機能 ====&lt;br /&gt;
* 矩形の追加 (add-rectangle)&lt;br /&gt;
* エッジ (接続線) の追加 (add-edge)&lt;br /&gt;
* カスタムシェイプの追加 (add-custom-shape)&lt;br /&gt;
* セルの削除 (delete-cell)&lt;br /&gt;
* セルのプロパティ編集 (edit-cell)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スタイルとデータ管理 ====&lt;br /&gt;
* ライブラリスタイルの適用 (apply-library-style)&lt;br /&gt;
* カスタム属性の保存 (set-cell-data)&lt;br /&gt;
* シェイプのプロパティ変更&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応ダイアグラムタイプ ==&lt;br /&gt;
Draw.io MCP Serverは、Draw.ioで作成可能なすべてのダイアグラムタイプをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 対応ダイアグラムタイプ&lt;br /&gt;
|-&lt;br /&gt;
! タイプ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| フローチャート || プロセスフローと意思決定を視覚化&lt;br /&gt;
|-&lt;br /&gt;
| シーケンス図 || システムコンポーネント間の相互作用を時系列で表現&lt;br /&gt;
|-&lt;br /&gt;
| アーキテクチャ図 || システムアーキテクチャとコンポーネント構成を記述&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク図 || ネットワークトポロジーとデバイス接続を表現&lt;br /&gt;
|-&lt;br /&gt;
| データベース設計図 || データベーススキーマとER図を記述&lt;br /&gt;
|-&lt;br /&gt;
| UML図 || クラス図、アクティビティ図、ユースケース図等&lt;br /&gt;
|-&lt;br /&gt;
| マインドマップ || アイデアと概念の階層構造を視覚化&lt;br /&gt;
|-&lt;br /&gt;
| 組織図 || 組織構造と報告関係を表現&lt;br /&gt;
|-&lt;br /&gt;
| Ganttチャート || プロジェクトタイムラインとタスク管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== システム要件 ====&lt;br /&gt;
* Node.js 20以上&lt;br /&gt;
* Draw.io MCP Browser Extension (Chrome または Firefox)&lt;br /&gt;
* MCPクライアント (Claude Desktop、oterm、Zed等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 必須コンポーネント ====&lt;br /&gt;
* Draw.io MCP Server (TypeScript実装)&lt;br /&gt;
* Draw.io MCP Extension (ブラウザ拡張機能)&lt;br /&gt;
* app.diagrams.net へのアクセス&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ネットワーク要件 ====&lt;br /&gt;
* WebSocketポート (デフォルト: 3333) の利用可能性&lt;br /&gt;
* ファイアウォールでの指定ポートの開放&lt;br /&gt;
* ブラウザ拡張機能とサーバ間の通信許可&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Draw.io MCP Serverのインストール ====&lt;br /&gt;
Draw.io MCP Serverは、MCPクライアントの設定ファイルを編集することにより、自動的にインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す設定例を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/Claude/claude_desktop_config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\Claude\claude_desktop_config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
npmを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
pnpmを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;pnpm&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;dlx&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yarnを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;yarn&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;dlx&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopを再起動して、Draw.io MCP Serverが利用可能であることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeでの設定 ====&lt;br /&gt;
Claude Code (CLI) でも、Claude Desktopと同様の設定ファイルを使用してDraw.io MCP Serverを利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/claude/config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\claude\config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容は、Claude Desktopと同じである。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブラウザ拡張機能のインストール ====&lt;br /&gt;
Draw.io MCP Extensionをブラウザにインストールする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Google Chromeの場合 =====&lt;br /&gt;
# Chrome Web Storeから「Draw.io MCP Extension」を検索&lt;br /&gt;
# [追加] ボタンをクリックしてインストール&lt;br /&gt;
# 拡張機能がアクティブであることを確認&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Mozilla Firefoxの場合 =====&lt;br /&gt;
# Firefox Add-onsから &amp;lt;u&amp;gt;&amp;quot;Draw.io MCP Extension&amp;quot;&amp;lt;/u&amp;gt; を検索する。&lt;br /&gt;
# [Firefoxに追加]ボタンを押下してインストールする。&lt;br /&gt;
# 拡張機能がアクティブであることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== app.diagrams.netへのアクセス ====&lt;br /&gt;
# Webブラウザで https://app.diagrams.net を開く。&lt;br /&gt;
# Draw.io MCP Serverは、このページ上でダイアグラムを操作する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定とカスタマイズ ==&lt;br /&gt;
==== ポート設定 ====&lt;br /&gt;
Draw.io MCP Serverは、デフォルトでWebSocketポート3333を使用してブラウザ拡張機能と通信する。&amp;lt;br&amp;gt;&lt;br /&gt;
このポート番号は、カスタマイズすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;各MCPサーバインスタンスが独自のWebSocketサーバを起動しようとするため、同じポートを使う複数のインスタンスは共存できない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;例えば、複数のClaude CodeおよびClaude Desktopを起動してDraw.io MCP Serverを使用する場合、同じポート番号を使用するとエラーになる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、異なるポート番号を指定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムポートの設定例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;@lgazo/drawio-mcp-server&amp;quot;, &amp;quot;--extension-port&amp;quot;, &amp;quot;4000&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、ポート4000でWebSocket通信を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ブラウザ拡張機能側も同じポート番号を設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ拡張機能のポート設定&lt;br /&gt;
*# ブラウザ拡張機能のアイコンをクリックする。&lt;br /&gt;
*# 設定画面が表示される。&lt;br /&gt;
*# WebSocketポート番号を4000に変更する。&lt;br /&gt;
*# 保存して拡張機能を再読み込みする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HTTPトランスポートの使用 ====&lt;br /&gt;
リモートアクセス用にHTTPトランスポートを有効化することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトポートは3000である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPトランスポートの有効化例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;@lgazo/drawio-mcp-server&amp;quot;, &amp;quot;--transport&amp;quot;, &amp;quot;http&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、HTTP経由でMCPサーバにアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 利用可能なツール ==&lt;br /&gt;
==== get-selected-cells ====&lt;br /&gt;
選択されたセルの情報を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: ダイアグラム上で選択されているセル (シェイプ、エッジ) の詳細情報を取得する&lt;br /&gt;
*: セルID、スタイル、位置、サイズ等の属性を返す&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 選択されているセルの情報を取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== get-shape-categories ====&lt;br /&gt;
利用可能なシェイプカテゴリの一覧を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: Draw.ioライブラリで利用可能なシェイプカテゴリを列挙する&lt;br /&gt;
*: 各カテゴリに含まれるシェイプタイプを確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 利用可能なシェイプカテゴリを一覧表示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== get-specific-shapes ====&lt;br /&gt;
特定のシェイプ情報を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: 指定されたシェイプタイプの詳細情報を取得する&lt;br /&gt;
*: スタイルプロパティ、デフォルト設定、カスタマイズオプションを確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 矩形シェイプの詳細情報を取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== list-paged-model ====&lt;br /&gt;
ページ分割されたダイアグラムモデルを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: 複数ページを持つダイアグラムの構造を取得する&lt;br /&gt;
*: 各ページのセル、階層、接続関係を確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 ダイアグラムの全ページモデルを取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-rectangle ====&lt;br /&gt;
ダイアグラムに矩形を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| x || number || X座標位置&lt;br /&gt;
|-&lt;br /&gt;
| y || number || Y座標位置&lt;br /&gt;
|-&lt;br /&gt;
| width || number || 矩形の幅&lt;br /&gt;
|-&lt;br /&gt;
| height || number || 矩形の高さ&lt;br /&gt;
|-&lt;br /&gt;
| style || string || スタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 表示テキスト (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 座標 (100, 100) に幅200、高さ100の矩形を追加してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-edge ====&lt;br /&gt;
2つのセルを接続するエッジ (接続線) を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| source || string || 接続元のセルID&lt;br /&gt;
|-&lt;br /&gt;
| target || string || 接続先のセルID&lt;br /&gt;
|-&lt;br /&gt;
| style || string || エッジのスタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || エッジのラベル (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルAとセルBを矢印で接続してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-custom-shape ====&lt;br /&gt;
カスタムシェイプを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| shapeType || string || シェイプタイプ (円、菱形、楕円等)&lt;br /&gt;
|-&lt;br /&gt;
| x || number || X座標位置&lt;br /&gt;
|-&lt;br /&gt;
| y || number || Y座標位置&lt;br /&gt;
|-&lt;br /&gt;
| width || number || シェイプの幅&lt;br /&gt;
|-&lt;br /&gt;
| height || number || シェイプの高さ&lt;br /&gt;
|-&lt;br /&gt;
| style || string || スタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 表示テキスト (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 座標 (200, 200) に円形シェイプを追加してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== delete-cell ====&lt;br /&gt;
指定されたセルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || 削除するセルのID&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」を削除してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== edit-cell ====&lt;br /&gt;
既存のセルのプロパティを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || 編集するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| style || string || 新しいスタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 新しい表示テキスト (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| geometry || object || 新しい位置・サイズ情報 (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」のテキストを「データベース」に変更してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== apply-library-style ====&lt;br /&gt;
ライブラリで定義されたスタイルをセルに適用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || スタイルを適用するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| libraryName || string || ライブラリ名&lt;br /&gt;
|-&lt;br /&gt;
| styleName || string || スタイル名&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」にAWSライブラリのEC2スタイルを適用してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== set-cell-data ====&lt;br /&gt;
セルにカスタム属性データを保存する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || データを保存するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| key || string || 属性のキー&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 属性の値&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」にカスタム属性「type=server」を保存してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
==== プロンプトの基本形式 ====&lt;br /&gt;
Claude DesktopでDraw.io MCP Serverを使用する際は、自然言語でダイアグラムの作成を依頼できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 基本形式 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server &amp;lt;指示内容&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロンプト内で、作成するダイアグラムの種類、含めるべき要素、レイアウト、スタイル等を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude AIが自動的に適切なツールを選択して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シンプルなフローチャートの作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server フローチャートを作成してください。&lt;br /&gt;
 スタートノード、処理ステップ3つ、判定ノード1つ、終了ノードを含めてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アーキテクチャ図の作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server データベースアーキテクチャ図を作成してください。&lt;br /&gt;
 ユーザサーバ、アプリケーションサーバ、データベースサーバを矩形で表現し、矢印で接続関係を示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マイクロサービス図の作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server マイクロサービスのシステムアーキテクチャを描画してください。&lt;br /&gt;
 各サービスを異なる色の矩形で表現し、それぞれの通信プロトコルをラベル付きの矢印で示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スタイル指定を含む作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server ネットワーク図を作成してください。&lt;br /&gt;
 ルータ、スイッチ、サーバを適切なアイコンで表現し、VLANごとに異なる背景色を使用してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数ページのダイアグラム ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server システム設計書を作成してください。&lt;br /&gt;
 ページ1に概要図、ページ2に詳細アーキテクチャ、ページ3にデータフロー図を配置してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== システムアーキテクチャ ==&lt;br /&gt;
Draw.io MCP Serverは、3層アーキテクチャで構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アーキテクチャ概要 ====&lt;br /&gt;
コンポーネント構成&amp;lt;br&amp;gt;&lt;br /&gt;
* MCPクライアント層&lt;br /&gt;
*: Claude Desktop、oterm、Zed 等&lt;br /&gt;
* Draw.io MCP Server層&lt;br /&gt;
*: Node.jsベースのTypeScript実装&lt;br /&gt;
* ブラウザ拡張機能層&lt;br /&gt;
*: Draw.io MCP Extension (Chrome / Firefox)&lt;br /&gt;
* Draw.io層&lt;br /&gt;
*: app.diagrams.net のWebアプリケーション&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
通信フロー&amp;lt;br&amp;gt;&lt;br /&gt;
# Claude DesktopからDraw.io MCP Serverにツール呼び出しを送信する。&lt;br /&gt;
# Draw.io MCP ServerがWebSocket (ポート3333) 経由でブラウザ拡張機能に接続する。&lt;br /&gt;
# ブラウザ拡張機能がDraw.io APIを使用してダイアグラムを操作する。&lt;br /&gt;
# 結果がサーバ経由でClaudeに返却される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データフロー&amp;lt;br&amp;gt;&lt;br /&gt;
# プロンプトを入力する。(Claude Desktop)&lt;br /&gt;
# MCPツールを呼び出す。(Claude → Draw.io MCP Server)&lt;br /&gt;
# WebSocket通信を開始する。(Draw.io MCP Server → ブラウザ拡張機能)&lt;br /&gt;
# ダイアグラム操作 (ブラウザ拡張機能 → Draw.io)&lt;br /&gt;
# 結果が返却 (逆方向)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== サーバに接続できない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ拡張機能がインストールされているか確認&lt;br /&gt;
*: Chrome Web StoreまたはFirefox Add-onsから正しくインストールされていることを確認&lt;br /&gt;
* ブラウザ拡張機能がアクティブであるか確認&lt;br /&gt;
*: 拡張機能のアイコンが表示され、有効化されていることを確認&lt;br /&gt;
* Claude Desktopが再起動されているか確認&lt;br /&gt;
*: 設定ファイル編集後、必ずClaude Desktopを再起動する&lt;br /&gt;
* デフォルトポート3333が使用可能か確認&lt;br /&gt;
*: 他のアプリケーションがポート3333を使用していないか確認&lt;br /&gt;
*: ファイアウォールでポート3333が開放されているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラムが更新されない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* app.diagrams.netがブラウザで開かれているか確認&lt;br /&gt;
*: ブラウザで app.diagrams.net が開かれていることが必須&lt;br /&gt;
* WebSocket接続が確立されているか確認&lt;br /&gt;
*: ブラウザの開発者ツールでWebSocket接続状態を確認&lt;br /&gt;
* ペイロードサイズを確認&lt;br /&gt;
*: 大規模なダイアグラム操作の場合、処理に時間がかかる可能性がある&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツール呼び出しエラーが発生する ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.jsのバージョンの確認&lt;br /&gt;
*: Node.js 20以上がインストールされていることを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;node --version&amp;lt;/code&amp;gt; コマンドでバージョンを確認する。&lt;br /&gt;
* MCP Server設定ファイルの確認&lt;br /&gt;
*: claude_desktop_config.jsonファイルの設定が正しいかどうかを確認する。&lt;br /&gt;
*: JSON形式のエラーがないかどうかを確認する。&lt;br /&gt;
* サーバログの確認&lt;br /&gt;
*: Claude Desktopのデバッグコンソールでエラーログを確認する。&lt;br /&gt;
*: View &amp;gt; Toggle Developer Tools でコンソールを開く。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Firefox拡張機能が動作しない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 拡張機能のバージョンの確認&lt;br /&gt;
*: バージョン1.3.0以降を使用していることを確認する。&lt;br /&gt;
* 拡張機能の権限の確認&lt;br /&gt;
*: app.diagrams.net へのアクセス権限が付与されているか確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Extension ==&lt;br /&gt;
==== ブラウザ拡張機能の役割 ====&lt;br /&gt;
Draw.io MCP Extensionは、Draw.io MCP ServerとDraw.io間の橋渡しを行うコンポーネントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* WebSocket経由でDraw.io MCP Serverと通信&lt;br /&gt;
* Draw.io APIを使用してダイアグラムを操作&lt;br /&gt;
* セル選択、シェイプ追加、エッジ追加、セル削除等の操作を実行&lt;br /&gt;
* ダイアグラムの状態をサーバに返却&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 拡張機能のインストール場所 ====&lt;br /&gt;
* Google Chrome&lt;br /&gt;
** Chrome Web Store から「Draw.io MCP Extension」を検索してインストール&lt;br /&gt;
** URL: chrome.google.com/webstore (検索キーワード: Draw.io MCP Extension)&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Mozilla Firefox&lt;br /&gt;
** Firefox Add-onsから &amp;lt;u&amp;gt;Draw.io MCP Extension&amp;lt;/u&amp;gt; を検索してインストール&lt;br /&gt;
** URL: addons.mozilla.org (検索キーワード: Draw.io MCP Extension)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 関連リソース ==&lt;br /&gt;
* [https://github.com/lgazo/drawio-mcp-server Draw.io MCP ServerのGitHub]&lt;br /&gt;
* [https://glama.ai/mcp/servers/@lgazo/drawio-mcp-server Draw.io MCP Server on GLAMA]&lt;br /&gt;
* [https://modelcontextprotocol.io/ Model Context Protocol公式サイト]&lt;br /&gt;
* [https://app.diagrams.net/ Draw.io公式サイト]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Server (jgraph/drawio-mcp) ==&lt;br /&gt;
JGraph Ltd (Draw.ioの開発元) が公式に提供するMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
npmパッケージ名は &amp;lt;u&amp;gt;@drawio/mcp&amp;lt;/u&amp;gt; であり、Apache 2.0ライセンスで配布されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
前述の@lgazo/drawio-mcp-serverがブラウザ拡張機能経由でリアルタイムにDraw.ioを操作するのに対し、jgraph版はブラウザ拡張機能を必要としない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
代わりに、以下に示す4つの統合アプローチを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Draw.io 統合方式の一覧&lt;br /&gt;
! 方式 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| MCP App Server || チャット内にインラインでダイアグラムを表示する方式&amp;lt;br&amp;gt;インストール不要で、公式ホストエンドポイント (https://mcp.draw.io/mcp) を使用する。&lt;br /&gt;
|-&lt;br /&gt;
| MCP Tool Server || WebブラウザでDraw.ioエディタを開いてダイアグラムを表示する方式&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;@drawio/mcp&amp;lt;/u&amp;gt; パッケージをnpxで実行する。&lt;br /&gt;
|-&lt;br /&gt;
| Skill + CLI || &amp;lt;code&amp;gt;.drawio&amp;lt;/code&amp;gt; ファイルを生成し、draw.io DesktopアプリでPNG / SVG / PDFにエクスポートする方式&amp;lt;br&amp;gt;draw.io Desktopアプリのインストールが必要&lt;br /&gt;
|-&lt;br /&gt;
| Project Instructions || インストール不要で、Pythonスクリプトを使用してDraw.ioのURLを生成する方式&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応する入力フォーマットは、XML、CSV、Mermaid.jsの3種類である。&amp;lt;br&amp;gt;&lt;br /&gt;
Node.js 18.0.0以上が必要である (MCP Tool ServerおよびSkill + CLI使用時)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応するMCPクライアントは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Claude Desktop&lt;br /&gt;
* Claude Code (CLI)&lt;br /&gt;
* Cursor&lt;br /&gt;
* Windsurf&lt;br /&gt;
* その他のMCP対応クライアント&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 4つの統合アプローチ ==&lt;br /&gt;
jgraph版Draw.io MCPは、4つの異なる統合アプローチを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
用途に応じて適切なアプローチを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 4つの統合アプローチの比較&lt;br /&gt;
! アプローチ !! 動作方法 !! 出力形式 !! インストール !! 対応フォーマット !! 対応クライアント !! ベストユースケース&lt;br /&gt;
|-&lt;br /&gt;
| MCP App Server || チャット内にインライン表示 || インラインダイアグラム || 不要 (公式ホスト使用) || XML, CSV, Mermaid || Claude Desktop || チャット内でダイアグラムを確認したい場合&lt;br /&gt;
|-&lt;br /&gt;
| MCP Tool Server || ブラウザでDraw.ioエディタを開く || ブラウザ表示 || npxで実行 || XML, CSV, Mermaid || Claude Desktop, Cursor, Windsurf等 || ダイアグラムをDraw.ioエディタで編集したい場合&lt;br /&gt;
|-&lt;br /&gt;
| Skill + CLI || .drawioファイル生成 + エクスポート || .drawio, PNG, SVG, PDF || npm install + draw.io Desktop || XML || Claude Code || ファイルとして保存・エクスポートしたい場合&lt;br /&gt;
|-&lt;br /&gt;
| Project Instructions || PythonでURL生成 || ブラウザ表示 || 不要 (Pythonのみ) || XML || 全クライアント || インストールなしでダイアグラムを生成したい場合&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 動作要件 ==&lt;br /&gt;
==== 共通要件 ====&lt;br /&gt;
* インターネット接続&lt;br /&gt;
*: Draw.ioのWebアプリケーション (https://app.diagrams.net) へのアクセスが必要&lt;br /&gt;
* MCPクライアント&lt;br /&gt;
*: Claude Desktop、Claude Code、Cursor、Windsurf等のMCP対応クライアント&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP Tool Serverの要件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* npm (npxコマンドが利用可能であること)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Skill + CLIの要件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* npm または pnpm&lt;br /&gt;
* draw.io Desktopアプリ&lt;br /&gt;
*: エクスポート機能 (PNG / SVG / PDF) を使用する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP App Serverの要件 ====&lt;br /&gt;
* 追加のインストールは不要&lt;br /&gt;
* 公式ホストエンドポイント (https://mcp.draw.io/mcp) を使用&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Project Instructionsの要件 ====&lt;br /&gt;
* Python 3の実行環境&lt;br /&gt;
* 追加のパッケージインストールは不要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP Tool Serverのインストール ==&lt;br /&gt;
==== npxでの実行 (推奨) ====&lt;br /&gt;
グローバルインストール不要で、常に最新バージョンを使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== グローバルインストール ====&lt;br /&gt;
npmでグローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 drawio-mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソースからのインストール ====&lt;br /&gt;
GitHubリポジトリからソースコードを取得してビルドする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/jgraph/drawio-mcp.git&lt;br /&gt;
 cd drawio-mcp&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルド後、以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 node dist/tool-server.js&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルを編集して、MCP Tool Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/Claude/claude_desktop_config.json&lt;br /&gt;
* MacOS&lt;br /&gt;
*: ~/Library/Application Support/Claude/claude_desktop_config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\Claude\claude_desktop_config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;drawio-mcp&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@drawio/mcp&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeでの設定 ====&lt;br /&gt;
Claude Codeで使用する場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add drawio-mcp -- npx -y @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、設定ファイルを直接編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS / Linux&lt;br /&gt;
*: ~/.config/claude/config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\claude\config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容は、Claude Desktopと同じJSONフォーマットを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のMCPクライアントでの設定 ====&lt;br /&gt;
Cursor、Windsurf等の他のMCPクライアントでも使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
各クライアントの設定方法に従い、以下の情報を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt;&lt;br /&gt;
* 引数&lt;br /&gt;
*: &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;@drawio/mcp&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP App Serverの設定 ==&lt;br /&gt;
MCP App Serverは、チャット内にダイアグラムをインラインで表示する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
インストール不要で、公式ホストのエンドポイントを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ホストエンドポイント ====&lt;br /&gt;
JGraphが提供する公式エンドポイントを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://mcp.draw.io/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定で、上記URLをMCP App Serverとして登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セルフホスト (Node.js) ====&lt;br /&gt;
MCP App Serverをセルフホストする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @drawio/mcp --app-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトでは、ポート3000でHTTPサーバが起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 (stdio) ====&lt;br /&gt;
stdioトランスポートを使用してMCP App Serverを起動する場合は、以下の設定を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;drawio-app&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@drawio/mcp&amp;quot;, &amp;quot;--app-server&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cloudflare Workersへのデプロイ ====&lt;br /&gt;
MCP App ServerをCloudflare Workersにデプロイすることも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリのクローンとデプロイは以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/jgraph/drawio-mcp.git&lt;br /&gt;
 cd drawio-mcp&lt;br /&gt;
 npm install&lt;br /&gt;
 npx wrangler deploy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デプロイ後、Cloudflare WorkersのURLをMCPクライアントに設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : Skill + CLIの設定 ==&lt;br /&gt;
Skill + CLIは、&amp;lt;code&amp;gt;.drawio&amp;lt;/code&amp;gt;ファイルを生成し、draw.io DesktopアプリでPNG / SVG / PDFにエクスポートする方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* draw.io Desktopアプリ&lt;br /&gt;
*: エクスポート機能を使用するために必要&lt;br /&gt;
*: [https://github.com/jgraph/drawio-desktop/releases draw.io Desktop公式リリースページ] からダウンロード可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
グローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクト単位でインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== draw.io CLIの場所 ====&lt;br /&gt;
draw.io Desktopアプリのコマンドライン実行ファイルの場所は、OSにより異なる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;code&amp;gt;/Applications/draw.io.app/Contents/MacOS/draw.io&amp;lt;/code&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;code&amp;gt;drawio&amp;lt;/code&amp;gt; (PATHに含まれている場合)&lt;br /&gt;
*: または、AppImageの場所を直接指定する&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;code&amp;gt;C:\Program Files\draw.io\draw.io.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エクスポートフォーマット ====&lt;br /&gt;
Skill + CLIで対応しているエクスポートフォーマットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ エクスポートフォーマット&lt;br /&gt;
! フォーマット !! 拡張子 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Draw.io || .drawio || Draw.ioネイティブ形式 (XML)&lt;br /&gt;
|-&lt;br /&gt;
| PNG || .png || ラスター画像形式&lt;br /&gt;
|-&lt;br /&gt;
| SVG || .svg || ベクター画像形式&lt;br /&gt;
|-&lt;br /&gt;
| PDF || .pdf || PDF文書形式&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : Project Instructionsの設定 ==&lt;br /&gt;
Project Instructionsは、インストール不要でダイアグラムを生成する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
Pythonスクリプトを使用してDraw.ioのURLを生成し、ブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 概要 ====&lt;br /&gt;
MCPサーバのインストールが不要であり、全てのMCPクライアントで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの指示ファイル (CLAUDE.mdやcursor rules等) にDraw.io URLの生成方法を記述することで、LLMがPythonスクリプトを実行してダイアグラムを生成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セットアップ方法 ====&lt;br /&gt;
プロジェクトの指示ファイルに以下の内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 When generating diagrams, create a draw.io compatible XML representation&lt;br /&gt;
 and then generate a URL using the following Python code:&lt;br /&gt;
 &lt;br /&gt;
 import zlib, base64&lt;br /&gt;
 xml = &#039;&amp;lt;your draw.io XML&amp;gt;&#039;&lt;br /&gt;
 compressed = zlib.compress(xml.encode(&#039;utf-8&#039;), 9)[2:-4]&lt;br /&gt;
 encoded = base64.urlsafe_b64encode(compressed).decode(&#039;utf-8&#039;)&lt;br /&gt;
 url = f&#039;https://app.diagrams.net/#create={encoded}&#039;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作の仕組み ====&lt;br /&gt;
# LLMがDraw.io互換のXMLを生成する。&lt;br /&gt;
# Pythonのzlibで圧縮 (deflateRaw) を行う。&lt;br /&gt;
# base64でURLセーフエンコードを行う。&lt;br /&gt;
# https://app.diagrams.net/#create= の後にエンコード済みデータを付加してURLを生成する。&lt;br /&gt;
# 生成されたURLをWebブラウザで開くと、Draw.ioエディタにダイアグラムが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP Tool Serverのツール ==&lt;br /&gt;
MCP Tool Serverは、3つのツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
各ツールは、異なる入力フォーマットに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_xml ====&lt;br /&gt;
Draw.io XML形式のダイアグラムをブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_xmlのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || Draw.io XML形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_csv ====&lt;br /&gt;
CSV形式のデータからダイアグラムをWebブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_csvのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || CSV形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_mermaid ====&lt;br /&gt;
Mermaid.js形式のダイアグラムをブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_mermaidのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || Mermaid.js形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 使用方法 ==&lt;br /&gt;
==== MCP Tool Serverでの使用例 ====&lt;br /&gt;
MCP Tool Serverを使用する場合のプロンプト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Mermaidダイアグラムの場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下のMermaid形式でシーケンス図をDraw.ioで作成してください。&lt;br /&gt;
 sequenceDiagram&lt;br /&gt;
    Client-&amp;gt;&amp;gt;Server: HTTPリクエスト&lt;br /&gt;
    Server-&amp;gt;&amp;gt;Database: クエリ実行&lt;br /&gt;
    Database--&amp;gt;&amp;gt;Server: 結果返却&lt;br /&gt;
    Server--&amp;gt;&amp;gt;Client: HTTPレスポンス&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* CSVデータからダイアグラムを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下の組織データからCSV形式で組織図をDraw.ioで作成してください。&lt;br /&gt;
 CEO配下にCTO、CFO、COOの3つのポジションがあります。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* XMLダイアグラムの場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Webアプリケーションの3層アーキテクチャ図をDraw.io XMLで作成してください。&lt;br /&gt;
 フロントエンド、バックエンド、データベースの3層を含めてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Skill + CLIでの使用例 ====&lt;br /&gt;
Claude Code (CLI) でSkill + CLIを使用する場合は、&amp;lt;code&amp;gt;/drawio&amp;lt;/code&amp;gt; コマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 /drawio マイクロサービスのアーキテクチャ図を作成してください。&lt;br /&gt;
 各サービス間の通信方式も記載してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エクスポートを含む使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 /drawio ネットワーク構成図を作成して、PNGファイルとしてエクスポートしてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Project Instructionsでの使用例 ====&lt;br /&gt;
Project Instructionsを使用する場合のプロンプト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 システムのデプロイメントフロー図を作成して、Draw.ioで開けるURLを生成してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 動作の仕組み ==&lt;br /&gt;
==== MCP Tool Serverの処理フロー ====&lt;br /&gt;
MCP Tool Serverは、以下の手順でダイアグラムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアントからダイアグラムデータ (XML / CSV / Mermaid) を受信する。&lt;br /&gt;
# pakoライブラリを使用して、データをdeflateRaw圧縮する。&lt;br /&gt;
# 圧縮データをBase64エンコードする。&lt;br /&gt;
# https://app.diagrams.net/#create= の後にエンコード済みデータを付加したURLを生成する。&lt;br /&gt;
# 生成されたURLをWebブラウザで開き、Draw.ioエディタにダイアグラムを表示する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP App Serverの処理フロー ====&lt;br /&gt;
MCP App Serverは、以下の手順でダイアグラムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアントからダイアグラムデータを受信する。&lt;br /&gt;
# サーバ側でダイアグラムデータを処理する。&lt;br /&gt;
# チャットインターフェース内にダイアグラムをインラインで描画する。&lt;br /&gt;
# ユーザはチャット内で直接ダイアグラムを確認できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== URLの安全性 ====&lt;br /&gt;
MCP Tool ServerおよびProject Instructionsで生成されるURLは、ハッシュフラグメント方式 (&amp;lt;code&amp;gt;#create=&amp;lt;/code&amp;gt;) を使用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ハッシュフラグメント (&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 以降のデータ) は、Webブラウザからサーバに送信されない&lt;br /&gt;
*: そのため、ダイアグラムデータがDraw.ioのサーバに送信されることはない&lt;br /&gt;
* 全てのデータ処理はブラウザ内で完結する&lt;br /&gt;
* 機密性の高いダイアグラムデータも安全に扱うことができる&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : トラブルシューティング ==&lt;br /&gt;
==== npxが見つからない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.jsのバージョン確認&lt;br /&gt;
*: Node.js 18.0.0以上がインストールされていることを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;node --version&amp;lt;/code&amp;gt; コマンドでバージョンを確認する。&lt;br /&gt;
* npxの確認&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; コマンドでnpxが利用可能であることを確認する。&lt;br /&gt;
*: npxが見つからない場合は、Node.jsを再インストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラムが開かない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* インターネット接続の確認&lt;br /&gt;
*: https://app.diagrams.net にアクセスできることを確認する。&lt;br /&gt;
* Webブラウザの確認&lt;br /&gt;
*: デフォルトブラウザが設定されていることを確認する。&lt;br /&gt;
*: ポップアップブロッカーがURLの展開を妨げていないか確認する。&lt;br /&gt;
* URLの長さ制限&lt;br /&gt;
*: 非常に大きなダイアグラムの場合、URLの長さがブラウザの制限を超える可能性がある。&lt;br /&gt;
*: その場合は、Skill + CLIアプローチを使用してファイルとして生成することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== draw.io CLIでのエクスポートが失敗する場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* draw.io Desktopの確認&lt;br /&gt;
*: draw.io Desktopアプリがインストールされていることを確認する。&lt;br /&gt;
*: CLIコマンドがPATHに含まれていることを確認する。&lt;br /&gt;
* ディスプレイ環境の確認 (Linux)&lt;br /&gt;
*: LinuxでGUIなし環境の場合、&amp;lt;code&amp;gt;xvfb-run&amp;lt;/code&amp;gt; が必要になることがある。&lt;br /&gt;
*: &amp;lt;code&amp;gt;xvfb-run drawio --export --format png diagram.drawio&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopで認識されない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 設定ファイルの確認&lt;br /&gt;
*: &amp;lt;u&amp;gt;claude_desktop_config.jsonファイル&amp;lt;/u&amp;gt; のJSON形式が正しいことを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;mcpServers&amp;lt;/code&amp;gt; キーの下に正しく設定されていることを確認する。&lt;br /&gt;
* Claude Desktopの再起動&lt;br /&gt;
*: 設定ファイル編集後、Claude Desktopを再起動する。&lt;br /&gt;
* ログの確認&lt;br /&gt;
*: Claude Desktopのデバッグコンソール ([View] - [Toggle Developer Tools]) でエラーログを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Draw.io MCP Server | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,MCP,Model Context Protocol,Draw.io,Diagram,Flowchart,Architecture,UML,Sequence Diagram,Network Diagram,Claude,AI,Machine Learning,Node.js,TypeScript,Browser Extension,WebSocket,Visualization,jgraph,@drawio/mcp,MCP App Server,Mermaid,CSV,Skill,CLI&lt;br /&gt;
|description={{PAGENAME}} - Draw.io MCP Serverに関する包括的なガイド、コミュニティ版とJGraph公式版の両方を網羅したAIアシスタントによるダイアグラム作成と編集の自動化 | This page is {{PAGENAME}} in our wiki about Draw.io MCP servers and AI-powered diagram creation&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Draw.io&amp;diff=14628</id>
		<title>MCPサーバ - Draw.io</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Draw.io&amp;diff=14628"/>
		<updated>2026-04-09T15:16:45Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* インストール */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Draw.io MCP Server は、AI システムがDraw.io ダイアグラムをプログラマティックに制御・検査できるようにするMCP (Model Context Protocol) サーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
このMCPを使用することにより、Claude等のLLMがDraw.io上でフローチャート、シーケンス図、アーキテクチャ図、ネットワーク図等の様々なダイアグラムを自動的に作成・編集することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverは、以下に示すような機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
* ダイアグラムの検査機能 (選択セル取得、シェイプカテゴリ列挙、ページモデル取得)&lt;br /&gt;
* ダイアグラムの編集機能 (矩形追加、エッジ追加、カスタムシェイプ追加、セル削除)&lt;br /&gt;
* セルのプロパティ編集とスタイル適用&lt;br /&gt;
* カスタム属性の保存と管理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverは、WebSocket (デフォルトポート: 3333) を使用してブラウザ拡張機能経由でDraw.ioと通信する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、Claude Desktop、oterm、Zed等のMCPクライアントと統合することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Draw.io MCP Serverの最大の特徴は、Webブラウザ拡張機能を介してリアルタイムにDraw.ioダイアグラムを操作できることである。&amp;lt;br&amp;gt;&lt;br /&gt;
全てのダイアグラム処理機能は、TypeScriptで実装されており、Node.js 20以上で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Serverの機能 ==&lt;br /&gt;
==== ダイアグラム検査機能 ====&lt;br /&gt;
* 選択されたセルの取得 (get-selected-cells)&lt;br /&gt;
* シェイプカテゴリの列挙 (get-shape-categories)&lt;br /&gt;
* 特定のシェイプ情報の取得 (get-specific-shapes)&lt;br /&gt;
* ページ分割されたダイアグラムモデルの取得 (list-paged-model)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラム編集機能 ====&lt;br /&gt;
* 矩形の追加 (add-rectangle)&lt;br /&gt;
* エッジ (接続線) の追加 (add-edge)&lt;br /&gt;
* カスタムシェイプの追加 (add-custom-shape)&lt;br /&gt;
* セルの削除 (delete-cell)&lt;br /&gt;
* セルのプロパティ編集 (edit-cell)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スタイルとデータ管理 ====&lt;br /&gt;
* ライブラリスタイルの適用 (apply-library-style)&lt;br /&gt;
* カスタム属性の保存 (set-cell-data)&lt;br /&gt;
* シェイプのプロパティ変更&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応ダイアグラムタイプ ==&lt;br /&gt;
Draw.io MCP Serverは、Draw.ioで作成可能なすべてのダイアグラムタイプをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 対応ダイアグラムタイプ&lt;br /&gt;
|-&lt;br /&gt;
! タイプ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| フローチャート || プロセスフローと意思決定を視覚化&lt;br /&gt;
|-&lt;br /&gt;
| シーケンス図 || システムコンポーネント間の相互作用を時系列で表現&lt;br /&gt;
|-&lt;br /&gt;
| アーキテクチャ図 || システムアーキテクチャとコンポーネント構成を記述&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク図 || ネットワークトポロジーとデバイス接続を表現&lt;br /&gt;
|-&lt;br /&gt;
| データベース設計図 || データベーススキーマとER図を記述&lt;br /&gt;
|-&lt;br /&gt;
| UML図 || クラス図、アクティビティ図、ユースケース図等&lt;br /&gt;
|-&lt;br /&gt;
| マインドマップ || アイデアと概念の階層構造を視覚化&lt;br /&gt;
|-&lt;br /&gt;
| 組織図 || 組織構造と報告関係を表現&lt;br /&gt;
|-&lt;br /&gt;
| Ganttチャート || プロジェクトタイムラインとタスク管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== システム要件 ====&lt;br /&gt;
* Node.js 20以上&lt;br /&gt;
* Draw.io MCP Browser Extension (Chrome または Firefox)&lt;br /&gt;
* MCPクライアント (Claude Desktop、oterm、Zed等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 必須コンポーネント ====&lt;br /&gt;
* Draw.io MCP Server (TypeScript実装)&lt;br /&gt;
* Draw.io MCP Extension (ブラウザ拡張機能)&lt;br /&gt;
* app.diagrams.net へのアクセス&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ネットワーク要件 ====&lt;br /&gt;
* WebSocketポート (デフォルト: 3333) の利用可能性&lt;br /&gt;
* ファイアウォールでの指定ポートの開放&lt;br /&gt;
* ブラウザ拡張機能とサーバ間の通信許可&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Draw.io MCP Serverのインストール ====&lt;br /&gt;
Draw.io MCP Serverは、MCPクライアントの設定ファイルを編集することにより、自動的にインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す設定例を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/Claude/claude_desktop_config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\Claude\claude_desktop_config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
npmを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
pnpmを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;pnpm&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;dlx&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
yarnを使用する場合の設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;yarn&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;dlx&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopを再起動して、Draw.io MCP Serverが利用可能であることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeでの設定 ====&lt;br /&gt;
Claude Code (CLI) でも、Claude Desktopと同様の設定ファイルを使用してDraw.io MCP Serverを利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/claude/config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\claude\config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容は、Claude Desktopと同じである。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;drawio-mcp-server&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブラウザ拡張機能のインストール ====&lt;br /&gt;
Draw.io MCP Extensionをブラウザにインストールする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Google Chromeの場合 =====&lt;br /&gt;
# Chrome Web Storeから「Draw.io MCP Extension」を検索&lt;br /&gt;
# [追加] ボタンをクリックしてインストール&lt;br /&gt;
# 拡張機能がアクティブであることを確認&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Mozilla Firefoxの場合 =====&lt;br /&gt;
# Firefox Add-onsから &amp;lt;u&amp;gt;&amp;quot;Draw.io MCP Extension&amp;quot;&amp;lt;/u&amp;gt; を検索する。&lt;br /&gt;
# [Firefoxに追加]ボタンを押下してインストールする。&lt;br /&gt;
# 拡張機能がアクティブであることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== app.diagrams.netへのアクセス ====&lt;br /&gt;
# Webブラウザで app.diagrams.net を開く。&lt;br /&gt;
# Draw.io MCP Serverは、このページ上でダイアグラムを操作する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定とカスタマイズ ==&lt;br /&gt;
==== ポート設定 ====&lt;br /&gt;
Draw.io MCP Serverは、デフォルトでWebSocketポート3333を使用してブラウザ拡張機能と通信する。&amp;lt;br&amp;gt;&lt;br /&gt;
このポート番号は、カスタマイズすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;各MCPサーバインスタンスが独自のWebSocketサーバを起動しようとするため、同じポートを使う複数のインスタンスは共存できない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;例えば、複数のClaude CodeおよびClaude Desktopを起動してDraw.io MCP Serverを使用する場合、同じポート番号を使用するとエラーになる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、異なるポート番号を指定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムポートの設定例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;@lgazo/drawio-mcp-server&amp;quot;, &amp;quot;--extension-port&amp;quot;, &amp;quot;4000&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、ポート4000でWebSocket通信を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ブラウザ拡張機能側も同じポート番号を設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ拡張機能のポート設定&lt;br /&gt;
*# ブラウザ拡張機能のアイコンをクリックする。&lt;br /&gt;
*# 設定画面が表示される。&lt;br /&gt;
*# WebSocketポート番号を4000に変更する。&lt;br /&gt;
*# 保存して拡張機能を再読み込みする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HTTPトランスポートの使用 ====&lt;br /&gt;
リモートアクセス用にHTTPトランスポートを有効化することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトポートは3000である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPトランスポートの有効化例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;drawio&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;@lgazo/drawio-mcp-server&amp;quot;, &amp;quot;--transport&amp;quot;, &amp;quot;http&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、HTTP経由でMCPサーバにアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 利用可能なツール ==&lt;br /&gt;
==== get-selected-cells ====&lt;br /&gt;
選択されたセルの情報を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: ダイアグラム上で選択されているセル (シェイプ、エッジ) の詳細情報を取得する&lt;br /&gt;
*: セルID、スタイル、位置、サイズ等の属性を返す&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 選択されているセルの情報を取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== get-shape-categories ====&lt;br /&gt;
利用可能なシェイプカテゴリの一覧を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: Draw.ioライブラリで利用可能なシェイプカテゴリを列挙する&lt;br /&gt;
*: 各カテゴリに含まれるシェイプタイプを確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 利用可能なシェイプカテゴリを一覧表示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== get-specific-shapes ====&lt;br /&gt;
特定のシェイプ情報を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: 指定されたシェイプタイプの詳細情報を取得する&lt;br /&gt;
*: スタイルプロパティ、デフォルト設定、カスタマイズオプションを確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 矩形シェイプの詳細情報を取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== list-paged-model ====&lt;br /&gt;
ページ分割されたダイアグラムモデルを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 機能&lt;br /&gt;
*: 複数ページを持つダイアグラムの構造を取得する&lt;br /&gt;
*: 各ページのセル、階層、接続関係を確認できる&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 ダイアグラムの全ページモデルを取得してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-rectangle ====&lt;br /&gt;
ダイアグラムに矩形を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| x || number || X座標位置&lt;br /&gt;
|-&lt;br /&gt;
| y || number || Y座標位置&lt;br /&gt;
|-&lt;br /&gt;
| width || number || 矩形の幅&lt;br /&gt;
|-&lt;br /&gt;
| height || number || 矩形の高さ&lt;br /&gt;
|-&lt;br /&gt;
| style || string || スタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 表示テキスト (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 座標 (100, 100) に幅200、高さ100の矩形を追加してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-edge ====&lt;br /&gt;
2つのセルを接続するエッジ (接続線) を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| source || string || 接続元のセルID&lt;br /&gt;
|-&lt;br /&gt;
| target || string || 接続先のセルID&lt;br /&gt;
|-&lt;br /&gt;
| style || string || エッジのスタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || エッジのラベル (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルAとセルBを矢印で接続してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== add-custom-shape ====&lt;br /&gt;
カスタムシェイプを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| shapeType || string || シェイプタイプ (円、菱形、楕円等)&lt;br /&gt;
|-&lt;br /&gt;
| x || number || X座標位置&lt;br /&gt;
|-&lt;br /&gt;
| y || number || Y座標位置&lt;br /&gt;
|-&lt;br /&gt;
| width || number || シェイプの幅&lt;br /&gt;
|-&lt;br /&gt;
| height || number || シェイプの高さ&lt;br /&gt;
|-&lt;br /&gt;
| style || string || スタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 表示テキスト (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 座標 (200, 200) に円形シェイプを追加してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== delete-cell ====&lt;br /&gt;
指定されたセルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || 削除するセルのID&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」を削除してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== edit-cell ====&lt;br /&gt;
既存のセルのプロパティを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || 編集するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| style || string || 新しいスタイル設定 (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 新しい表示テキスト (オプション)&lt;br /&gt;
|-&lt;br /&gt;
| geometry || object || 新しい位置・サイズ情報 (オプション)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」のテキストを「データベース」に変更してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== apply-library-style ====&lt;br /&gt;
ライブラリで定義されたスタイルをセルに適用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || スタイルを適用するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| libraryName || string || ライブラリ名&lt;br /&gt;
|-&lt;br /&gt;
| styleName || string || スタイル名&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」にAWSライブラリのEC2スタイルを適用してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== set-cell-data ====&lt;br /&gt;
セルにカスタム属性データを保存する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パラメータ&lt;br /&gt;
|-&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| cellId || string || データを保存するセルのID&lt;br /&gt;
|-&lt;br /&gt;
| key || string || 属性のキー&lt;br /&gt;
|-&lt;br /&gt;
| value || string || 属性の値&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 セルID「cell-123」にカスタム属性「type=server」を保存してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
==== プロンプトの基本形式 ====&lt;br /&gt;
Claude DesktopでDraw.io MCP Serverを使用する際は、自然言語でダイアグラムの作成を依頼できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 基本形式 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server &amp;lt;指示内容&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロンプト内で、作成するダイアグラムの種類、含めるべき要素、レイアウト、スタイル等を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude AIが自動的に適切なツールを選択して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シンプルなフローチャートの作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server フローチャートを作成してください。&lt;br /&gt;
 スタートノード、処理ステップ3つ、判定ノード1つ、終了ノードを含めてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アーキテクチャ図の作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server データベースアーキテクチャ図を作成してください。&lt;br /&gt;
 ユーザサーバ、アプリケーションサーバ、データベースサーバを矩形で表現し、矢印で接続関係を示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マイクロサービス図の作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server マイクロサービスのシステムアーキテクチャを描画してください。&lt;br /&gt;
 各サービスを異なる色の矩形で表現し、それぞれの通信プロトコルをラベル付きの矢印で示してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スタイル指定を含む作成 ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server ネットワーク図を作成してください。&lt;br /&gt;
 ルータ、スイッチ、サーバを適切なアイコンで表現し、VLANごとに異なる背景色を使用してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数ページのダイアグラム ====&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 @Draw.io MCP Server システム設計書を作成してください。&lt;br /&gt;
 ページ1に概要図、ページ2に詳細アーキテクチャ、ページ3にデータフロー図を配置してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== システムアーキテクチャ ==&lt;br /&gt;
Draw.io MCP Serverは、3層アーキテクチャで構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アーキテクチャ概要 ====&lt;br /&gt;
コンポーネント構成&amp;lt;br&amp;gt;&lt;br /&gt;
* MCPクライアント層&lt;br /&gt;
*: Claude Desktop、oterm、Zed 等&lt;br /&gt;
* Draw.io MCP Server層&lt;br /&gt;
*: Node.jsベースのTypeScript実装&lt;br /&gt;
* ブラウザ拡張機能層&lt;br /&gt;
*: Draw.io MCP Extension (Chrome / Firefox)&lt;br /&gt;
* Draw.io層&lt;br /&gt;
*: app.diagrams.net のWebアプリケーション&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
通信フロー&amp;lt;br&amp;gt;&lt;br /&gt;
# Claude DesktopからDraw.io MCP Serverにツール呼び出しを送信する。&lt;br /&gt;
# Draw.io MCP ServerがWebSocket (ポート3333) 経由でブラウザ拡張機能に接続する。&lt;br /&gt;
# ブラウザ拡張機能がDraw.io APIを使用してダイアグラムを操作する。&lt;br /&gt;
# 結果がサーバ経由でClaudeに返却される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データフロー&amp;lt;br&amp;gt;&lt;br /&gt;
# プロンプトを入力する。(Claude Desktop)&lt;br /&gt;
# MCPツールを呼び出す。(Claude → Draw.io MCP Server)&lt;br /&gt;
# WebSocket通信を開始する。(Draw.io MCP Server → ブラウザ拡張機能)&lt;br /&gt;
# ダイアグラム操作 (ブラウザ拡張機能 → Draw.io)&lt;br /&gt;
# 結果が返却 (逆方向)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== サーバに接続できない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ拡張機能がインストールされているか確認&lt;br /&gt;
*: Chrome Web StoreまたはFirefox Add-onsから正しくインストールされていることを確認&lt;br /&gt;
* ブラウザ拡張機能がアクティブであるか確認&lt;br /&gt;
*: 拡張機能のアイコンが表示され、有効化されていることを確認&lt;br /&gt;
* Claude Desktopが再起動されているか確認&lt;br /&gt;
*: 設定ファイル編集後、必ずClaude Desktopを再起動する&lt;br /&gt;
* デフォルトポート3333が使用可能か確認&lt;br /&gt;
*: 他のアプリケーションがポート3333を使用していないか確認&lt;br /&gt;
*: ファイアウォールでポート3333が開放されているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラムが更新されない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* app.diagrams.netがブラウザで開かれているか確認&lt;br /&gt;
*: ブラウザで app.diagrams.net が開かれていることが必須&lt;br /&gt;
* WebSocket接続が確立されているか確認&lt;br /&gt;
*: ブラウザの開発者ツールでWebSocket接続状態を確認&lt;br /&gt;
* ペイロードサイズを確認&lt;br /&gt;
*: 大規模なダイアグラム操作の場合、処理に時間がかかる可能性がある&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツール呼び出しエラーが発生する ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.jsのバージョンの確認&lt;br /&gt;
*: Node.js 20以上がインストールされていることを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;node --version&amp;lt;/code&amp;gt; コマンドでバージョンを確認する。&lt;br /&gt;
* MCP Server設定ファイルの確認&lt;br /&gt;
*: claude_desktop_config.jsonファイルの設定が正しいかどうかを確認する。&lt;br /&gt;
*: JSON形式のエラーがないかどうかを確認する。&lt;br /&gt;
* サーバログの確認&lt;br /&gt;
*: Claude Desktopのデバッグコンソールでエラーログを確認する。&lt;br /&gt;
*: View &amp;gt; Toggle Developer Tools でコンソールを開く。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Firefox拡張機能が動作しない ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 拡張機能のバージョンの確認&lt;br /&gt;
*: バージョン1.3.0以降を使用していることを確認する。&lt;br /&gt;
* 拡張機能の権限の確認&lt;br /&gt;
*: app.diagrams.net へのアクセス権限が付与されているか確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Extension ==&lt;br /&gt;
==== ブラウザ拡張機能の役割 ====&lt;br /&gt;
Draw.io MCP Extensionは、Draw.io MCP ServerとDraw.io間の橋渡しを行うコンポーネントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* WebSocket経由でDraw.io MCP Serverと通信&lt;br /&gt;
* Draw.io APIを使用してダイアグラムを操作&lt;br /&gt;
* セル選択、シェイプ追加、エッジ追加、セル削除等の操作を実行&lt;br /&gt;
* ダイアグラムの状態をサーバに返却&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 拡張機能のインストール場所 ====&lt;br /&gt;
* Google Chrome&lt;br /&gt;
** Chrome Web Store から「Draw.io MCP Extension」を検索してインストール&lt;br /&gt;
** URL: chrome.google.com/webstore (検索キーワード: Draw.io MCP Extension)&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Mozilla Firefox&lt;br /&gt;
** Firefox Add-onsから &amp;lt;u&amp;gt;Draw.io MCP Extension&amp;lt;/u&amp;gt; を検索してインストール&lt;br /&gt;
** URL: addons.mozilla.org (検索キーワード: Draw.io MCP Extension)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 関連リソース ==&lt;br /&gt;
* [https://github.com/lgazo/drawio-mcp-server Draw.io MCP ServerのGitHub]&lt;br /&gt;
* [https://glama.ai/mcp/servers/@lgazo/drawio-mcp-server Draw.io MCP Server on GLAMA]&lt;br /&gt;
* [https://modelcontextprotocol.io/ Model Context Protocol公式サイト]&lt;br /&gt;
* [https://app.diagrams.net/ Draw.io公式サイト]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Draw.io MCP Server (jgraph/drawio-mcp) ==&lt;br /&gt;
JGraph Ltd (Draw.ioの開発元) が公式に提供するMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
npmパッケージ名は &amp;lt;u&amp;gt;@drawio/mcp&amp;lt;/u&amp;gt; であり、Apache 2.0ライセンスで配布されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
前述の@lgazo/drawio-mcp-serverがブラウザ拡張機能経由でリアルタイムにDraw.ioを操作するのに対し、jgraph版はブラウザ拡張機能を必要としない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
代わりに、以下に示す4つの統合アプローチを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Draw.io 統合方式の一覧&lt;br /&gt;
! 方式 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| MCP App Server || チャット内にインラインでダイアグラムを表示する方式&amp;lt;br&amp;gt;インストール不要で、公式ホストエンドポイント (https://mcp.draw.io/mcp) を使用する。&lt;br /&gt;
|-&lt;br /&gt;
| MCP Tool Server || WebブラウザでDraw.ioエディタを開いてダイアグラムを表示する方式&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;@drawio/mcp&amp;lt;/u&amp;gt; パッケージをnpxで実行する。&lt;br /&gt;
|-&lt;br /&gt;
| Skill + CLI || &amp;lt;code&amp;gt;.drawio&amp;lt;/code&amp;gt; ファイルを生成し、draw.io DesktopアプリでPNG / SVG / PDFにエクスポートする方式&amp;lt;br&amp;gt;draw.io Desktopアプリのインストールが必要&lt;br /&gt;
|-&lt;br /&gt;
| Project Instructions || インストール不要で、Pythonスクリプトを使用してDraw.ioのURLを生成する方式&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応する入力フォーマットは、XML、CSV、Mermaid.jsの3種類である。&amp;lt;br&amp;gt;&lt;br /&gt;
Node.js 18.0.0以上が必要である (MCP Tool ServerおよびSkill + CLI使用時)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応するMCPクライアントは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Claude Desktop&lt;br /&gt;
* Claude Code (CLI)&lt;br /&gt;
* Cursor&lt;br /&gt;
* Windsurf&lt;br /&gt;
* その他のMCP対応クライアント&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 4つの統合アプローチ ==&lt;br /&gt;
jgraph版Draw.io MCPは、4つの異なる統合アプローチを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
用途に応じて適切なアプローチを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 4つの統合アプローチの比較&lt;br /&gt;
! アプローチ !! 動作方法 !! 出力形式 !! インストール !! 対応フォーマット !! 対応クライアント !! ベストユースケース&lt;br /&gt;
|-&lt;br /&gt;
| MCP App Server || チャット内にインライン表示 || インラインダイアグラム || 不要 (公式ホスト使用) || XML, CSV, Mermaid || Claude Desktop || チャット内でダイアグラムを確認したい場合&lt;br /&gt;
|-&lt;br /&gt;
| MCP Tool Server || ブラウザでDraw.ioエディタを開く || ブラウザ表示 || npxで実行 || XML, CSV, Mermaid || Claude Desktop, Cursor, Windsurf等 || ダイアグラムをDraw.ioエディタで編集したい場合&lt;br /&gt;
|-&lt;br /&gt;
| Skill + CLI || .drawioファイル生成 + エクスポート || .drawio, PNG, SVG, PDF || npm install + draw.io Desktop || XML || Claude Code || ファイルとして保存・エクスポートしたい場合&lt;br /&gt;
|-&lt;br /&gt;
| Project Instructions || PythonでURL生成 || ブラウザ表示 || 不要 (Pythonのみ) || XML || 全クライアント || インストールなしでダイアグラムを生成したい場合&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 動作要件 ==&lt;br /&gt;
==== 共通要件 ====&lt;br /&gt;
* インターネット接続&lt;br /&gt;
*: Draw.ioのWebアプリケーション (https://app.diagrams.net) へのアクセスが必要&lt;br /&gt;
* MCPクライアント&lt;br /&gt;
*: Claude Desktop、Claude Code、Cursor、Windsurf等のMCP対応クライアント&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP Tool Serverの要件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* npm (npxコマンドが利用可能であること)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Skill + CLIの要件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* npm または pnpm&lt;br /&gt;
* draw.io Desktopアプリ&lt;br /&gt;
*: エクスポート機能 (PNG / SVG / PDF) を使用する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP App Serverの要件 ====&lt;br /&gt;
* 追加のインストールは不要&lt;br /&gt;
* 公式ホストエンドポイント (https://mcp.draw.io/mcp) を使用&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Project Instructionsの要件 ====&lt;br /&gt;
* Python 3の実行環境&lt;br /&gt;
* 追加のパッケージインストールは不要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP Tool Serverのインストール ==&lt;br /&gt;
==== npxでの実行 (推奨) ====&lt;br /&gt;
グローバルインストール不要で、常に最新バージョンを使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== グローバルインストール ====&lt;br /&gt;
npmでグローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 drawio-mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソースからのインストール ====&lt;br /&gt;
GitHubリポジトリからソースコードを取得してビルドする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/jgraph/drawio-mcp.git&lt;br /&gt;
 cd drawio-mcp&lt;br /&gt;
 npm install&lt;br /&gt;
 npm run build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルド後、以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 node dist/tool-server.js&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルを編集して、MCP Tool Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: ~/.config/Claude/claude_desktop_config.json&lt;br /&gt;
* MacOS&lt;br /&gt;
*: ~/Library/Application Support/Claude/claude_desktop_config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\Claude\claude_desktop_config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;drawio-mcp&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@drawio/mcp&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeでの設定 ====&lt;br /&gt;
Claude Codeで使用する場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add drawio-mcp -- npx -y @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、設定ファイルを直接編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS / Linux&lt;br /&gt;
*: ~/.config/claude/config.json&lt;br /&gt;
* Windows&lt;br /&gt;
*: %APPDATA%\claude\config.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定内容は、Claude Desktopと同じJSONフォーマットを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のMCPクライアントでの設定 ====&lt;br /&gt;
Cursor、Windsurf等の他のMCPクライアントでも使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
各クライアントの設定方法に従い、以下の情報を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt;&lt;br /&gt;
* 引数&lt;br /&gt;
*: &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;@drawio/mcp&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP App Serverの設定 ==&lt;br /&gt;
MCP App Serverは、チャット内にダイアグラムをインラインで表示する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
インストール不要で、公式ホストのエンドポイントを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ホストエンドポイント ====&lt;br /&gt;
JGraphが提供する公式エンドポイントを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://mcp.draw.io/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定で、上記URLをMCP App Serverとして登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セルフホスト (Node.js) ====&lt;br /&gt;
MCP App Serverをセルフホストする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @drawio/mcp --app-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトでは、ポート3000でHTTPサーバが起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopでの設定 (stdio) ====&lt;br /&gt;
stdioトランスポートを使用してMCP App Serverを起動する場合は、以下の設定を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;drawio-app&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@drawio/mcp&amp;quot;, &amp;quot;--app-server&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cloudflare Workersへのデプロイ ====&lt;br /&gt;
MCP App ServerをCloudflare Workersにデプロイすることも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリのクローンとデプロイは以下のコマンドで実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/jgraph/drawio-mcp.git&lt;br /&gt;
 cd drawio-mcp&lt;br /&gt;
 npm install&lt;br /&gt;
 npx wrangler deploy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デプロイ後、Cloudflare WorkersのURLをMCPクライアントに設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : Skill + CLIの設定 ==&lt;br /&gt;
Skill + CLIは、&amp;lt;code&amp;gt;.drawio&amp;lt;/code&amp;gt;ファイルを生成し、draw.io DesktopアプリでPNG / SVG / PDFにエクスポートする方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
* Node.js 18.0.0以上&lt;br /&gt;
* draw.io Desktopアプリ&lt;br /&gt;
*: エクスポート機能を使用するために必要&lt;br /&gt;
*: [https://github.com/jgraph/drawio-desktop/releases draw.io Desktop公式リリースページ] からダウンロード可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
グローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクト単位でインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install @drawio/mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== draw.io CLIの場所 ====&lt;br /&gt;
draw.io Desktopアプリのコマンドライン実行ファイルの場所は、OSにより異なる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;code&amp;gt;/Applications/draw.io.app/Contents/MacOS/draw.io&amp;lt;/code&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;code&amp;gt;drawio&amp;lt;/code&amp;gt; (PATHに含まれている場合)&lt;br /&gt;
*: または、AppImageの場所を直接指定する&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;code&amp;gt;C:\Program Files\draw.io\draw.io.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エクスポートフォーマット ====&lt;br /&gt;
Skill + CLIで対応しているエクスポートフォーマットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ エクスポートフォーマット&lt;br /&gt;
! フォーマット !! 拡張子 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Draw.io || .drawio || Draw.ioネイティブ形式 (XML)&lt;br /&gt;
|-&lt;br /&gt;
| PNG || .png || ラスター画像形式&lt;br /&gt;
|-&lt;br /&gt;
| SVG || .svg || ベクター画像形式&lt;br /&gt;
|-&lt;br /&gt;
| PDF || .pdf || PDF文書形式&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : Project Instructionsの設定 ==&lt;br /&gt;
Project Instructionsは、インストール不要でダイアグラムを生成する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
Pythonスクリプトを使用してDraw.ioのURLを生成し、ブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 概要 ====&lt;br /&gt;
MCPサーバのインストールが不要であり、全てのMCPクライアントで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの指示ファイル (CLAUDE.mdやcursor rules等) にDraw.io URLの生成方法を記述することで、LLMがPythonスクリプトを実行してダイアグラムを生成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セットアップ方法 ====&lt;br /&gt;
プロジェクトの指示ファイルに以下の内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 When generating diagrams, create a draw.io compatible XML representation&lt;br /&gt;
 and then generate a URL using the following Python code:&lt;br /&gt;
 &lt;br /&gt;
 import zlib, base64&lt;br /&gt;
 xml = &#039;&amp;lt;your draw.io XML&amp;gt;&#039;&lt;br /&gt;
 compressed = zlib.compress(xml.encode(&#039;utf-8&#039;), 9)[2:-4]&lt;br /&gt;
 encoded = base64.urlsafe_b64encode(compressed).decode(&#039;utf-8&#039;)&lt;br /&gt;
 url = f&#039;https://app.diagrams.net/#create={encoded}&#039;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作の仕組み ====&lt;br /&gt;
# LLMがDraw.io互換のXMLを生成する。&lt;br /&gt;
# Pythonのzlibで圧縮 (deflateRaw) を行う。&lt;br /&gt;
# base64でURLセーフエンコードを行う。&lt;br /&gt;
# https://app.diagrams.net/#create= の後にエンコード済みデータを付加してURLを生成する。&lt;br /&gt;
# 生成されたURLをWebブラウザで開くと、Draw.ioエディタにダイアグラムが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : MCP Tool Serverのツール ==&lt;br /&gt;
MCP Tool Serverは、3つのツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
各ツールは、異なる入力フォーマットに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_xml ====&lt;br /&gt;
Draw.io XML形式のダイアグラムをブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_xmlのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || Draw.io XML形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_csv ====&lt;br /&gt;
CSV形式のデータからダイアグラムをWebブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_csvのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || CSV形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== open_drawio_mermaid ====&lt;br /&gt;
Mermaid.js形式のダイアグラムをブラウザで開く。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ open_drawio_mermaidのパラメータ&lt;br /&gt;
! パラメータ !! 型 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| content || string || はい || Mermaid.js形式のダイアグラムデータ&lt;br /&gt;
|-&lt;br /&gt;
| lightbox || boolean || いいえ || 読み取り専用のライトボックスモードで開く。(デフォルト: false)&lt;br /&gt;
|-&lt;br /&gt;
| dark || boolean || いいえ || ダークモードで表示する。(デフォルト: false)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 使用方法 ==&lt;br /&gt;
==== MCP Tool Serverでの使用例 ====&lt;br /&gt;
MCP Tool Serverを使用する場合のプロンプト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Mermaidダイアグラムの場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下のMermaid形式でシーケンス図をDraw.ioで作成してください。&lt;br /&gt;
 sequenceDiagram&lt;br /&gt;
    Client-&amp;gt;&amp;gt;Server: HTTPリクエスト&lt;br /&gt;
    Server-&amp;gt;&amp;gt;Database: クエリ実行&lt;br /&gt;
    Database--&amp;gt;&amp;gt;Server: 結果返却&lt;br /&gt;
    Server--&amp;gt;&amp;gt;Client: HTTPレスポンス&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* CSVデータからダイアグラムを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下の組織データからCSV形式で組織図をDraw.ioで作成してください。&lt;br /&gt;
 CEO配下にCTO、CFO、COOの3つのポジションがあります。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* XMLダイアグラムの場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Webアプリケーションの3層アーキテクチャ図をDraw.io XMLで作成してください。&lt;br /&gt;
 フロントエンド、バックエンド、データベースの3層を含めてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Skill + CLIでの使用例 ====&lt;br /&gt;
Claude Code (CLI) でSkill + CLIを使用する場合は、&amp;lt;code&amp;gt;/drawio&amp;lt;/code&amp;gt; コマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 /drawio マイクロサービスのアーキテクチャ図を作成してください。&lt;br /&gt;
 各サービス間の通信方式も記載してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エクスポートを含む使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 使用例 :&lt;br /&gt;
 &lt;br /&gt;
 /drawio ネットワーク構成図を作成して、PNGファイルとしてエクスポートしてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Project Instructionsでの使用例 ====&lt;br /&gt;
Project Instructionsを使用する場合のプロンプト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 システムのデプロイメントフロー図を作成して、Draw.ioで開けるURLを生成してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : 動作の仕組み ==&lt;br /&gt;
==== MCP Tool Serverの処理フロー ====&lt;br /&gt;
MCP Tool Serverは、以下の手順でダイアグラムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアントからダイアグラムデータ (XML / CSV / Mermaid) を受信する。&lt;br /&gt;
# pakoライブラリを使用して、データをdeflateRaw圧縮する。&lt;br /&gt;
# 圧縮データをBase64エンコードする。&lt;br /&gt;
# https://app.diagrams.net/#create= の後にエンコード済みデータを付加したURLを生成する。&lt;br /&gt;
# 生成されたURLをWebブラウザで開き、Draw.ioエディタにダイアグラムを表示する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP App Serverの処理フロー ====&lt;br /&gt;
MCP App Serverは、以下の手順でダイアグラムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアントからダイアグラムデータを受信する。&lt;br /&gt;
# サーバ側でダイアグラムデータを処理する。&lt;br /&gt;
# チャットインターフェース内にダイアグラムをインラインで描画する。&lt;br /&gt;
# ユーザはチャット内で直接ダイアグラムを確認できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== URLの安全性 ====&lt;br /&gt;
MCP Tool ServerおよびProject Instructionsで生成されるURLは、ハッシュフラグメント方式 (&amp;lt;code&amp;gt;#create=&amp;lt;/code&amp;gt;) を使用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ハッシュフラグメント (&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 以降のデータ) は、Webブラウザからサーバに送信されない&lt;br /&gt;
*: そのため、ダイアグラムデータがDraw.ioのサーバに送信されることはない&lt;br /&gt;
* 全てのデータ処理はブラウザ内で完結する&lt;br /&gt;
* 機密性の高いダイアグラムデータも安全に扱うことができる&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== jgraph版 : トラブルシューティング ==&lt;br /&gt;
==== npxが見つからない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.jsのバージョン確認&lt;br /&gt;
*: Node.js 18.0.0以上がインストールされていることを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;node --version&amp;lt;/code&amp;gt; コマンドでバージョンを確認する。&lt;br /&gt;
* npxの確認&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; コマンドでnpxが利用可能であることを確認する。&lt;br /&gt;
*: npxが見つからない場合は、Node.jsを再インストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ダイアグラムが開かない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* インターネット接続の確認&lt;br /&gt;
*: https://app.diagrams.net にアクセスできることを確認する。&lt;br /&gt;
* Webブラウザの確認&lt;br /&gt;
*: デフォルトブラウザが設定されていることを確認する。&lt;br /&gt;
*: ポップアップブロッカーがURLの展開を妨げていないか確認する。&lt;br /&gt;
* URLの長さ制限&lt;br /&gt;
*: 非常に大きなダイアグラムの場合、URLの長さがブラウザの制限を超える可能性がある。&lt;br /&gt;
*: その場合は、Skill + CLIアプローチを使用してファイルとして生成することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== draw.io CLIでのエクスポートが失敗する場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* draw.io Desktopの確認&lt;br /&gt;
*: draw.io Desktopアプリがインストールされていることを確認する。&lt;br /&gt;
*: CLIコマンドがPATHに含まれていることを確認する。&lt;br /&gt;
* ディスプレイ環境の確認 (Linux)&lt;br /&gt;
*: LinuxでGUIなし環境の場合、&amp;lt;code&amp;gt;xvfb-run&amp;lt;/code&amp;gt; が必要になることがある。&lt;br /&gt;
*: &amp;lt;code&amp;gt;xvfb-run drawio --export --format png diagram.drawio&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopで認識されない場合 ====&lt;br /&gt;
以下の項目を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 設定ファイルの確認&lt;br /&gt;
*: &amp;lt;u&amp;gt;claude_desktop_config.jsonファイル&amp;lt;/u&amp;gt; のJSON形式が正しいことを確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;mcpServers&amp;lt;/code&amp;gt; キーの下に正しく設定されていることを確認する。&lt;br /&gt;
* Claude Desktopの再起動&lt;br /&gt;
*: 設定ファイル編集後、Claude Desktopを再起動する。&lt;br /&gt;
* ログの確認&lt;br /&gt;
*: Claude Desktopのデバッグコンソール ([View] - [Toggle Developer Tools]) でエラーログを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Draw.io MCP Server | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,MCP,Model Context Protocol,Draw.io,Diagram,Flowchart,Architecture,UML,Sequence Diagram,Network Diagram,Claude,AI,Machine Learning,Node.js,TypeScript,Browser Extension,WebSocket,Visualization,jgraph,@drawio/mcp,MCP App Server,Mermaid,CSV,Skill,CLI&lt;br /&gt;
|description={{PAGENAME}} - Draw.io MCP Serverに関する包括的なガイド、コミュニティ版とJGraph公式版の両方を網羅したAIアシスタントによるダイアグラム作成と編集の自動化 | This page is {{PAGENAME}} in our wiki about Draw.io MCP servers and AI-powered diagram creation&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_zai-mcp-server&amp;diff=14627</id>
		<title>MCPサーバ - zai-mcp-server</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_zai-mcp-server&amp;diff=14627"/>
		<updated>2026-04-09T12:22:03Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* 設定方法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
zai-mcp-serverは、GLM-5モデルを活用した画像・動画分析機能を提供するMCP (Model Context Protocol) サーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCode環境において、このサーバを導入することで、単純な画像説明から高度な技術図面の理解、エラー診断、UIデザインからのコード生成まで、幅広い視覚分析タスクを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeには標準で &amp;lt;u&amp;gt;look_at&amp;lt;/u&amp;gt; という画像分析ツールが搭載されているが、zai-mcp-serverはより特化した機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、スクリーンショットからのテキスト抽出 (OCR)、エラー画面の診断、UIスクリーンショットからのコード生成等、特定のタスクに最適化された専用ツールが用意されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらのツールは、ローカルファイルパスまたはURLを指定して使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
各ツールには &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; パラメータがあり、分析の指示を詳細に記述することにより、より精度の高い結果が得られる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバ設定を追加するだけで完了する。&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーは z.ai から取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ツール一覧 ==&lt;br /&gt;
zai-mcp-serverが提供するツールの一覧を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ zai-mcp-server ツール一覧&lt;br /&gt;
! ツール名 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| ui_to_artifact || UIスクリーンショットからコード、プロンプト、仕様、説明を生成する。&lt;br /&gt;
|-&lt;br /&gt;
| extract_text_from_screenshot || スクリーンショットからテキストを抽出する (OCR)。&lt;br /&gt;
|-&lt;br /&gt;
| diagnose_error_screenshot || エラー画面やスタックトレースを診断する。&lt;br /&gt;
|-&lt;br /&gt;
| understand_technical_diagram || 技術図面 (アーキテクチャ図、UML、ER図、フローチャート) を理解する。&lt;br /&gt;
|-&lt;br /&gt;
| analyze_data_visualization || チャート、グラフ、ダッシュボードを分析する。&lt;br /&gt;
|-&lt;br /&gt;
| ui_diff_check || 2つのUIスクリーンショットを比較する。&lt;br /&gt;
|-&lt;br /&gt;
| analyze_image || 汎用的な画像分析を行う (他の特化ツールが合わない場合のフォールバック)。&lt;br /&gt;
|-&lt;br /&gt;
| analyze_video || 動画の内容を分析する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== look_at との使い分け ==&lt;br /&gt;
OpenCodeには &amp;lt;u&amp;gt;look_at&amp;lt;/u&amp;gt; というビルトインの画像分析ツールが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
zai-mcp-serverツールと &amp;lt;u&amp;gt;look_at&amp;lt;/u&amp;gt; の使い分けの基準を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== look_atを使用する場合 ====&lt;br /&gt;
* PDF、画像、図の一般的な分析・要約&lt;br /&gt;
*: ドキュメントからの情報抽出&lt;br /&gt;
*: 「この画像は何？」というシンプルな質問&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== zai-mcp-serverツールを使用する場合 ====&lt;br /&gt;
* 特化したタスク (OCR、UIからコード生成、エラー診断等)&lt;br /&gt;
*: より精度の高い分析が必要な場合&lt;br /&gt;
*: 動画の分析が必要な場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 共通パラメータ ==&lt;br /&gt;
全てのツールで共通するパラメータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通パラメータ&lt;br /&gt;
! パラメータ !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || ○ || 画像のローカルパス または URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || ○ || 何をしてほしいかの指示を記述する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
動画分析ツール (&amp;lt;u&amp;gt;analyze_video&amp;lt;/u&amp;gt;) の場合は、&amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; の代わりに &amp;lt;code&amp;gt;video_source&amp;lt;/code&amp;gt; を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 各ツールの詳細 ==&lt;br /&gt;
==== ui_to_artifact ====&lt;br /&gt;
UIスクリーンショットからコード、プロンプト、仕様書、または説明文を生成するツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ui_to_artifact パラメータ&lt;br /&gt;
! パラメータ !! 値 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || 画像パス or URL || UIスクリーンショットの画像を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;output_type&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; || フロントエンドコードを生成する。&lt;br /&gt;
|- &lt;br /&gt;
| || &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || AIプロンプトを生成する。&lt;br /&gt;
|-&lt;br /&gt;
| || &amp;lt;code&amp;gt;spec&amp;lt;/code&amp;gt; || デザイン仕様書を生成する。&lt;br /&gt;
|-&lt;br /&gt;
| || &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; || 自然言語による説明を生成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || 文字列 || 生成に関する詳細な指示を記述する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 image_source: &amp;quot;/home/user/ui-mockup.png&amp;quot;&lt;br /&gt;
 output_type: &amp;quot;code&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;Reactコンポーネントとして実装してください。Tailwind CSSを使用。&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールはUIデザインのモックアップ画像から実装コードを生成する場合に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== extract_text_from_screenshot ====&lt;br /&gt;
スクリーンショットからテキストを抽出するOCRツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ extract_text_from_screenshot パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || スクリーンショットの画像パス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || テキスト抽出の指示を記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;programming_language&amp;lt;/code&amp;gt; || (任意) コードが含まれる場合、プログラミング言語を指定する。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;javascript&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;空欄の場合は自動検出される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 image_source: &amp;quot;/home/user/terminal-output.png&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;ターミナル出力のテキストを抽出してください。&amp;quot;&lt;br /&gt;
 programming_language: &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールはターミナル出力、ドキュメント、コードのスクリーンショットからテキストを抽出する場合に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== diagnose_error_screenshot ====&lt;br /&gt;
エラー画面やスタックトレースを診断し、解決策を提案するツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ diagnose_error_screenshot パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || エラー画面の画像パス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || エラーに関する質問や診断の指示を記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; || (任意) エラーが発生した状況の追加情報を記述する。&amp;lt;br&amp;gt;例: 「npm install実行時に発生」&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 image_source: &amp;quot;/home/user/error-stacktrace.png&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;このエラーの原因と解決策を教えてください。&amp;quot;&lt;br /&gt;
 context: &amp;quot;npm install 実行時に発生しました。&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールはエラーメッセージやスタックトレースの画像から原因を特定し、解決策を得る場合に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== understand_technical_diagram ====&lt;br /&gt;
技術図面 (アーキテクチャ図、UML、ER図、フローチャート等) を理解・説明するツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ understand_technical_diagram パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || 技術図面の画像パス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || 図面から何を理解したいかの指示を記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;diagram_type&amp;lt;/code&amp;gt; || (任意) 図面の種類を指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;architecture&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;flowchart&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;uml&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;er-diagram&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;sequence&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;空欄の場合は自動検出される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 image_source: &amp;quot;/home/user/system-architecture.png&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;各コンポーネントの役割とデータフローを説明してください。&amp;quot;&lt;br /&gt;
 diagram_type: &amp;quot;architecture&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールはシステム構成図、データベース設計図、シーケンス図等の技術図面を理解する場合に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== analyze_data_visualization ====&lt;br /&gt;
チャート、グラフ、ダッシュボード等のデータ可視化を分析するツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ analyze_data_visualization パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || データ可視化の画像パス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || 何を抽出・分析したいかの指示を記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;analysis_focus&amp;lt;/code&amp;gt; || (任意) 分析の焦点を指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;trends&amp;lt;/code&amp;gt; (傾向) / &amp;lt;code&amp;gt;anomalies&amp;lt;/code&amp;gt; (異常値) / &amp;lt;code&amp;gt;comparisons&amp;lt;/code&amp;gt; (比較) / &amp;lt;code&amp;gt;performance metrics&amp;lt;/code&amp;gt; (パフォーマンス指標)&amp;lt;br&amp;gt;空欄の場合は包括的な分析が行われる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 image_source: &amp;quot;/home/user/sales-chart.png&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;売上の傾向と異常値を分析してください。&amp;quot;&lt;br /&gt;
 analysis_focus: &amp;quot;trends&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールは売上グラフ、パフォーマンスダッシュボード、統計チャート等のデータ可視化を分析する場合に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ui_diff_check ====&lt;br /&gt;
2つのUIスクリーンショットを比較し、視覚的な差異を特定するツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ui_diff_check パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;expected_image_source&amp;lt;/code&amp;gt; || 期待値 (基準) となるUI画像のパス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actual_image_source&amp;lt;/code&amp;gt; || 実装されたUI画像のパス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || 比較の観点や注目点の指示を記述する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 expected_image_source: &amp;quot;/home/user/design-mockup.png&amp;quot;&lt;br /&gt;
 actual_image_source: &amp;quot;/home/user/implementation-screenshot.png&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;デザインとの差異を具体的に指摘してください。&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールはデザインモックアップと実装の比較、UIのリグレッションテストに使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== analyze_image ====&lt;br /&gt;
汎用的な画像分析ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
他の特化ツールが適合しない場合のフォールバックとして使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ analyze_image パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image_source&amp;lt;/code&amp;gt; || 画像のパス or URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || 分析の指示を詳細に記述する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 image_source: &amp;quot;/home/user/photo.jpg&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;この画像に写っているものを詳しく説明してください。&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールは一般的な画像の説明、写真の分析等に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== analyze_video ====&lt;br /&gt;
動画の内容を分析するツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== パラメータ =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ analyze_video パラメータ&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;video_source&amp;lt;/code&amp;gt; || 動画のパス or URL&amp;lt;br&amp;gt;対応形式: MP4、MOV、M4V&amp;lt;br&amp;gt;最大ファイルサイズ: 8[MB]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; || 何を分析・理解したいかの指示を記述する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
 video_source: &amp;quot;/home/user/demo.mp4&amp;quot;&lt;br /&gt;
 prompt: &amp;quot;動画内で行われている操作手順をステップごとに説明してください。&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このツールはデモ動画の分析、操作手順の抽出、シーンの理解等に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== クイックリファレンス ==&lt;br /&gt;
タスク別の推奨ツールを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ タスク別推奨ツール&lt;br /&gt;
! やりたいこと !! 推奨ツール&lt;br /&gt;
|-&lt;br /&gt;
| UIデザインからコード生成 || ui_to_artifact (&amp;lt;code&amp;gt;output_type: &amp;quot;code&amp;quot;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| エラー画面の原因を知りたい || diagnose_error_screenshot&lt;br /&gt;
|-&lt;br /&gt;
| 画像からテキストを抽出 || extract_text_from_screenshot&lt;br /&gt;
|-&lt;br /&gt;
| システム図を理解したい || understand_technical_diagram&lt;br /&gt;
|-&lt;br /&gt;
| グラフからトレンドを読む || analyze_data_visualization&lt;br /&gt;
|-&lt;br /&gt;
| デザインと実装を比較 || ui_diff_check&lt;br /&gt;
|-&lt;br /&gt;
| 動画の内容を理解 || analyze_video&lt;br /&gt;
|-&lt;br /&gt;
| その他の画像分析 || analyze_image または &amp;lt;u&amp;gt;look_at&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定方法 ==&lt;br /&gt;
==== opencode.jsonへの追加 ====&lt;br /&gt;
zai-mcp-serverを使用するには、&amp;lt;u&amp;gt;opencode.jsonファイル&amp;lt;/u&amp;gt; の &amp;lt;code&amp;gt;mcp&amp;lt;/code&amp;gt; フィールドに設定を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;zai-mcp-server&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@z_ai/mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;environment&amp;quot;: {&lt;br /&gt;
         &amp;quot;Z_AI_API_KEY&amp;quot;: &amp;quot;&amp;lt;Z.AIのAPIキー&amp;gt;&amp;quot;,&lt;br /&gt;
         &amp;quot;Z_AI_MODE&amp;quot;: &amp;quot;ZAI&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Node.js v22以降が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、キャッシュされた古いバージョンが使用される場合があるため、挙動がおかしい時は &amp;lt;code&amp;gt;@z_ai/mcp-server@latest&amp;lt;/code&amp;gt; を指定、または、npxキャッシュを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # npxキャッシュの削除方法&lt;br /&gt;
 &lt;br /&gt;
 npx clear-npx-cache&lt;br /&gt;
 &lt;br /&gt;
 または&lt;br /&gt;
 &lt;br /&gt;
 ## キャッシュの場所を確認&lt;br /&gt;
 ## 一般的に、~/.npm/_npx に npxキャッシュが存在する&lt;br /&gt;
 npm config get cache&lt;br /&gt;
 rm -rf ~/.npm/_npx&lt;br /&gt;
 &lt;br /&gt;
 ## キャッシュを削除した後、最新バージョンが取得する&lt;br /&gt;
 npx -y @z_ai/mcp-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== APIキーの取得 ====&lt;br /&gt;
APIキーは [https://z.ai z.ai] から取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定の確認 ====&lt;br /&gt;
設定が正しく追加されている場合、OpenCode起動時にzai-mcp-serverが読み込まれ、ツール一覧に &amp;lt;code&amp;gt;zai-mcp-server_*&amp;lt;/code&amp;gt; 形式のツールが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
* 動画ファイルは最大8[MB]まで対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
*: 大きなファイルは事前に圧縮または分割することを推奨する。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 各ツールは特定の用途に最適化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
*: 適切なツールを選択することで、より精度の高い結果が得られる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;prompt&amp;lt;/code&amp;gt; パラメータは詳細に記述するほど、期待通りの結果が得やすくなる。&amp;lt;br&amp;gt;&lt;br /&gt;
*: 具体的な指示を含めることを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 関連情報 ==&lt;br /&gt;
* [https://z.ai Z.AIの公式サイト]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,zai-mcp-server,GLM-5,画像分析,OCR,UI分析,動画分析,AI,OpenCode,MCP&lt;br /&gt;
|description={{PAGENAME}} - GLM-5モデルを使用した画像・動画分析ツールの使い方と設定方法 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14626</id>
		<title>インストール - OpenCode</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14626"/>
		<updated>2026-04-09T11:26:29Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Step 6 : Tauriビルドの実行 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OpenCodeは、オープンソースのAIコーディングエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要な特徴として、以下が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート&lt;br /&gt;
* 2026年1月にGitHub Copilotとの公式パートナーシップを発表&lt;br /&gt;
* プライバシー重視の設計&lt;br /&gt;
*: コードは送信されず、ローカルでの処理を優先&lt;br /&gt;
* CLI、TUI、Desktop アプリ、IDE拡張機能、Webインターフェースを提供&lt;br /&gt;
* MCP (Model Context Protocol) とLSP (Language Server Protocol) をサポート&lt;br /&gt;
* 組み込みエージェント&lt;br /&gt;
** build (開発用)&lt;br /&gt;
** plan (読み取り専用分析)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。&amp;lt;br&amp;gt;&lt;br /&gt;
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主な機能 ==&lt;br /&gt;
OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TUI (Bubble Tea) || ターミナルベースの対話型インターフェース&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロバイダ対応 || 75以上のLLMプロバイダをサポート&lt;br /&gt;
|-&lt;br /&gt;
| セッション管理 || 会話履歴の保存、復元、エクスポート&lt;br /&gt;
|-&lt;br /&gt;
| ツール統合 || ファイル操作、Bash実行、テスト実行等&lt;br /&gt;
|-&lt;br /&gt;
| MCP (Model Context Protocol) || 外部ツールとの統合プロトコル&lt;br /&gt;
|-&lt;br /&gt;
| LSP (Language Server Protocol) || 25以上の組み込みLSPサーバーによる言語サーバーとの連携&lt;br /&gt;
|-&lt;br /&gt;
| 組み込みエージェント || build (開発用)&amp;lt;br&amp;gt;plan (読み取り専用分析)&amp;lt;br&amp;gt;general (調査用)&amp;lt;br&amp;gt;explore (コード探索用)&lt;br /&gt;
|-&lt;br /&gt;
| Desktop アプリ || Tauri v2ベースのネイティブアプリ&lt;br /&gt;
|-&lt;br /&gt;
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張&lt;br /&gt;
|-&lt;br /&gt;
| カスタムコマンド || &amp;lt;u&amp;gt;.opencode/commands/&amp;lt;/u&amp;gt; ディレクトリ内でユーザ定義コマンド作成&lt;br /&gt;
|-&lt;br /&gt;
| Git統合 || &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; コマンドでGitバック付きの変更管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応AIプロバイダとモデル ==&lt;br /&gt;
OpenCodeは、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要プロバイダ一覧 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要プロバイダ一覧&lt;br /&gt;
! プロバイダ !! 認証方法 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Anthropic || APIキー (&amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt;) || Claude 4.x系をサポート&lt;br /&gt;
|-&lt;br /&gt;
| OpenAI || APIキー (&amp;lt;code&amp;gt;OPENAI_API_KEY&amp;lt;/code&amp;gt;) || GPT-4o、o3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| Google || APIキー (&amp;lt;code&amp;gt;GOOGLE_API_KEY&amp;lt;/code&amp;gt;) || Gemini 3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Copilot || GitHub認証 (OAuth) || &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証&lt;br /&gt;
|-&lt;br /&gt;
| Z.AI || APIキー || GLM-5、GLM-4.7等をサポート&amp;lt;br&amp;gt;GLM Coding Plan対応&lt;br /&gt;
|-&lt;br /&gt;
| AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Azure OpenAI || Azureエンドポイント || OpenAIモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Ollama || ローカル実行 (認証不要) || ローカルモデルの実行&lt;br /&gt;
|-&lt;br /&gt;
| OpenRouter || APIキー || 複数プロバイダのルーティング&lt;br /&gt;
|-&lt;br /&gt;
| Groq || APIキー || 高速推論&lt;br /&gt;
|-&lt;br /&gt;
| Together AI || APIキー || オープンソースモデル&lt;br /&gt;
|-&lt;br /&gt;
| Fireworks AI || APIキー || 高速推論&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 推奨モデル ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 用途別推奨モデル&lt;br /&gt;
! 用途 !! 推奨モデル&lt;br /&gt;
|-&lt;br /&gt;
| 高精度コーディング || Claude Sonnet 4.5、GPT-4o&lt;br /&gt;
|-&lt;br /&gt;
| 高速処理 || Claude Haiku 4.5、Gemini 2.5 Flash&lt;br /&gt;
|-&lt;br /&gt;
| 複雑な推論 || Claude Opus 4.6、o3&lt;br /&gt;
|-&lt;br /&gt;
| ローカル実行 || Qwen 2.5 Coder (Ollama)&lt;br /&gt;
|-&lt;br /&gt;
| コスト効率重視 || GLM-4.7、GLM-5 (Z.AI Coding Plan)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ローカルモデル (Ollama) ====&lt;br /&gt;
Ollamaを使用することで、ローカル環境でモデルを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Ollamaのインストール =====&lt;br /&gt;
Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://ollama.com/install.sh | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== モデルのダウンロード =====&lt;br /&gt;
Ollamaでモデルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ollama pull qwen2.5-coder&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== OpenCodeでの設定 =====&lt;br /&gt;
&amp;lt;code&amp;gt;opencode.json&amp;lt;/code&amp;gt; でOllamaプロバイダを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;ollama/qwen2.5-coder&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
OpenCodeをインストールするには、以下の前提条件を満たす必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 標準インストール時の前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 標準インストール時の前提条件&lt;br /&gt;
! 要件 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux、MacOS、Windows&lt;br /&gt;
|-&lt;br /&gt;
| Node.js || npm経由のインストールに必要 (Node.js 18以上)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || AIプロバイダへの接続に必要&lt;br /&gt;
|-&lt;br /&gt;
| AIプロバイダのAPIキー || 使用するプロバイダのAPIキーまたは認証情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
OpenCodeのインストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クイックインストール (Linux) ====&lt;br /&gt;
公式のインストールスクリプトを使用してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://opencode.ai/install | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Homebrew (MacOS) ====&lt;br /&gt;
Homebrewを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== npm (全プラットフォーム) ====&lt;br /&gt;
npmを使用してグローバルインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows (Scoop / Chocolatey) ====&lt;br /&gt;
Windowsでは、ScoopまたはChocolateyを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Scoopでのインストール =====&lt;br /&gt;
 scoop install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Chocolateyでのインストール =====&lt;br /&gt;
 choco install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーション ====&lt;br /&gt;
[https://opencode.ai/download OpenCodeの公式Webサイト]にアクセスして、デスクトップアプリケーションをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プラットフォーム:&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux (deb、rpm)&lt;br /&gt;
* MacOS (dmg)&lt;br /&gt;
* Windows (exe)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== バージョン確認 ====&lt;br /&gt;
インストール後、バージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 初期設定 ==&lt;br /&gt;
OpenCodeの初期設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロバイダの認証 ====&lt;br /&gt;
OpenCodeの初回起動時に、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンド または &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドでAIプロバイダとの認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== GitHub Copilotとの連携 =====&lt;br /&gt;
OpenCodeはGitHub Copilotの公式パートナーであり、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証を設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 /connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、GitHub Copilotを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザが開き、GitHub認証ページが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== APIキーによる認証 =====&lt;br /&gt;
環境変数でAPIキーを設定する方法もある。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export GOOGLE_API_KEY=&amp;quot;...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を永続化する場合は、~/.profileファイル等に環境変数 &amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Z.AI (GLM) との連携 =====&lt;br /&gt;
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、[https://z.ai/subscribe Z.AI GLM または GLM Coding Plan]のサブスクリプション契約およびAPIキーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====== GLM / GLM Coding Planの概要 ======&lt;br /&gt;
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GLM Coding Plan&lt;br /&gt;
! プラン !! 月額 !! GLM-5対応 !! 5時間あたりの目安&lt;br /&gt;
|-&lt;br /&gt;
| Lite || $10 || 対応 || 約80プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Pro || $30 || 対応 || 約400プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Max || $120 || 対応 || 約1,600プロンプト&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用可能なモデルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* GLM-5 (ProプランおよびMaxプランのみ)&lt;br /&gt;
* GLM-4.7&lt;br /&gt;
* GLM-4.6&lt;br /&gt;
* GLM-4.5&lt;br /&gt;
* GLM-4.5-Air&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== 認証の設定手順 ======&lt;br /&gt;
Z.AIの[https://z.ai/manage-apikey/apikey-list APIコンソール]にアクセスして、APIキーを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドを実行して、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIのAPIキーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Select provider&lt;br /&gt;
 │  Z.AI Coding Plan&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Enter your API key&lt;br /&gt;
 │  &amp;lt;Z.AIのAPIキーを入力&amp;gt;&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動して、&amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; コマンドでGLM-5 / GLM-4.7等のモデルを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 /models&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
====== トラブルシューティング : Insufficient balance ======&lt;br /&gt;
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 Insufficient balance or no resource package. Please recharge.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
プロバイダ選択で &amp;lt;u&amp;gt;Z.AI&amp;lt;/u&amp;gt; (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Z.AI APIエンドポイントの違い&lt;br /&gt;
! エンドポイント !! URL !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 標準 (通常API) || https://api.z.ai/api/paas/v4 || 従量課金のAPI利用&lt;br /&gt;
|-&lt;br /&gt;
| Coding Plan専用 || https://api.z.ai/api/coding/paas/v4 || GLM Coding Planサブスクリプション利用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対処方法として、一旦Z.AIの認証情報をログアウトしてから、&amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; で再度ログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIの認証情報をログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth logout&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度ログインして、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan    ← Z.AI ではなく、Z.AI Coding Planを選択すること&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイル ====&lt;br /&gt;
OpenCodeの設定ファイルは、&amp;lt;u&amp;gt;プロジェクトルート&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;ホームディレクトリ&amp;lt;/u&amp;gt; に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの場所 =====&lt;br /&gt;
設定ファイルは以下の順序で検索される。&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクトルート&lt;br /&gt;
*: &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* ホームディレクトリ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.opencode/config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの例 =====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;anthropic/claude-sonnet-4-5-20250929&amp;quot;,&lt;br /&gt;
   &amp;quot;small_model&amp;quot;: &amp;quot;anthropic/claude-haiku-4-5-20251001&amp;quot;,&lt;br /&gt;
   &amp;quot;keybinds&amp;quot;: {&lt;br /&gt;
      &amp;quot;leader&amp;quot;: &amp;quot;ctrl+x&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 使用するモデル名 (プロバイダ/モデル名 形式)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-sonnet-4-5-20250929&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;openai/gpt-4o&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;small_model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 軽量タスク用のモデル (コスト削減に有効)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-haiku-4-5-20251001&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;keybinds.leader&amp;lt;/code&amp;gt;&lt;br /&gt;
*: リーダーキーの設定&lt;br /&gt;
*: デフォルト : &amp;lt;code&amp;gt;ctrl+x&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIコマンド ==&lt;br /&gt;
OpenCodeは、CLIモードと対話モードの両方で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt; || TUIを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode run &amp;quot;プロンプト&amp;quot;&amp;lt;/code&amp;gt; || 非対話モードでプロンプトを実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --model プロバイダ/モデル名&amp;lt;/code&amp;gt; || モデルを指定して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --continue&amp;lt;/code&amp;gt; || 前回のセッションを継続して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; || プロバイダの認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth logout&amp;lt;/code&amp;gt; || 認証情報を削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp list&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp add サーバー名&amp;lt;/code&amp;gt; || MCPサーバを追加&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode serve&amp;lt;/code&amp;gt; || ヘッドレスバックエンドサーバを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --version&amp;lt;/code&amp;gt; || バージョンを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 非対話モード ====&lt;br /&gt;
非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
プロジェクトの概要を説明する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;このプロジェクトの概要を説明して&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
モデルを指定してテストを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;テストを実行して&amp;quot; --model anthropic/claude-sonnet-4-5-20250929&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TUI (ターミナルユーザーインターフェース) ==&lt;br /&gt;
OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スラッシュコマンド ====&lt;br /&gt;
TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ スラッシュコマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/new&amp;lt;/code&amp;gt; || 新しいセッションを開始&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/init&amp;lt;/code&amp;gt; || プロジェクト構造を分析&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt; || 直前の変更を元に戻す (Git連携)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; || 元に戻した変更をやり直す&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/compact&amp;lt;/code&amp;gt; || 会話を要約して圧縮&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/share&amp;lt;/code&amp;gt; || 会話の共有リンクを生成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/export&amp;lt;/code&amp;gt; || 会話をMarkdownでエクスポート&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/sessions&amp;lt;/code&amp;gt; || 過去のセッション一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/agents&amp;lt;/code&amp;gt; || エージェント一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; || プロバイダ認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/status&amp;lt;/code&amp;gt; || 現在のステータスを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/mcp&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/theme&amp;lt;/code&amp;gt; || テーマを変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt; || 外部エディタで入力&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/commands&amp;lt;/code&amp;gt; || コマンド一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/exit&amp;lt;/code&amp;gt; || OpenCodeを終了&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== キーバインド ====&lt;br /&gt;
OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。&amp;lt;br&amp;gt;&lt;br /&gt;
リーダーキーを押した後に各キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ キーバインド一覧&lt;br /&gt;
! キー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [N] || 新しいセッション&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [L] || セッション一覧&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [T] || タイムライン&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [M] || モデル選択ダイアログ&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [C] || コンパクト表示&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [P] || コマンドパレット&lt;br /&gt;
|-&lt;br /&gt;
| [Tab] || Plan/Buildエージェント切替&lt;br /&gt;
|-&lt;br /&gt;
| [Page Up] / [Page Down] || スクロール&lt;br /&gt;
|-&lt;br /&gt;
| [Shift] + [Enter] || 改行入力&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル参照とBashコマンド ====&lt;br /&gt;
TUI内でファイル参照とBashコマンドの実行ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ファイル参照 =====&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; でファイルをファジー検索して参照を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 @filename&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Bashコマンドの実行 =====&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; をプレフィックスとしてBashコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 !ls -la&lt;br /&gt;
 !git status&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIバイナリのビルド (SUSE) ==&lt;br /&gt;
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルドの前提条件&lt;br /&gt;
! 項目 !! 要件&lt;br /&gt;
|-&lt;br /&gt;
| OS || &lt;br /&gt;
* RHEL 9 / 10&lt;br /&gt;
* SUSE 15 / 16&lt;br /&gt;
|-&lt;br /&gt;
| Bun || 1.3.x (&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; 内の &amp;lt;code&amp;gt;packageManager&amp;lt;/code&amp;gt; で &amp;lt;code&amp;gt;bun@1.3.9&amp;lt;/code&amp;gt; を指定)&lt;br /&gt;
|-&lt;br /&gt;
| git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 前提条件の確認コマンド =====&lt;br /&gt;
 # Bunバージョン確認 (1.3.9が必要)&lt;br /&gt;
 bun --version&lt;br /&gt;
 &lt;br /&gt;
 # ネットワーク接続の確認&lt;br /&gt;
 curl -s https://models.dev/api.json | head -c 100&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルド方式の説明 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルド方式の説明&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript (Bun ランタイム)&lt;br /&gt;
|-&lt;br /&gt;
| ビルド方式 || &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; の &amp;lt;code&amp;gt;compile: true&amp;lt;/code&amp;gt; でスタンドアロン実行ファイルを生成&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/opencode/script/build.ts&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 出力 || Bunランタイムを内蔵した単一バイナリ (&amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 環境変数の設定 ====&lt;br /&gt;
ソースディレクトリがGitリポジトリでない場合、&amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; が失敗するため、環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.14&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 依存パッケージのインストール ====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このプロジェクトはBunワークスペース構成のモノレポである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bun install&amp;lt;/code&amp;gt; コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルドの実行 ====&lt;br /&gt;
ビルドスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)&amp;lt;br&amp;gt;&lt;br /&gt;
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドスクリプトの処理内容:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; からモデルデータを取得し、TypeScript スナップショットを生成&lt;br /&gt;
* &amp;lt;code&amp;gt;@opentui/core&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;@parcel/watcher&amp;lt;/code&amp;gt; のネイティブバインディングをインストール&lt;br /&gt;
* &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; で TypeScript をスタンドアロンバイナリにコンパイル&lt;br /&gt;
* &amp;lt;code&amp;gt;packages/opencode/dist/opencode-linux-x64/bin/opencode&amp;lt;/code&amp;gt; に出力&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
ビルドが完了したら、バイナリが生成されたか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # バイナリが生成されたか確認&lt;br /&gt;
 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode&lt;br /&gt;
 &lt;br /&gt;
 # バージョン表示で動作確認&lt;br /&gt;
 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OPENCODE_VERSION=&amp;lt;バージョン  例: 1.1.53&amp;gt;&amp;lt;br&amp;gt;OPENCODE_CHANNEL=latest&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; に接続できない || ネットワーク制限 || 事前に &amp;lt;u&amp;gt;api.json&amp;lt;/u&amp;gt; をダウンロードして、&amp;lt;code&amp;gt;MODELS_DEV_API_JSON=/path/to/api.json&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
|-&lt;br /&gt;
| GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || &amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; に加えて &amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加&amp;lt;br&amp;gt;または、muslビルドを検討する。&lt;br /&gt;
|-&lt;br /&gt;
| native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper install gcc gcc-c++ make&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オフライン環境でのビルド =====&lt;br /&gt;
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 # オンライン環境で事前にダウンロード&lt;br /&gt;
 curl -o api.json https://models.dev/api.json&lt;br /&gt;
 &lt;br /&gt;
 # ビルド時にローカルファイルを指定&lt;br /&gt;
 export MODELS_DEV_API_JSON=/path/to/api.json&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== baselineビルド =====&lt;br /&gt;
CPUがAVX2命令セットをサポートしていない場合、&amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single --baseline&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== デスクトップアプリケーションのビルド ==&lt;br /&gt;
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーションの構成 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Desktop アプリの構成&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || SolidJS + Vite (TypeScript)&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Rust (Tauri v2 シェル)&lt;br /&gt;
|-&lt;br /&gt;
| サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの)&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; 配下&lt;br /&gt;
|-&lt;br /&gt;
| 出力形式 (Linux) || debパッケージ、rpmパッケージ&lt;br /&gt;
|-&lt;br /&gt;
| ソースディレクトリ || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; (フロントエンド)&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;packages/desktop/src-tauri/&amp;lt;/u&amp;gt; (Rust)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
===== OpenCode CLIバイナリのビルド =====&lt;br /&gt;
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、まず、OpenCode CLIバイナリのビルドを完了させること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Rustツールチェーン =====&lt;br /&gt;
Tauri v2 のビルドには、Rustが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Rustのインストール (未インストールの場合)&lt;br /&gt;
 curl --proto &#039;=https&#039; --tlsv1.2 https://sh.rustup.rs -sSf | sh&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数の設定を反映&lt;br /&gt;
 source &amp;quot;$HOME/.cargo/env&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 rustc --version&lt;br /&gt;
 cargo --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 依存ライブラリのインストール =====&lt;br /&gt;
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install -t pattern devel_basis&lt;br /&gt;
 sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ソースコードのダウンロード =====&lt;br /&gt;
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf opencode-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== デスクトップアプリケーションのビルド ====&lt;br /&gt;
===== Step 1 : 環境変数の設定 =====&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.4&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2 : 依存パッケージのインストール =====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、bun installに失敗する場合は、node-gypをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun add node-gyp -D&lt;br /&gt;
 # または&lt;br /&gt;
 npm install -g node-gyp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2.5 : OpenCode Desktopの最大化に関する不具合 =====&lt;br /&gt;
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 // /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rsファイル&lt;br /&gt;
 &lt;br /&gt;
 // 編集前&lt;br /&gt;
 .maximized(true)&lt;br /&gt;
 &lt;br /&gt;
 // 編集後&lt;br /&gt;
 //.maximized(true)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 3 : CLIバイナリのビルド (未完了の場合) =====&lt;br /&gt;
サイドカーとなるOpenCode CLIバイナリが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下記のエラーが表示される場合がある。&lt;br /&gt;
 | // relax version requirement&lt;br /&gt;
 | const expectedBunVersionRange = `^${expectedBunVersion}`&lt;br /&gt;
 |&lt;br /&gt;
 | if (!semver.satisfies(process.versions.bun, expectedBunVersionRange)) {&lt;br /&gt;
 |   throw new Error(`This script requires bun@${expectedBunVersionRange}, but you are using bun@${process.versions.bun}`)&lt;br /&gt;
 &lt;br /&gt;
 error: This script requires bun@^X.X.X, but you are using bun@X.X.X&lt;br /&gt;
       at /path/to/opencode-X.X.XX/packages/script/src/index.ts:16:13&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この時、bunをアップデートする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Step 4 : サイドカーの配置 =====&lt;br /&gt;
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p packages/desktop/src-tauri/sidecars&lt;br /&gt;
 cp packages/opencode/dist/opencode-linux-x64/bin/opencode \&lt;br /&gt;
    packages/desktop/src-tauri/sidecars/opencode-cli-x86_64-unknown-linux-gnu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;tauri.conf.json&amp;lt;/u&amp;gt; ファイル内の &amp;lt;code&amp;gt;externalBin&amp;lt;/code&amp;gt; に &amp;lt;u&amp;gt;sidecars/opencode-cli&amp;lt;/u&amp;gt; が指定されており、Tauriがターゲットトリプル (&amp;lt;code&amp;gt;x86_64-unknown-linux-gnu&amp;lt;/code&amp;gt;) を付与して検索する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 5 : フロントエンドのビルド確認 (任意) =====&lt;br /&gt;
Viteビルドは、&amp;lt;code&amp;gt;tauri build&amp;lt;/code&amp;gt; コマンドの &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 6 : Tauriビルドの実行 =====&lt;br /&gt;
Tauriビルドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のコマンドは、以下に示す事柄を実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;bun run build&amp;lt;/code&amp;gt;) でフロントエンドをビルドする。&lt;br /&gt;
* Cargo (Rust) でネイティブバイナリをコンパイルする。&lt;br /&gt;
* サイドカー (OpenCode CLIバイナリ) をバンドルに含める。&lt;br /&gt;
* deb / rpmパッケージを生成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt; ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すエラーが出力される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 $ tauri build&lt;br /&gt;
 thread &#039;&amp;lt;unnamed&amp;gt;&#039; panicked at crates/tauri-cli/src/interface/rust.rs:146:8:&lt;br /&gt;
 called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 24, kind: Uncategorized, message: &amp;quot;Too many open files&amp;quot; }), paths: [] }&lt;br /&gt;
 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace&lt;br /&gt;
 error: script &amp;quot;tauri&amp;quot; was terminated by signal SIGABRT (Abort)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Tauriのビルドプロセス (Rustコンパイル含む) が、現在のシェルセッションで許可されているオープンファイル数の上限を超えているため、表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するには、オープンファイル数の上限を引き上げる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ulimit -n 1048576&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、&amp;lt;code&amp;gt;ulimit -n 1048576&amp;lt;/code&amp;gt; コマンドを実行して、&amp;lt;u&amp;gt;Operation not permitted&amp;lt;/u&amp;gt; エラーが出力される場合は、システム側のハードリミットも引き上げる必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/security/limits.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/security/limits.confファイル&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;ユーザ名&amp;gt;  soft  nofile  1048576&lt;br /&gt;
 &amp;lt;ユーザ名&amp;gt;  hard  nofile  1048576&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
編集した後、再ログインまたはPCを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再ログイン後または再起動後、Tauriをビルドする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ulimit -n 1048576&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 生成されたファイルの確認 =====&lt;br /&gt;
以下に示すディレクトリにファイルが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 # debパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリ (直接実行も可能)&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
RPMパッケージをインストールして確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージをインストールして確認&lt;br /&gt;
 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 ## または&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリを直接起動&lt;br /&gt;
 ./packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須&lt;br /&gt;
|-&lt;br /&gt;
| opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。&lt;br /&gt;
|-&lt;br /&gt;
| 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 &amp;lt;code&amp;gt;OC_ALLOW_WAYLAND=1&amp;lt;/code&amp;gt; でWaylandを強制する。&lt;br /&gt;
|-&lt;br /&gt;
| RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 特定パッケージ形式のみビルド =====&lt;br /&gt;
全形式をビルドする必要がない場合、&amp;lt;code&amp;gt;--bundles&amp;lt;/code&amp;gt; フラグで指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles rpm&lt;br /&gt;
 &lt;br /&gt;
 # debのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デバッグビルド =====&lt;br /&gt;
問題の調査が必要な場合、デバッグビルドを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --debug&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -&amp;gt; [Inspect Element]が利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oh my OpenCode ==&lt;br /&gt;
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主な機能 ====&lt;br /&gt;
Oh my OpenCodeは以下に示す機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Oh my OpenCode 機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; || 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード&lt;br /&gt;
|-&lt;br /&gt;
| フック統合 || ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等)&lt;br /&gt;
|-&lt;br /&gt;
| MCP統合 || Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論)&lt;br /&gt;
|-&lt;br /&gt;
| LSP/AST解析 || Language Server ProtocolとAST解析による高精度なコード理解&lt;br /&gt;
|-&lt;br /&gt;
| スキルシステム || 再利用可能なプロンプトテンプレート&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;/ultra&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門エージェント ====&lt;br /&gt;
Oh my OpenCodeは以下の専門エージェントを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門エージェント一覧&lt;br /&gt;
! エージェント名 !! 役割&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || プランニングと実装を担当するメインエージェント&amp;lt;br&amp;gt;タスク分割、実装、テスト、反復改善を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || コードベース全体の調査・分析を担当&amp;lt;br&amp;gt;プロジェクト構造の把握、依存関係の追跡を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Frontend Engineer || フロントエンド開発を担当&amp;lt;br&amp;gt;React / Next.js等のUI実装、アクセシビリティ対応を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント管理を担当&amp;lt;br&amp;gt;README、API仕様書、変更履歴の作成・更新を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Explorer || 未知のコードベースの探索を担当&amp;lt;br&amp;gt;新しいプロジェクトの構造理解や技術スタックの調査を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
インストールの前提条件は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OpenCode v1.0.150以上&lt;br /&gt;
* Node.js または Bun&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Oh my OpenCodeをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest&lt;br /&gt;
 # または&lt;br /&gt;
 npx oh-my-opencode@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
非対話モードでインストールする場合は以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest --non-interactive&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
設定ファイルは以下の場所に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト単位&lt;br /&gt;
*: &amp;lt;u&amp;gt;.opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* グローバル&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に設定ファイルの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
       &amp;quot;context7&amp;quot;: true,&lt;br /&gt;
       &amp;quot;thinking&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;sisyphus&amp;quot;: true,&lt;br /&gt;
       &amp;quot;oracle&amp;quot;: true,&lt;br /&gt;
       &amp;quot;frontend&amp;quot;: true,&lt;br /&gt;
       &amp;quot;librarian&amp;quot;: true,&lt;br /&gt;
       &amp;quot;explorer&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hooks&amp;quot;: {&lt;br /&gt;
       &amp;quot;afterEdit&amp;quot;: true,&lt;br /&gt;
       &amp;quot;afterWrite&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;skills&amp;quot;: {&lt;br /&gt;
       &amp;quot;ultra&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各設定項目の説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 設定項目一覧&lt;br /&gt;
! カテゴリ !! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | mcpServers || - || MCPサーバの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| context7 || ライブラリドキュメント取得サーバ&lt;br /&gt;
|-&lt;br /&gt;
| thinking || 構造的推論サーバ&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | agents || - || 専門エージェントの有効/無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| sisyphus || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| oracle || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| frontend || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| librarian || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| explorer || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | hooks || - || フックの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| afterEdit || ファイル編集後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| afterWrite || ファイル作成後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | skills || - || スキルの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ultra || ultraworkスキルを有効化する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
プロンプトに &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 大規模リファクタリング&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このプロジェクトの認証システムをリファクタリングして&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 新機能実装&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork ユーザ管理機能を実装して&amp;lt;/pre&amp;gt;&lt;br /&gt;
* ドキュメント調査&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このコードベースを分析してドキュメントを作成して&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アンインストール ====&lt;br /&gt;
プロジェクト単位の設定ファイルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf .opencode/agents   \&lt;br /&gt;
        .opencode/hooks    \&lt;br /&gt;
        .opencode/skills   \&lt;br /&gt;
        .opencode/mcp.json \&lt;br /&gt;
        .opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
グローバル設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.config/opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
Oh my OpenCodeを使用する際は以下の点に注意すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。&lt;br /&gt;
* フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。&lt;br /&gt;
* MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
==== プライバシーとデータ取り扱い ====&lt;br /&gt;
OpenCodeはオープンソースであり、コードの透明性を確保している。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルでの処理を優先、コードの送信は最小限に抑制する。&lt;br /&gt;
* 使用するAIプロバイダのプライバシーポリシーを確認すること。&lt;br /&gt;
* GitHubリポジトリで実装を検証可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 生成コードの検証 ====&lt;br /&gt;
AIが生成したコードは必ずレビューして検証する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コードの動作を確認&lt;br /&gt;
* セキュリティ上の問題がないか確認&lt;br /&gt;
* ライセンス上の問題がないか確認&lt;br /&gt;
* コーディング規約に準拠しているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
APIキーやパスワード等の機密情報をコードに含めないように注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキー、パスワード等の機密情報をコードに含めない。&lt;br /&gt;
* 環境変数や設定ファイルで管理する。&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitignore&amp;lt;/u&amp;gt; ファイルで機密情報を含むファイルを除外する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14625</id>
		<title>インストール - OpenCode</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14625"/>
		<updated>2026-04-09T11:25:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Step 6 : Tauriビルドの実行 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OpenCodeは、オープンソースのAIコーディングエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要な特徴として、以下が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート&lt;br /&gt;
* 2026年1月にGitHub Copilotとの公式パートナーシップを発表&lt;br /&gt;
* プライバシー重視の設計&lt;br /&gt;
*: コードは送信されず、ローカルでの処理を優先&lt;br /&gt;
* CLI、TUI、Desktop アプリ、IDE拡張機能、Webインターフェースを提供&lt;br /&gt;
* MCP (Model Context Protocol) とLSP (Language Server Protocol) をサポート&lt;br /&gt;
* 組み込みエージェント&lt;br /&gt;
** build (開発用)&lt;br /&gt;
** plan (読み取り専用分析)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。&amp;lt;br&amp;gt;&lt;br /&gt;
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主な機能 ==&lt;br /&gt;
OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TUI (Bubble Tea) || ターミナルベースの対話型インターフェース&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロバイダ対応 || 75以上のLLMプロバイダをサポート&lt;br /&gt;
|-&lt;br /&gt;
| セッション管理 || 会話履歴の保存、復元、エクスポート&lt;br /&gt;
|-&lt;br /&gt;
| ツール統合 || ファイル操作、Bash実行、テスト実行等&lt;br /&gt;
|-&lt;br /&gt;
| MCP (Model Context Protocol) || 外部ツールとの統合プロトコル&lt;br /&gt;
|-&lt;br /&gt;
| LSP (Language Server Protocol) || 25以上の組み込みLSPサーバーによる言語サーバーとの連携&lt;br /&gt;
|-&lt;br /&gt;
| 組み込みエージェント || build (開発用)&amp;lt;br&amp;gt;plan (読み取り専用分析)&amp;lt;br&amp;gt;general (調査用)&amp;lt;br&amp;gt;explore (コード探索用)&lt;br /&gt;
|-&lt;br /&gt;
| Desktop アプリ || Tauri v2ベースのネイティブアプリ&lt;br /&gt;
|-&lt;br /&gt;
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張&lt;br /&gt;
|-&lt;br /&gt;
| カスタムコマンド || &amp;lt;u&amp;gt;.opencode/commands/&amp;lt;/u&amp;gt; ディレクトリ内でユーザ定義コマンド作成&lt;br /&gt;
|-&lt;br /&gt;
| Git統合 || &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; コマンドでGitバック付きの変更管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応AIプロバイダとモデル ==&lt;br /&gt;
OpenCodeは、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要プロバイダ一覧 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要プロバイダ一覧&lt;br /&gt;
! プロバイダ !! 認証方法 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Anthropic || APIキー (&amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt;) || Claude 4.x系をサポート&lt;br /&gt;
|-&lt;br /&gt;
| OpenAI || APIキー (&amp;lt;code&amp;gt;OPENAI_API_KEY&amp;lt;/code&amp;gt;) || GPT-4o、o3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| Google || APIキー (&amp;lt;code&amp;gt;GOOGLE_API_KEY&amp;lt;/code&amp;gt;) || Gemini 3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Copilot || GitHub認証 (OAuth) || &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証&lt;br /&gt;
|-&lt;br /&gt;
| Z.AI || APIキー || GLM-5、GLM-4.7等をサポート&amp;lt;br&amp;gt;GLM Coding Plan対応&lt;br /&gt;
|-&lt;br /&gt;
| AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Azure OpenAI || Azureエンドポイント || OpenAIモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Ollama || ローカル実行 (認証不要) || ローカルモデルの実行&lt;br /&gt;
|-&lt;br /&gt;
| OpenRouter || APIキー || 複数プロバイダのルーティング&lt;br /&gt;
|-&lt;br /&gt;
| Groq || APIキー || 高速推論&lt;br /&gt;
|-&lt;br /&gt;
| Together AI || APIキー || オープンソースモデル&lt;br /&gt;
|-&lt;br /&gt;
| Fireworks AI || APIキー || 高速推論&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 推奨モデル ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 用途別推奨モデル&lt;br /&gt;
! 用途 !! 推奨モデル&lt;br /&gt;
|-&lt;br /&gt;
| 高精度コーディング || Claude Sonnet 4.5、GPT-4o&lt;br /&gt;
|-&lt;br /&gt;
| 高速処理 || Claude Haiku 4.5、Gemini 2.5 Flash&lt;br /&gt;
|-&lt;br /&gt;
| 複雑な推論 || Claude Opus 4.6、o3&lt;br /&gt;
|-&lt;br /&gt;
| ローカル実行 || Qwen 2.5 Coder (Ollama)&lt;br /&gt;
|-&lt;br /&gt;
| コスト効率重視 || GLM-4.7、GLM-5 (Z.AI Coding Plan)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ローカルモデル (Ollama) ====&lt;br /&gt;
Ollamaを使用することで、ローカル環境でモデルを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Ollamaのインストール =====&lt;br /&gt;
Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://ollama.com/install.sh | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== モデルのダウンロード =====&lt;br /&gt;
Ollamaでモデルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ollama pull qwen2.5-coder&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== OpenCodeでの設定 =====&lt;br /&gt;
&amp;lt;code&amp;gt;opencode.json&amp;lt;/code&amp;gt; でOllamaプロバイダを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;ollama/qwen2.5-coder&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
OpenCodeをインストールするには、以下の前提条件を満たす必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 標準インストール時の前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 標準インストール時の前提条件&lt;br /&gt;
! 要件 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux、MacOS、Windows&lt;br /&gt;
|-&lt;br /&gt;
| Node.js || npm経由のインストールに必要 (Node.js 18以上)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || AIプロバイダへの接続に必要&lt;br /&gt;
|-&lt;br /&gt;
| AIプロバイダのAPIキー || 使用するプロバイダのAPIキーまたは認証情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
OpenCodeのインストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クイックインストール (Linux) ====&lt;br /&gt;
公式のインストールスクリプトを使用してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://opencode.ai/install | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Homebrew (MacOS) ====&lt;br /&gt;
Homebrewを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== npm (全プラットフォーム) ====&lt;br /&gt;
npmを使用してグローバルインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows (Scoop / Chocolatey) ====&lt;br /&gt;
Windowsでは、ScoopまたはChocolateyを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Scoopでのインストール =====&lt;br /&gt;
 scoop install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Chocolateyでのインストール =====&lt;br /&gt;
 choco install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーション ====&lt;br /&gt;
[https://opencode.ai/download OpenCodeの公式Webサイト]にアクセスして、デスクトップアプリケーションをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プラットフォーム:&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux (deb、rpm)&lt;br /&gt;
* MacOS (dmg)&lt;br /&gt;
* Windows (exe)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== バージョン確認 ====&lt;br /&gt;
インストール後、バージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 初期設定 ==&lt;br /&gt;
OpenCodeの初期設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロバイダの認証 ====&lt;br /&gt;
OpenCodeの初回起動時に、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンド または &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドでAIプロバイダとの認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== GitHub Copilotとの連携 =====&lt;br /&gt;
OpenCodeはGitHub Copilotの公式パートナーであり、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証を設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 /connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、GitHub Copilotを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザが開き、GitHub認証ページが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== APIキーによる認証 =====&lt;br /&gt;
環境変数でAPIキーを設定する方法もある。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export GOOGLE_API_KEY=&amp;quot;...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を永続化する場合は、~/.profileファイル等に環境変数 &amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Z.AI (GLM) との連携 =====&lt;br /&gt;
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、[https://z.ai/subscribe Z.AI GLM または GLM Coding Plan]のサブスクリプション契約およびAPIキーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====== GLM / GLM Coding Planの概要 ======&lt;br /&gt;
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GLM Coding Plan&lt;br /&gt;
! プラン !! 月額 !! GLM-5対応 !! 5時間あたりの目安&lt;br /&gt;
|-&lt;br /&gt;
| Lite || $10 || 対応 || 約80プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Pro || $30 || 対応 || 約400プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Max || $120 || 対応 || 約1,600プロンプト&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用可能なモデルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* GLM-5 (ProプランおよびMaxプランのみ)&lt;br /&gt;
* GLM-4.7&lt;br /&gt;
* GLM-4.6&lt;br /&gt;
* GLM-4.5&lt;br /&gt;
* GLM-4.5-Air&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== 認証の設定手順 ======&lt;br /&gt;
Z.AIの[https://z.ai/manage-apikey/apikey-list APIコンソール]にアクセスして、APIキーを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドを実行して、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIのAPIキーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Select provider&lt;br /&gt;
 │  Z.AI Coding Plan&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Enter your API key&lt;br /&gt;
 │  &amp;lt;Z.AIのAPIキーを入力&amp;gt;&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動して、&amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; コマンドでGLM-5 / GLM-4.7等のモデルを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 /models&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
====== トラブルシューティング : Insufficient balance ======&lt;br /&gt;
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 Insufficient balance or no resource package. Please recharge.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
プロバイダ選択で &amp;lt;u&amp;gt;Z.AI&amp;lt;/u&amp;gt; (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Z.AI APIエンドポイントの違い&lt;br /&gt;
! エンドポイント !! URL !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 標準 (通常API) || https://api.z.ai/api/paas/v4 || 従量課金のAPI利用&lt;br /&gt;
|-&lt;br /&gt;
| Coding Plan専用 || https://api.z.ai/api/coding/paas/v4 || GLM Coding Planサブスクリプション利用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対処方法として、一旦Z.AIの認証情報をログアウトしてから、&amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; で再度ログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIの認証情報をログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth logout&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度ログインして、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan    ← Z.AI ではなく、Z.AI Coding Planを選択すること&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイル ====&lt;br /&gt;
OpenCodeの設定ファイルは、&amp;lt;u&amp;gt;プロジェクトルート&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;ホームディレクトリ&amp;lt;/u&amp;gt; に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの場所 =====&lt;br /&gt;
設定ファイルは以下の順序で検索される。&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクトルート&lt;br /&gt;
*: &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* ホームディレクトリ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.opencode/config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの例 =====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;anthropic/claude-sonnet-4-5-20250929&amp;quot;,&lt;br /&gt;
   &amp;quot;small_model&amp;quot;: &amp;quot;anthropic/claude-haiku-4-5-20251001&amp;quot;,&lt;br /&gt;
   &amp;quot;keybinds&amp;quot;: {&lt;br /&gt;
      &amp;quot;leader&amp;quot;: &amp;quot;ctrl+x&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 使用するモデル名 (プロバイダ/モデル名 形式)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-sonnet-4-5-20250929&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;openai/gpt-4o&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;small_model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 軽量タスク用のモデル (コスト削減に有効)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-haiku-4-5-20251001&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;keybinds.leader&amp;lt;/code&amp;gt;&lt;br /&gt;
*: リーダーキーの設定&lt;br /&gt;
*: デフォルト : &amp;lt;code&amp;gt;ctrl+x&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIコマンド ==&lt;br /&gt;
OpenCodeは、CLIモードと対話モードの両方で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt; || TUIを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode run &amp;quot;プロンプト&amp;quot;&amp;lt;/code&amp;gt; || 非対話モードでプロンプトを実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --model プロバイダ/モデル名&amp;lt;/code&amp;gt; || モデルを指定して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --continue&amp;lt;/code&amp;gt; || 前回のセッションを継続して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; || プロバイダの認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth logout&amp;lt;/code&amp;gt; || 認証情報を削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp list&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp add サーバー名&amp;lt;/code&amp;gt; || MCPサーバを追加&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode serve&amp;lt;/code&amp;gt; || ヘッドレスバックエンドサーバを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --version&amp;lt;/code&amp;gt; || バージョンを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 非対話モード ====&lt;br /&gt;
非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
プロジェクトの概要を説明する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;このプロジェクトの概要を説明して&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
モデルを指定してテストを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;テストを実行して&amp;quot; --model anthropic/claude-sonnet-4-5-20250929&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TUI (ターミナルユーザーインターフェース) ==&lt;br /&gt;
OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スラッシュコマンド ====&lt;br /&gt;
TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ スラッシュコマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/new&amp;lt;/code&amp;gt; || 新しいセッションを開始&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/init&amp;lt;/code&amp;gt; || プロジェクト構造を分析&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt; || 直前の変更を元に戻す (Git連携)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; || 元に戻した変更をやり直す&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/compact&amp;lt;/code&amp;gt; || 会話を要約して圧縮&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/share&amp;lt;/code&amp;gt; || 会話の共有リンクを生成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/export&amp;lt;/code&amp;gt; || 会話をMarkdownでエクスポート&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/sessions&amp;lt;/code&amp;gt; || 過去のセッション一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/agents&amp;lt;/code&amp;gt; || エージェント一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; || プロバイダ認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/status&amp;lt;/code&amp;gt; || 現在のステータスを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/mcp&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/theme&amp;lt;/code&amp;gt; || テーマを変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt; || 外部エディタで入力&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/commands&amp;lt;/code&amp;gt; || コマンド一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/exit&amp;lt;/code&amp;gt; || OpenCodeを終了&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== キーバインド ====&lt;br /&gt;
OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。&amp;lt;br&amp;gt;&lt;br /&gt;
リーダーキーを押した後に各キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ キーバインド一覧&lt;br /&gt;
! キー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [N] || 新しいセッション&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [L] || セッション一覧&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [T] || タイムライン&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [M] || モデル選択ダイアログ&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [C] || コンパクト表示&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [P] || コマンドパレット&lt;br /&gt;
|-&lt;br /&gt;
| [Tab] || Plan/Buildエージェント切替&lt;br /&gt;
|-&lt;br /&gt;
| [Page Up] / [Page Down] || スクロール&lt;br /&gt;
|-&lt;br /&gt;
| [Shift] + [Enter] || 改行入力&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル参照とBashコマンド ====&lt;br /&gt;
TUI内でファイル参照とBashコマンドの実行ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ファイル参照 =====&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; でファイルをファジー検索して参照を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 @filename&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Bashコマンドの実行 =====&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; をプレフィックスとしてBashコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 !ls -la&lt;br /&gt;
 !git status&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIバイナリのビルド (SUSE) ==&lt;br /&gt;
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルドの前提条件&lt;br /&gt;
! 項目 !! 要件&lt;br /&gt;
|-&lt;br /&gt;
| OS || &lt;br /&gt;
* RHEL 9 / 10&lt;br /&gt;
* SUSE 15 / 16&lt;br /&gt;
|-&lt;br /&gt;
| Bun || 1.3.x (&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; 内の &amp;lt;code&amp;gt;packageManager&amp;lt;/code&amp;gt; で &amp;lt;code&amp;gt;bun@1.3.9&amp;lt;/code&amp;gt; を指定)&lt;br /&gt;
|-&lt;br /&gt;
| git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 前提条件の確認コマンド =====&lt;br /&gt;
 # Bunバージョン確認 (1.3.9が必要)&lt;br /&gt;
 bun --version&lt;br /&gt;
 &lt;br /&gt;
 # ネットワーク接続の確認&lt;br /&gt;
 curl -s https://models.dev/api.json | head -c 100&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルド方式の説明 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルド方式の説明&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript (Bun ランタイム)&lt;br /&gt;
|-&lt;br /&gt;
| ビルド方式 || &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; の &amp;lt;code&amp;gt;compile: true&amp;lt;/code&amp;gt; でスタンドアロン実行ファイルを生成&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/opencode/script/build.ts&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 出力 || Bunランタイムを内蔵した単一バイナリ (&amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 環境変数の設定 ====&lt;br /&gt;
ソースディレクトリがGitリポジトリでない場合、&amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; が失敗するため、環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.14&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 依存パッケージのインストール ====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このプロジェクトはBunワークスペース構成のモノレポである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bun install&amp;lt;/code&amp;gt; コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルドの実行 ====&lt;br /&gt;
ビルドスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)&amp;lt;br&amp;gt;&lt;br /&gt;
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドスクリプトの処理内容:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; からモデルデータを取得し、TypeScript スナップショットを生成&lt;br /&gt;
* &amp;lt;code&amp;gt;@opentui/core&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;@parcel/watcher&amp;lt;/code&amp;gt; のネイティブバインディングをインストール&lt;br /&gt;
* &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; で TypeScript をスタンドアロンバイナリにコンパイル&lt;br /&gt;
* &amp;lt;code&amp;gt;packages/opencode/dist/opencode-linux-x64/bin/opencode&amp;lt;/code&amp;gt; に出力&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
ビルドが完了したら、バイナリが生成されたか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # バイナリが生成されたか確認&lt;br /&gt;
 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode&lt;br /&gt;
 &lt;br /&gt;
 # バージョン表示で動作確認&lt;br /&gt;
 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OPENCODE_VERSION=&amp;lt;バージョン  例: 1.1.53&amp;gt;&amp;lt;br&amp;gt;OPENCODE_CHANNEL=latest&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; に接続できない || ネットワーク制限 || 事前に &amp;lt;u&amp;gt;api.json&amp;lt;/u&amp;gt; をダウンロードして、&amp;lt;code&amp;gt;MODELS_DEV_API_JSON=/path/to/api.json&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
|-&lt;br /&gt;
| GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || &amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; に加えて &amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加&amp;lt;br&amp;gt;または、muslビルドを検討する。&lt;br /&gt;
|-&lt;br /&gt;
| native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper install gcc gcc-c++ make&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オフライン環境でのビルド =====&lt;br /&gt;
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 # オンライン環境で事前にダウンロード&lt;br /&gt;
 curl -o api.json https://models.dev/api.json&lt;br /&gt;
 &lt;br /&gt;
 # ビルド時にローカルファイルを指定&lt;br /&gt;
 export MODELS_DEV_API_JSON=/path/to/api.json&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== baselineビルド =====&lt;br /&gt;
CPUがAVX2命令セットをサポートしていない場合、&amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single --baseline&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== デスクトップアプリケーションのビルド ==&lt;br /&gt;
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーションの構成 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Desktop アプリの構成&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || SolidJS + Vite (TypeScript)&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Rust (Tauri v2 シェル)&lt;br /&gt;
|-&lt;br /&gt;
| サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの)&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; 配下&lt;br /&gt;
|-&lt;br /&gt;
| 出力形式 (Linux) || debパッケージ、rpmパッケージ&lt;br /&gt;
|-&lt;br /&gt;
| ソースディレクトリ || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; (フロントエンド)&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;packages/desktop/src-tauri/&amp;lt;/u&amp;gt; (Rust)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
===== OpenCode CLIバイナリのビルド =====&lt;br /&gt;
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、まず、OpenCode CLIバイナリのビルドを完了させること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Rustツールチェーン =====&lt;br /&gt;
Tauri v2 のビルドには、Rustが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Rustのインストール (未インストールの場合)&lt;br /&gt;
 curl --proto &#039;=https&#039; --tlsv1.2 https://sh.rustup.rs -sSf | sh&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数の設定を反映&lt;br /&gt;
 source &amp;quot;$HOME/.cargo/env&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 rustc --version&lt;br /&gt;
 cargo --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 依存ライブラリのインストール =====&lt;br /&gt;
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install -t pattern devel_basis&lt;br /&gt;
 sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ソースコードのダウンロード =====&lt;br /&gt;
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf opencode-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== デスクトップアプリケーションのビルド ====&lt;br /&gt;
===== Step 1 : 環境変数の設定 =====&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.4&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2 : 依存パッケージのインストール =====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、bun installに失敗する場合は、node-gypをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun add node-gyp -D&lt;br /&gt;
 # または&lt;br /&gt;
 npm install -g node-gyp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2.5 : OpenCode Desktopの最大化に関する不具合 =====&lt;br /&gt;
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 // /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rsファイル&lt;br /&gt;
 &lt;br /&gt;
 // 編集前&lt;br /&gt;
 .maximized(true)&lt;br /&gt;
 &lt;br /&gt;
 // 編集後&lt;br /&gt;
 //.maximized(true)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 3 : CLIバイナリのビルド (未完了の場合) =====&lt;br /&gt;
サイドカーとなるOpenCode CLIバイナリが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下記のエラーが表示される場合がある。&lt;br /&gt;
 | // relax version requirement&lt;br /&gt;
 | const expectedBunVersionRange = `^${expectedBunVersion}`&lt;br /&gt;
 |&lt;br /&gt;
 | if (!semver.satisfies(process.versions.bun, expectedBunVersionRange)) {&lt;br /&gt;
 |   throw new Error(`This script requires bun@${expectedBunVersionRange}, but you are using bun@${process.versions.bun}`)&lt;br /&gt;
 &lt;br /&gt;
 error: This script requires bun@^X.X.X, but you are using bun@X.X.X&lt;br /&gt;
       at /path/to/opencode-X.X.XX/packages/script/src/index.ts:16:13&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この時、bunをアップデートする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Step 4 : サイドカーの配置 =====&lt;br /&gt;
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p packages/desktop/src-tauri/sidecars&lt;br /&gt;
 cp packages/opencode/dist/opencode-linux-x64/bin/opencode \&lt;br /&gt;
    packages/desktop/src-tauri/sidecars/opencode-cli-x86_64-unknown-linux-gnu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;tauri.conf.json&amp;lt;/u&amp;gt; ファイル内の &amp;lt;code&amp;gt;externalBin&amp;lt;/code&amp;gt; に &amp;lt;u&amp;gt;sidecars/opencode-cli&amp;lt;/u&amp;gt; が指定されており、Tauriがターゲットトリプル (&amp;lt;code&amp;gt;x86_64-unknown-linux-gnu&amp;lt;/code&amp;gt;) を付与して検索する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 5 : フロントエンドのビルド確認 (任意) =====&lt;br /&gt;
Viteビルドは、&amp;lt;code&amp;gt;tauri build&amp;lt;/code&amp;gt; コマンドの &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 6 : Tauriビルドの実行 =====&lt;br /&gt;
Tauriビルドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のコマンドは、以下に示す事柄を実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;bun run build&amp;lt;/code&amp;gt;) でフロントエンドをビルドする。&lt;br /&gt;
* Cargo (Rust) でネイティブバイナリをコンパイルする。&lt;br /&gt;
* サイドカー (OpenCode CLIバイナリ) をバンドルに含める。&lt;br /&gt;
* deb / rpmパッケージを生成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt; ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すエラーが出力される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 $ tauri build&lt;br /&gt;
 thread &#039;&amp;lt;unnamed&amp;gt;&#039; panicked at crates/tauri-cli/src/interface/rust.rs:146:8:&lt;br /&gt;
 called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 24, kind: Uncategorized, message: &amp;quot;Too many open files&amp;quot; }), paths: [] }&lt;br /&gt;
 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace&lt;br /&gt;
 error: script &amp;quot;tauri&amp;quot; was terminated by signal SIGABRT (Abort)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Tauriのビルドプロセス (Rustコンパイル含む) が、現在のシェルセッションで許可されているオープンファイル数の上限を超えているため、表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するには、オープンファイル数の上限を引き上げる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ulimit -n 1048576&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、&amp;lt;code&amp;gt;ulimit -n 1048576&amp;lt;/code&amp;gt; コマンドを実行して、&amp;lt;u&amp;gt;Operation not permitted&amp;lt;/u&amp;gt; エラーが出力される場合は、システム側のハードリミットも引き上げる必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/security/limits.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/security/limits.confファイル&lt;br /&gt;
 &lt;br /&gt;
 sudo sh -c &#039;echo &amp;quot;&amp;lt;ユーザ名&amp;gt;  soft  nofile  1048576&amp;quot; &amp;gt;&amp;gt; /etc/security/limits.conf&#039;; \&lt;br /&gt;
 sudo sh -c &#039;echo &amp;quot;&amp;lt;ユーザ名&amp;gt;  hard  nofile  1048576&amp;quot; &amp;gt;&amp;gt; /etc/security/limits.conf&#039;; \&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
編集した後、再ログインまたはPCを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再ログイン後または再起動後、Tauriをビルドする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ulimit -n 1048576&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 生成されたファイルの確認 =====&lt;br /&gt;
以下に示すディレクトリにファイルが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 # debパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリ (直接実行も可能)&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
RPMパッケージをインストールして確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージをインストールして確認&lt;br /&gt;
 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 ## または&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリを直接起動&lt;br /&gt;
 ./packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須&lt;br /&gt;
|-&lt;br /&gt;
| opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。&lt;br /&gt;
|-&lt;br /&gt;
| 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 &amp;lt;code&amp;gt;OC_ALLOW_WAYLAND=1&amp;lt;/code&amp;gt; でWaylandを強制する。&lt;br /&gt;
|-&lt;br /&gt;
| RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 特定パッケージ形式のみビルド =====&lt;br /&gt;
全形式をビルドする必要がない場合、&amp;lt;code&amp;gt;--bundles&amp;lt;/code&amp;gt; フラグで指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles rpm&lt;br /&gt;
 &lt;br /&gt;
 # debのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デバッグビルド =====&lt;br /&gt;
問題の調査が必要な場合、デバッグビルドを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --debug&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -&amp;gt; [Inspect Element]が利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oh my OpenCode ==&lt;br /&gt;
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主な機能 ====&lt;br /&gt;
Oh my OpenCodeは以下に示す機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Oh my OpenCode 機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; || 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード&lt;br /&gt;
|-&lt;br /&gt;
| フック統合 || ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等)&lt;br /&gt;
|-&lt;br /&gt;
| MCP統合 || Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論)&lt;br /&gt;
|-&lt;br /&gt;
| LSP/AST解析 || Language Server ProtocolとAST解析による高精度なコード理解&lt;br /&gt;
|-&lt;br /&gt;
| スキルシステム || 再利用可能なプロンプトテンプレート&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;/ultra&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門エージェント ====&lt;br /&gt;
Oh my OpenCodeは以下の専門エージェントを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門エージェント一覧&lt;br /&gt;
! エージェント名 !! 役割&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || プランニングと実装を担当するメインエージェント&amp;lt;br&amp;gt;タスク分割、実装、テスト、反復改善を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || コードベース全体の調査・分析を担当&amp;lt;br&amp;gt;プロジェクト構造の把握、依存関係の追跡を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Frontend Engineer || フロントエンド開発を担当&amp;lt;br&amp;gt;React / Next.js等のUI実装、アクセシビリティ対応を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント管理を担当&amp;lt;br&amp;gt;README、API仕様書、変更履歴の作成・更新を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Explorer || 未知のコードベースの探索を担当&amp;lt;br&amp;gt;新しいプロジェクトの構造理解や技術スタックの調査を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
インストールの前提条件は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OpenCode v1.0.150以上&lt;br /&gt;
* Node.js または Bun&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Oh my OpenCodeをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest&lt;br /&gt;
 # または&lt;br /&gt;
 npx oh-my-opencode@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
非対話モードでインストールする場合は以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest --non-interactive&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
設定ファイルは以下の場所に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト単位&lt;br /&gt;
*: &amp;lt;u&amp;gt;.opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* グローバル&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に設定ファイルの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
       &amp;quot;context7&amp;quot;: true,&lt;br /&gt;
       &amp;quot;thinking&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;sisyphus&amp;quot;: true,&lt;br /&gt;
       &amp;quot;oracle&amp;quot;: true,&lt;br /&gt;
       &amp;quot;frontend&amp;quot;: true,&lt;br /&gt;
       &amp;quot;librarian&amp;quot;: true,&lt;br /&gt;
       &amp;quot;explorer&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hooks&amp;quot;: {&lt;br /&gt;
       &amp;quot;afterEdit&amp;quot;: true,&lt;br /&gt;
       &amp;quot;afterWrite&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;skills&amp;quot;: {&lt;br /&gt;
       &amp;quot;ultra&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各設定項目の説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 設定項目一覧&lt;br /&gt;
! カテゴリ !! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | mcpServers || - || MCPサーバの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| context7 || ライブラリドキュメント取得サーバ&lt;br /&gt;
|-&lt;br /&gt;
| thinking || 構造的推論サーバ&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | agents || - || 専門エージェントの有効/無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| sisyphus || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| oracle || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| frontend || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| librarian || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| explorer || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | hooks || - || フックの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| afterEdit || ファイル編集後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| afterWrite || ファイル作成後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | skills || - || スキルの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ultra || ultraworkスキルを有効化する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
プロンプトに &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 大規模リファクタリング&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このプロジェクトの認証システムをリファクタリングして&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 新機能実装&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork ユーザ管理機能を実装して&amp;lt;/pre&amp;gt;&lt;br /&gt;
* ドキュメント調査&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このコードベースを分析してドキュメントを作成して&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アンインストール ====&lt;br /&gt;
プロジェクト単位の設定ファイルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf .opencode/agents   \&lt;br /&gt;
        .opencode/hooks    \&lt;br /&gt;
        .opencode/skills   \&lt;br /&gt;
        .opencode/mcp.json \&lt;br /&gt;
        .opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
グローバル設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.config/opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
Oh my OpenCodeを使用する際は以下の点に注意すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。&lt;br /&gt;
* フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。&lt;br /&gt;
* MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
==== プライバシーとデータ取り扱い ====&lt;br /&gt;
OpenCodeはオープンソースであり、コードの透明性を確保している。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルでの処理を優先、コードの送信は最小限に抑制する。&lt;br /&gt;
* 使用するAIプロバイダのプライバシーポリシーを確認すること。&lt;br /&gt;
* GitHubリポジトリで実装を検証可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 生成コードの検証 ====&lt;br /&gt;
AIが生成したコードは必ずレビューして検証する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コードの動作を確認&lt;br /&gt;
* セキュリティ上の問題がないか確認&lt;br /&gt;
* ライセンス上の問題がないか確認&lt;br /&gt;
* コーディング規約に準拠しているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
APIキーやパスワード等の機密情報をコードに含めないように注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキー、パスワード等の機密情報をコードに含めない。&lt;br /&gt;
* 環境変数や設定ファイルで管理する。&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitignore&amp;lt;/u&amp;gt; ファイルで機密情報を含むファイルを除外する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14624</id>
		<title>インストール - OpenCode</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14624"/>
		<updated>2026-04-09T11:11:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Step 6 : Tauriビルドの実行 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OpenCodeは、オープンソースのAIコーディングエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要な特徴として、以下が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート&lt;br /&gt;
* 2026年1月にGitHub Copilotとの公式パートナーシップを発表&lt;br /&gt;
* プライバシー重視の設計&lt;br /&gt;
*: コードは送信されず、ローカルでの処理を優先&lt;br /&gt;
* CLI、TUI、Desktop アプリ、IDE拡張機能、Webインターフェースを提供&lt;br /&gt;
* MCP (Model Context Protocol) とLSP (Language Server Protocol) をサポート&lt;br /&gt;
* 組み込みエージェント&lt;br /&gt;
** build (開発用)&lt;br /&gt;
** plan (読み取り専用分析)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。&amp;lt;br&amp;gt;&lt;br /&gt;
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主な機能 ==&lt;br /&gt;
OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TUI (Bubble Tea) || ターミナルベースの対話型インターフェース&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロバイダ対応 || 75以上のLLMプロバイダをサポート&lt;br /&gt;
|-&lt;br /&gt;
| セッション管理 || 会話履歴の保存、復元、エクスポート&lt;br /&gt;
|-&lt;br /&gt;
| ツール統合 || ファイル操作、Bash実行、テスト実行等&lt;br /&gt;
|-&lt;br /&gt;
| MCP (Model Context Protocol) || 外部ツールとの統合プロトコル&lt;br /&gt;
|-&lt;br /&gt;
| LSP (Language Server Protocol) || 25以上の組み込みLSPサーバーによる言語サーバーとの連携&lt;br /&gt;
|-&lt;br /&gt;
| 組み込みエージェント || build (開発用)&amp;lt;br&amp;gt;plan (読み取り専用分析)&amp;lt;br&amp;gt;general (調査用)&amp;lt;br&amp;gt;explore (コード探索用)&lt;br /&gt;
|-&lt;br /&gt;
| Desktop アプリ || Tauri v2ベースのネイティブアプリ&lt;br /&gt;
|-&lt;br /&gt;
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張&lt;br /&gt;
|-&lt;br /&gt;
| カスタムコマンド || &amp;lt;u&amp;gt;.opencode/commands/&amp;lt;/u&amp;gt; ディレクトリ内でユーザ定義コマンド作成&lt;br /&gt;
|-&lt;br /&gt;
| Git統合 || &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; コマンドでGitバック付きの変更管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応AIプロバイダとモデル ==&lt;br /&gt;
OpenCodeは、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要プロバイダ一覧 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要プロバイダ一覧&lt;br /&gt;
! プロバイダ !! 認証方法 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Anthropic || APIキー (&amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt;) || Claude 4.x系をサポート&lt;br /&gt;
|-&lt;br /&gt;
| OpenAI || APIキー (&amp;lt;code&amp;gt;OPENAI_API_KEY&amp;lt;/code&amp;gt;) || GPT-4o、o3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| Google || APIキー (&amp;lt;code&amp;gt;GOOGLE_API_KEY&amp;lt;/code&amp;gt;) || Gemini 3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Copilot || GitHub認証 (OAuth) || &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証&lt;br /&gt;
|-&lt;br /&gt;
| Z.AI || APIキー || GLM-5、GLM-4.7等をサポート&amp;lt;br&amp;gt;GLM Coding Plan対応&lt;br /&gt;
|-&lt;br /&gt;
| AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Azure OpenAI || Azureエンドポイント || OpenAIモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Ollama || ローカル実行 (認証不要) || ローカルモデルの実行&lt;br /&gt;
|-&lt;br /&gt;
| OpenRouter || APIキー || 複数プロバイダのルーティング&lt;br /&gt;
|-&lt;br /&gt;
| Groq || APIキー || 高速推論&lt;br /&gt;
|-&lt;br /&gt;
| Together AI || APIキー || オープンソースモデル&lt;br /&gt;
|-&lt;br /&gt;
| Fireworks AI || APIキー || 高速推論&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 推奨モデル ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 用途別推奨モデル&lt;br /&gt;
! 用途 !! 推奨モデル&lt;br /&gt;
|-&lt;br /&gt;
| 高精度コーディング || Claude Sonnet 4.5、GPT-4o&lt;br /&gt;
|-&lt;br /&gt;
| 高速処理 || Claude Haiku 4.5、Gemini 2.5 Flash&lt;br /&gt;
|-&lt;br /&gt;
| 複雑な推論 || Claude Opus 4.6、o3&lt;br /&gt;
|-&lt;br /&gt;
| ローカル実行 || Qwen 2.5 Coder (Ollama)&lt;br /&gt;
|-&lt;br /&gt;
| コスト効率重視 || GLM-4.7、GLM-5 (Z.AI Coding Plan)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ローカルモデル (Ollama) ====&lt;br /&gt;
Ollamaを使用することで、ローカル環境でモデルを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Ollamaのインストール =====&lt;br /&gt;
Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://ollama.com/install.sh | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== モデルのダウンロード =====&lt;br /&gt;
Ollamaでモデルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ollama pull qwen2.5-coder&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== OpenCodeでの設定 =====&lt;br /&gt;
&amp;lt;code&amp;gt;opencode.json&amp;lt;/code&amp;gt; でOllamaプロバイダを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;ollama/qwen2.5-coder&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
OpenCodeをインストールするには、以下の前提条件を満たす必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 標準インストール時の前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 標準インストール時の前提条件&lt;br /&gt;
! 要件 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux、MacOS、Windows&lt;br /&gt;
|-&lt;br /&gt;
| Node.js || npm経由のインストールに必要 (Node.js 18以上)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || AIプロバイダへの接続に必要&lt;br /&gt;
|-&lt;br /&gt;
| AIプロバイダのAPIキー || 使用するプロバイダのAPIキーまたは認証情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
OpenCodeのインストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クイックインストール (Linux) ====&lt;br /&gt;
公式のインストールスクリプトを使用してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://opencode.ai/install | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Homebrew (MacOS) ====&lt;br /&gt;
Homebrewを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== npm (全プラットフォーム) ====&lt;br /&gt;
npmを使用してグローバルインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows (Scoop / Chocolatey) ====&lt;br /&gt;
Windowsでは、ScoopまたはChocolateyを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Scoopでのインストール =====&lt;br /&gt;
 scoop install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Chocolateyでのインストール =====&lt;br /&gt;
 choco install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーション ====&lt;br /&gt;
[https://opencode.ai/download OpenCodeの公式Webサイト]にアクセスして、デスクトップアプリケーションをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プラットフォーム:&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux (deb、rpm)&lt;br /&gt;
* MacOS (dmg)&lt;br /&gt;
* Windows (exe)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== バージョン確認 ====&lt;br /&gt;
インストール後、バージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 初期設定 ==&lt;br /&gt;
OpenCodeの初期設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロバイダの認証 ====&lt;br /&gt;
OpenCodeの初回起動時に、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンド または &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドでAIプロバイダとの認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== GitHub Copilotとの連携 =====&lt;br /&gt;
OpenCodeはGitHub Copilotの公式パートナーであり、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証を設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 /connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、GitHub Copilotを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザが開き、GitHub認証ページが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== APIキーによる認証 =====&lt;br /&gt;
環境変数でAPIキーを設定する方法もある。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export GOOGLE_API_KEY=&amp;quot;...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を永続化する場合は、~/.profileファイル等に環境変数 &amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Z.AI (GLM) との連携 =====&lt;br /&gt;
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、[https://z.ai/subscribe Z.AI GLM または GLM Coding Plan]のサブスクリプション契約およびAPIキーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====== GLM / GLM Coding Planの概要 ======&lt;br /&gt;
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GLM Coding Plan&lt;br /&gt;
! プラン !! 月額 !! GLM-5対応 !! 5時間あたりの目安&lt;br /&gt;
|-&lt;br /&gt;
| Lite || $10 || 対応 || 約80プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Pro || $30 || 対応 || 約400プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Max || $120 || 対応 || 約1,600プロンプト&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用可能なモデルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* GLM-5 (ProプランおよびMaxプランのみ)&lt;br /&gt;
* GLM-4.7&lt;br /&gt;
* GLM-4.6&lt;br /&gt;
* GLM-4.5&lt;br /&gt;
* GLM-4.5-Air&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== 認証の設定手順 ======&lt;br /&gt;
Z.AIの[https://z.ai/manage-apikey/apikey-list APIコンソール]にアクセスして、APIキーを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドを実行して、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIのAPIキーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Select provider&lt;br /&gt;
 │  Z.AI Coding Plan&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Enter your API key&lt;br /&gt;
 │  &amp;lt;Z.AIのAPIキーを入力&amp;gt;&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動して、&amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; コマンドでGLM-5 / GLM-4.7等のモデルを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 /models&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
====== トラブルシューティング : Insufficient balance ======&lt;br /&gt;
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 Insufficient balance or no resource package. Please recharge.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
プロバイダ選択で &amp;lt;u&amp;gt;Z.AI&amp;lt;/u&amp;gt; (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Z.AI APIエンドポイントの違い&lt;br /&gt;
! エンドポイント !! URL !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 標準 (通常API) || https://api.z.ai/api/paas/v4 || 従量課金のAPI利用&lt;br /&gt;
|-&lt;br /&gt;
| Coding Plan専用 || https://api.z.ai/api/coding/paas/v4 || GLM Coding Planサブスクリプション利用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対処方法として、一旦Z.AIの認証情報をログアウトしてから、&amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; で再度ログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIの認証情報をログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth logout&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度ログインして、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan    ← Z.AI ではなく、Z.AI Coding Planを選択すること&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイル ====&lt;br /&gt;
OpenCodeの設定ファイルは、&amp;lt;u&amp;gt;プロジェクトルート&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;ホームディレクトリ&amp;lt;/u&amp;gt; に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの場所 =====&lt;br /&gt;
設定ファイルは以下の順序で検索される。&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクトルート&lt;br /&gt;
*: &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* ホームディレクトリ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.opencode/config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの例 =====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;anthropic/claude-sonnet-4-5-20250929&amp;quot;,&lt;br /&gt;
   &amp;quot;small_model&amp;quot;: &amp;quot;anthropic/claude-haiku-4-5-20251001&amp;quot;,&lt;br /&gt;
   &amp;quot;keybinds&amp;quot;: {&lt;br /&gt;
      &amp;quot;leader&amp;quot;: &amp;quot;ctrl+x&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 使用するモデル名 (プロバイダ/モデル名 形式)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-sonnet-4-5-20250929&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;openai/gpt-4o&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;small_model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 軽量タスク用のモデル (コスト削減に有効)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-haiku-4-5-20251001&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;keybinds.leader&amp;lt;/code&amp;gt;&lt;br /&gt;
*: リーダーキーの設定&lt;br /&gt;
*: デフォルト : &amp;lt;code&amp;gt;ctrl+x&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIコマンド ==&lt;br /&gt;
OpenCodeは、CLIモードと対話モードの両方で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt; || TUIを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode run &amp;quot;プロンプト&amp;quot;&amp;lt;/code&amp;gt; || 非対話モードでプロンプトを実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --model プロバイダ/モデル名&amp;lt;/code&amp;gt; || モデルを指定して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --continue&amp;lt;/code&amp;gt; || 前回のセッションを継続して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; || プロバイダの認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth logout&amp;lt;/code&amp;gt; || 認証情報を削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp list&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp add サーバー名&amp;lt;/code&amp;gt; || MCPサーバを追加&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode serve&amp;lt;/code&amp;gt; || ヘッドレスバックエンドサーバを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --version&amp;lt;/code&amp;gt; || バージョンを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 非対話モード ====&lt;br /&gt;
非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
プロジェクトの概要を説明する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;このプロジェクトの概要を説明して&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
モデルを指定してテストを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;テストを実行して&amp;quot; --model anthropic/claude-sonnet-4-5-20250929&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TUI (ターミナルユーザーインターフェース) ==&lt;br /&gt;
OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スラッシュコマンド ====&lt;br /&gt;
TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ スラッシュコマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/new&amp;lt;/code&amp;gt; || 新しいセッションを開始&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/init&amp;lt;/code&amp;gt; || プロジェクト構造を分析&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt; || 直前の変更を元に戻す (Git連携)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; || 元に戻した変更をやり直す&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/compact&amp;lt;/code&amp;gt; || 会話を要約して圧縮&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/share&amp;lt;/code&amp;gt; || 会話の共有リンクを生成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/export&amp;lt;/code&amp;gt; || 会話をMarkdownでエクスポート&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/sessions&amp;lt;/code&amp;gt; || 過去のセッション一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/agents&amp;lt;/code&amp;gt; || エージェント一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; || プロバイダ認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/status&amp;lt;/code&amp;gt; || 現在のステータスを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/mcp&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/theme&amp;lt;/code&amp;gt; || テーマを変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt; || 外部エディタで入力&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/commands&amp;lt;/code&amp;gt; || コマンド一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/exit&amp;lt;/code&amp;gt; || OpenCodeを終了&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== キーバインド ====&lt;br /&gt;
OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。&amp;lt;br&amp;gt;&lt;br /&gt;
リーダーキーを押した後に各キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ キーバインド一覧&lt;br /&gt;
! キー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [N] || 新しいセッション&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [L] || セッション一覧&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [T] || タイムライン&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [M] || モデル選択ダイアログ&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [C] || コンパクト表示&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [P] || コマンドパレット&lt;br /&gt;
|-&lt;br /&gt;
| [Tab] || Plan/Buildエージェント切替&lt;br /&gt;
|-&lt;br /&gt;
| [Page Up] / [Page Down] || スクロール&lt;br /&gt;
|-&lt;br /&gt;
| [Shift] + [Enter] || 改行入力&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル参照とBashコマンド ====&lt;br /&gt;
TUI内でファイル参照とBashコマンドの実行ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ファイル参照 =====&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; でファイルをファジー検索して参照を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 @filename&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Bashコマンドの実行 =====&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; をプレフィックスとしてBashコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 !ls -la&lt;br /&gt;
 !git status&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIバイナリのビルド (SUSE) ==&lt;br /&gt;
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルドの前提条件&lt;br /&gt;
! 項目 !! 要件&lt;br /&gt;
|-&lt;br /&gt;
| OS || &lt;br /&gt;
* RHEL 9 / 10&lt;br /&gt;
* SUSE 15 / 16&lt;br /&gt;
|-&lt;br /&gt;
| Bun || 1.3.x (&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; 内の &amp;lt;code&amp;gt;packageManager&amp;lt;/code&amp;gt; で &amp;lt;code&amp;gt;bun@1.3.9&amp;lt;/code&amp;gt; を指定)&lt;br /&gt;
|-&lt;br /&gt;
| git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 前提条件の確認コマンド =====&lt;br /&gt;
 # Bunバージョン確認 (1.3.9が必要)&lt;br /&gt;
 bun --version&lt;br /&gt;
 &lt;br /&gt;
 # ネットワーク接続の確認&lt;br /&gt;
 curl -s https://models.dev/api.json | head -c 100&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルド方式の説明 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルド方式の説明&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript (Bun ランタイム)&lt;br /&gt;
|-&lt;br /&gt;
| ビルド方式 || &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; の &amp;lt;code&amp;gt;compile: true&amp;lt;/code&amp;gt; でスタンドアロン実行ファイルを生成&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/opencode/script/build.ts&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 出力 || Bunランタイムを内蔵した単一バイナリ (&amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 環境変数の設定 ====&lt;br /&gt;
ソースディレクトリがGitリポジトリでない場合、&amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; が失敗するため、環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.14&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 依存パッケージのインストール ====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このプロジェクトはBunワークスペース構成のモノレポである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bun install&amp;lt;/code&amp;gt; コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルドの実行 ====&lt;br /&gt;
ビルドスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)&amp;lt;br&amp;gt;&lt;br /&gt;
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドスクリプトの処理内容:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; からモデルデータを取得し、TypeScript スナップショットを生成&lt;br /&gt;
* &amp;lt;code&amp;gt;@opentui/core&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;@parcel/watcher&amp;lt;/code&amp;gt; のネイティブバインディングをインストール&lt;br /&gt;
* &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; で TypeScript をスタンドアロンバイナリにコンパイル&lt;br /&gt;
* &amp;lt;code&amp;gt;packages/opencode/dist/opencode-linux-x64/bin/opencode&amp;lt;/code&amp;gt; に出力&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
ビルドが完了したら、バイナリが生成されたか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # バイナリが生成されたか確認&lt;br /&gt;
 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode&lt;br /&gt;
 &lt;br /&gt;
 # バージョン表示で動作確認&lt;br /&gt;
 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OPENCODE_VERSION=&amp;lt;バージョン  例: 1.1.53&amp;gt;&amp;lt;br&amp;gt;OPENCODE_CHANNEL=latest&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; に接続できない || ネットワーク制限 || 事前に &amp;lt;u&amp;gt;api.json&amp;lt;/u&amp;gt; をダウンロードして、&amp;lt;code&amp;gt;MODELS_DEV_API_JSON=/path/to/api.json&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
|-&lt;br /&gt;
| GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || &amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; に加えて &amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加&amp;lt;br&amp;gt;または、muslビルドを検討する。&lt;br /&gt;
|-&lt;br /&gt;
| native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper install gcc gcc-c++ make&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オフライン環境でのビルド =====&lt;br /&gt;
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 # オンライン環境で事前にダウンロード&lt;br /&gt;
 curl -o api.json https://models.dev/api.json&lt;br /&gt;
 &lt;br /&gt;
 # ビルド時にローカルファイルを指定&lt;br /&gt;
 export MODELS_DEV_API_JSON=/path/to/api.json&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== baselineビルド =====&lt;br /&gt;
CPUがAVX2命令セットをサポートしていない場合、&amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single --baseline&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== デスクトップアプリケーションのビルド ==&lt;br /&gt;
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーションの構成 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Desktop アプリの構成&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || SolidJS + Vite (TypeScript)&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Rust (Tauri v2 シェル)&lt;br /&gt;
|-&lt;br /&gt;
| サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの)&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; 配下&lt;br /&gt;
|-&lt;br /&gt;
| 出力形式 (Linux) || debパッケージ、rpmパッケージ&lt;br /&gt;
|-&lt;br /&gt;
| ソースディレクトリ || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; (フロントエンド)&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;packages/desktop/src-tauri/&amp;lt;/u&amp;gt; (Rust)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
===== OpenCode CLIバイナリのビルド =====&lt;br /&gt;
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、まず、OpenCode CLIバイナリのビルドを完了させること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Rustツールチェーン =====&lt;br /&gt;
Tauri v2 のビルドには、Rustが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Rustのインストール (未インストールの場合)&lt;br /&gt;
 curl --proto &#039;=https&#039; --tlsv1.2 https://sh.rustup.rs -sSf | sh&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数の設定を反映&lt;br /&gt;
 source &amp;quot;$HOME/.cargo/env&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 rustc --version&lt;br /&gt;
 cargo --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 依存ライブラリのインストール =====&lt;br /&gt;
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install -t pattern devel_basis&lt;br /&gt;
 sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ソースコードのダウンロード =====&lt;br /&gt;
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf opencode-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== デスクトップアプリケーションのビルド ====&lt;br /&gt;
===== Step 1 : 環境変数の設定 =====&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.4&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2 : 依存パッケージのインストール =====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、bun installに失敗する場合は、node-gypをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun add node-gyp -D&lt;br /&gt;
 # または&lt;br /&gt;
 npm install -g node-gyp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2.5 : OpenCode Desktopの最大化に関する不具合 =====&lt;br /&gt;
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 // /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rsファイル&lt;br /&gt;
 &lt;br /&gt;
 // 編集前&lt;br /&gt;
 .maximized(true)&lt;br /&gt;
 &lt;br /&gt;
 // 編集後&lt;br /&gt;
 //.maximized(true)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 3 : CLIバイナリのビルド (未完了の場合) =====&lt;br /&gt;
サイドカーとなるOpenCode CLIバイナリが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下記のエラーが表示される場合がある。&lt;br /&gt;
 | // relax version requirement&lt;br /&gt;
 | const expectedBunVersionRange = `^${expectedBunVersion}`&lt;br /&gt;
 |&lt;br /&gt;
 | if (!semver.satisfies(process.versions.bun, expectedBunVersionRange)) {&lt;br /&gt;
 |   throw new Error(`This script requires bun@${expectedBunVersionRange}, but you are using bun@${process.versions.bun}`)&lt;br /&gt;
 &lt;br /&gt;
 error: This script requires bun@^X.X.X, but you are using bun@X.X.X&lt;br /&gt;
       at /path/to/opencode-X.X.XX/packages/script/src/index.ts:16:13&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この時、bunをアップデートする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Step 4 : サイドカーの配置 =====&lt;br /&gt;
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p packages/desktop/src-tauri/sidecars&lt;br /&gt;
 cp packages/opencode/dist/opencode-linux-x64/bin/opencode \&lt;br /&gt;
    packages/desktop/src-tauri/sidecars/opencode-cli-x86_64-unknown-linux-gnu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;tauri.conf.json&amp;lt;/u&amp;gt; ファイル内の &amp;lt;code&amp;gt;externalBin&amp;lt;/code&amp;gt; に &amp;lt;u&amp;gt;sidecars/opencode-cli&amp;lt;/u&amp;gt; が指定されており、Tauriがターゲットトリプル (&amp;lt;code&amp;gt;x86_64-unknown-linux-gnu&amp;lt;/code&amp;gt;) を付与して検索する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 5 : フロントエンドのビルド確認 (任意) =====&lt;br /&gt;
Viteビルドは、&amp;lt;code&amp;gt;tauri build&amp;lt;/code&amp;gt; コマンドの &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 6 : Tauriビルドの実行 =====&lt;br /&gt;
Tauriビルドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のコマンドは、以下に示す事柄を実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;bun run build&amp;lt;/code&amp;gt;) でフロントエンドをビルドする。&lt;br /&gt;
* Cargo (Rust) でネイティブバイナリをコンパイルする。&lt;br /&gt;
* サイドカー (OpenCode CLIバイナリ) をバンドルに含める。&lt;br /&gt;
* deb / rpmパッケージを生成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt; ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すエラーが出力される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 $ tauri build&lt;br /&gt;
 thread &#039;&amp;lt;unnamed&amp;gt;&#039; panicked at crates/tauri-cli/src/interface/rust.rs:146:8:&lt;br /&gt;
 called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 24, kind: Uncategorized, message: &amp;quot;Too many open files&amp;quot; }), paths: [] }&lt;br /&gt;
 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace&lt;br /&gt;
 error: script &amp;quot;tauri&amp;quot; was terminated by signal SIGABRT (Abort)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Tauriのビルドプロセス (Rustコンパイル含む) が、現在のシェルセッションで許可されているオープンファイル数の上限を超えているため、表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するには、オープンファイル数の上限を引き上げる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ulimit -n 65536&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、&amp;lt;code&amp;gt;ulimit -n 65536&amp;lt;/code&amp;gt; コマンドを実行して、&amp;lt;u&amp;gt;Operation not permitted&amp;lt;/u&amp;gt; エラーが出力される場合は、システム側のハードリミットも引き上げる必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/security/limits.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/security/limits.confファイル&lt;br /&gt;
 &lt;br /&gt;
 *  soft  nofile  65536&lt;br /&gt;
 *  hard  nofile  65536&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
編集した後、再ログインまたはPCを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 生成されたファイルの確認 =====&lt;br /&gt;
以下に示すディレクトリにファイルが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 # debパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリ (直接実行も可能)&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
RPMパッケージをインストールして確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージをインストールして確認&lt;br /&gt;
 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 ## または&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリを直接起動&lt;br /&gt;
 ./packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須&lt;br /&gt;
|-&lt;br /&gt;
| opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。&lt;br /&gt;
|-&lt;br /&gt;
| 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 &amp;lt;code&amp;gt;OC_ALLOW_WAYLAND=1&amp;lt;/code&amp;gt; でWaylandを強制する。&lt;br /&gt;
|-&lt;br /&gt;
| RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 特定パッケージ形式のみビルド =====&lt;br /&gt;
全形式をビルドする必要がない場合、&amp;lt;code&amp;gt;--bundles&amp;lt;/code&amp;gt; フラグで指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles rpm&lt;br /&gt;
 &lt;br /&gt;
 # debのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デバッグビルド =====&lt;br /&gt;
問題の調査が必要な場合、デバッグビルドを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --debug&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -&amp;gt; [Inspect Element]が利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oh my OpenCode ==&lt;br /&gt;
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主な機能 ====&lt;br /&gt;
Oh my OpenCodeは以下に示す機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Oh my OpenCode 機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; || 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード&lt;br /&gt;
|-&lt;br /&gt;
| フック統合 || ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等)&lt;br /&gt;
|-&lt;br /&gt;
| MCP統合 || Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論)&lt;br /&gt;
|-&lt;br /&gt;
| LSP/AST解析 || Language Server ProtocolとAST解析による高精度なコード理解&lt;br /&gt;
|-&lt;br /&gt;
| スキルシステム || 再利用可能なプロンプトテンプレート&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;/ultra&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門エージェント ====&lt;br /&gt;
Oh my OpenCodeは以下の専門エージェントを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門エージェント一覧&lt;br /&gt;
! エージェント名 !! 役割&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || プランニングと実装を担当するメインエージェント&amp;lt;br&amp;gt;タスク分割、実装、テスト、反復改善を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || コードベース全体の調査・分析を担当&amp;lt;br&amp;gt;プロジェクト構造の把握、依存関係の追跡を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Frontend Engineer || フロントエンド開発を担当&amp;lt;br&amp;gt;React / Next.js等のUI実装、アクセシビリティ対応を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント管理を担当&amp;lt;br&amp;gt;README、API仕様書、変更履歴の作成・更新を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Explorer || 未知のコードベースの探索を担当&amp;lt;br&amp;gt;新しいプロジェクトの構造理解や技術スタックの調査を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
インストールの前提条件は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OpenCode v1.0.150以上&lt;br /&gt;
* Node.js または Bun&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Oh my OpenCodeをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest&lt;br /&gt;
 # または&lt;br /&gt;
 npx oh-my-opencode@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
非対話モードでインストールする場合は以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest --non-interactive&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
設定ファイルは以下の場所に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト単位&lt;br /&gt;
*: &amp;lt;u&amp;gt;.opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* グローバル&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に設定ファイルの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
       &amp;quot;context7&amp;quot;: true,&lt;br /&gt;
       &amp;quot;thinking&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;sisyphus&amp;quot;: true,&lt;br /&gt;
       &amp;quot;oracle&amp;quot;: true,&lt;br /&gt;
       &amp;quot;frontend&amp;quot;: true,&lt;br /&gt;
       &amp;quot;librarian&amp;quot;: true,&lt;br /&gt;
       &amp;quot;explorer&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hooks&amp;quot;: {&lt;br /&gt;
       &amp;quot;afterEdit&amp;quot;: true,&lt;br /&gt;
       &amp;quot;afterWrite&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;skills&amp;quot;: {&lt;br /&gt;
       &amp;quot;ultra&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各設定項目の説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 設定項目一覧&lt;br /&gt;
! カテゴリ !! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | mcpServers || - || MCPサーバの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| context7 || ライブラリドキュメント取得サーバ&lt;br /&gt;
|-&lt;br /&gt;
| thinking || 構造的推論サーバ&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | agents || - || 専門エージェントの有効/無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| sisyphus || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| oracle || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| frontend || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| librarian || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| explorer || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | hooks || - || フックの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| afterEdit || ファイル編集後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| afterWrite || ファイル作成後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | skills || - || スキルの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ultra || ultraworkスキルを有効化する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
プロンプトに &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 大規模リファクタリング&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このプロジェクトの認証システムをリファクタリングして&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 新機能実装&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork ユーザ管理機能を実装して&amp;lt;/pre&amp;gt;&lt;br /&gt;
* ドキュメント調査&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このコードベースを分析してドキュメントを作成して&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アンインストール ====&lt;br /&gt;
プロジェクト単位の設定ファイルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf .opencode/agents   \&lt;br /&gt;
        .opencode/hooks    \&lt;br /&gt;
        .opencode/skills   \&lt;br /&gt;
        .opencode/mcp.json \&lt;br /&gt;
        .opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
グローバル設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.config/opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
Oh my OpenCodeを使用する際は以下の点に注意すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。&lt;br /&gt;
* フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。&lt;br /&gt;
* MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
==== プライバシーとデータ取り扱い ====&lt;br /&gt;
OpenCodeはオープンソースであり、コードの透明性を確保している。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルでの処理を優先、コードの送信は最小限に抑制する。&lt;br /&gt;
* 使用するAIプロバイダのプライバシーポリシーを確認すること。&lt;br /&gt;
* GitHubリポジトリで実装を検証可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 生成コードの検証 ====&lt;br /&gt;
AIが生成したコードは必ずレビューして検証する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コードの動作を確認&lt;br /&gt;
* セキュリティ上の問題がないか確認&lt;br /&gt;
* ライセンス上の問題がないか確認&lt;br /&gt;
* コーディング規約に準拠しているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
APIキーやパスワード等の機密情報をコードに含めないように注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキー、パスワード等の機密情報をコードに含めない。&lt;br /&gt;
* 環境変数や設定ファイルで管理する。&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitignore&amp;lt;/u&amp;gt; ファイルで機密情報を含むファイルを除外する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Hazkey&amp;diff=14623</id>
		<title>インストール - Hazkey</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Hazkey&amp;diff=14623"/>
		<updated>2026-04-08T00:39:31Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* SUSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Hazkeyは、Fcitx5向けの高精度日本語入力エンジンである。&amp;lt;br&amp;gt;&lt;br /&gt;
スローガンは「思考を止めない日本語入力」であり、入力作業を妨げないUI/UXの実装を目指して設計されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
iOS/MacOS向けアプリであるazooKeyと同じ高精度変換技術 (AzooKeyKanaKanjiConverter) を採用しており、Linux環境での日本語入力を効率化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドにはSwift 6.1以上が必要であり、RHEL および SUSE環境ではビルド環境の構築に一定の手順を要する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Hazkeyの機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 高精度変換エンジン || iOS/MacOS向けアプリであるazooKeyと同じ変換技術を採用し、高い変換精度を実現する。&lt;br /&gt;
|-&lt;br /&gt;
| 自動変換機能 || 入力すると即座に自動で変換され、変換操作に妨げられることなく長文を入力できる。&lt;br /&gt;
|-&lt;br /&gt;
| Zenzaiニューラル変換 || GPT-2ベースのAIによるプロフィールや文脈を考慮した高度な変換に対応する。(オプション)&lt;br /&gt;
|-&lt;br /&gt;
| GGMLサポート || GPU対応バックエンド (Vulkan) を利用した高速処理が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
公式情報は以下を参照する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 公式サイト&lt;br /&gt;
*: [https://hazkey.hiira.dev hazkey.hiira.dev]&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: [https://github.com/7ka-Hiira/fcitx5-hazkey github.com/7ka-Hiira/fcitx5-hazkey]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
Hazkeyのビルドおよび動作に必要なソフトウェアを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 動作要件一覧&lt;br /&gt;
! ソフトウェア !! 必要バージョン !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Swift || 6.1 以上 || Swiftlyによるインストールを推奨&lt;br /&gt;
|-&lt;br /&gt;
| fcitx5 || 5.0.4 以上 || 入力フレームワーク本体&lt;br /&gt;
|-&lt;br /&gt;
| Qt || 6.7推奨 (6.2以降で可) || 6.7未満では表示に問題が発生する場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| CMake || 3.21以上 (4.x以降推奨) || ビルドシステム&lt;br /&gt;
|-&lt;br /&gt;
| Protobuf || 3.12以上 || プロトコルバッファライブラリ&lt;br /&gt;
|-&lt;br /&gt;
| Ninja || 最新版推奨 || ビルドツール&lt;br /&gt;
|-&lt;br /&gt;
| Gettext || 最新版推奨 || 国際化対応ライブラリ&lt;br /&gt;
|-&lt;br /&gt;
| Vulkan headers || 最新版推奨 || GPU対応バックエンド用 (オプション、無効化可能)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swiftのインストール ==&lt;br /&gt;
Hazkey のビルドには Swift 6.1以上が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
現在の推奨インストール方法は、公式ツールの Swiftly (rustup 相当) を使用する方法である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式サポート状況 ====&lt;br /&gt;
ディストリビューションごとの公式サポート状況を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Swift 公式サポート状況&lt;br /&gt;
! ディストリビューション !! 公式サポート&lt;br /&gt;
|-&lt;br /&gt;
| RHEL 9 || 公式サポート&lt;br /&gt;
|-&lt;br /&gt;
| RHEL 10 || 未公式 (RHEL 9ツールチェインで動作可)&lt;br /&gt;
|-&lt;br /&gt;
| SUSE 15 / 16 || 未公式 (RHEL 9ツールチェインで動作可)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RHEL ====&lt;br /&gt;
RHEL 10は、Swiftの公式サポートリストに未掲載だが、RHEL 9と非常に近い構成のため、同ツールチェインで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install pkg-config binutils gcc git glibc-static libbsd-devel libcurl-devel libedit-devel libicu-devel libstdc++-static \&lt;br /&gt;
                  python3 sqlite-devel zlib-devel ncurses-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Swiftlyをダウンロードして初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz&lt;br /&gt;
 tar xf swiftly-$(uname -m).tar.gz&lt;br /&gt;
 cd swiftly-$(uname -m)&lt;br /&gt;
 &lt;br /&gt;
 ./swiftly init --quiet-shell-followup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
init実行時に &amp;lt;u&amp;gt;RHEL 10は未公式プラットフォームです&amp;lt;/u&amp;gt; と表示された場合は、プロンプトでRHEL 9を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bash / Zsh&lt;br /&gt;
 . &amp;quot;${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Fish&lt;br /&gt;
 source (set -q SWIFTLY_HOME_DIR; and echo $SWIFTLY_HOME_DIR; or echo $HOME/.local/share/swiftly)/env.fish&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最新のSwiftをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly install latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールされているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 swift --version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SUSE ====&lt;br /&gt;
SUSEでは、Swiftlyが非公式プラットフォームと検出するため、手動でRHEL 9ツールチェインを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install pkg-config binutils binutils-gold gcc gcc-c++ git gzip glibc-static libbsd-devel libedit-devel libicu-devel \&lt;br /&gt;
                     libcurl-devel ncurses-devel sqlite3-devel zlib-devel python3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Swiftlyをダウンロードして初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz&lt;br /&gt;
 tar xf swiftly-$(uname -m).tar.gz&lt;br /&gt;
 cd swiftly-$(uname -m)&lt;br /&gt;
 &lt;br /&gt;
 ./swiftly init --quiet-shell-followup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;./swiftly init --quiet-shell-followup&amp;lt;/code&amp;gt; コマンドを実行した時、以下に示すエラーが出力される場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Error: The ca-certificates package is not installed. Swiftly won&#039;t be able to trust the sites to perform its downloads. &lt;br /&gt;
 &lt;br /&gt;
 You can install the ca-certificates package on your system to fix this.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Swiftlyは特定のLinuxディストリビューション (Debian系) のファイルパス (/etc/ssl/certs/ca-certificates.crt )を探しているためである。&amp;lt;br&amp;gt;&lt;br /&gt;
SUSEにおいてはパスが異なるため、所定のパスにシンボリックリンクを貼る必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo ln -s /var/lib/ca-certificates/ca-bundle.pem \&lt;br /&gt;
            /etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度、&amp;lt;code&amp;gt;./swiftly init --quiet-shell-followup&amp;lt;/code&amp;gt; コマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
初期化中に以下のプロンプトが表示されるので、&amp;lt;u&amp;gt;4&amp;lt;/u&amp;gt; を入力して、RHEL 9を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 SUSE Linux Enterprise 15 SP 6 is not an officially supported platform,&lt;br /&gt;
 but the toolchains for another platform may still work on it.&lt;br /&gt;
 Please select the platform to use for toolchain downloads:&lt;br /&gt;
 &lt;br /&gt;
 0) Cancel&lt;br /&gt;
 1) Ubuntu 24.04&lt;br /&gt;
 2) Ubuntu 22.04&lt;br /&gt;
 3) Ubuntu 20.04&lt;br /&gt;
 4) Ubuntu 18.04&lt;br /&gt;
 5) Fedora Linux 39&lt;br /&gt;
 6) RHEL 9&lt;br /&gt;
 7) Amazon Linux 2&lt;br /&gt;
 8) Debian GNU/Linux 12&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bash / Zsh&lt;br /&gt;
 . &amp;quot;${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Fish&lt;br /&gt;
 source (set -q SWIFTLY_HOME_DIR; and echo $SWIFTLY_HOME_DIR; or echo $HOME/.local/share/swiftly)/env.fish&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最新のSwiftをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly install latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールされているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 swift --version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Swiftlyの主なコマンド ====&lt;br /&gt;
下表に、Swiftlyの主なコマンドを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Swiftly コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| swiftly list-available || インストール可能なバージョンの一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly install 6.2.3 || 特定バージョンをインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly use 6.2.3 || 使用するバージョンを切り替える。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly uninstall 5.10 || 指定バージョンを削除する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly self-update || Swiftly自体を更新する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly install main-snapshot || 開発スナップショットをインストールする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用する方法 ====&lt;br /&gt;
RHEL / SUSEの環境構築に問題が生じる場合は、公式コンテナイメージを使用する方法が最も確実である。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker および Podman のどちらでも使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 podman run -it --rm swift:latest swift --version&lt;br /&gt;
 &lt;br /&gt;
 # プロジェクトのビルド&lt;br /&gt;
 podman run -it --rm \&lt;br /&gt;
    -v $(pwd):/workspace -w /workspace \&lt;br /&gt;
    swift:latest swift build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swiftのアンインストール ==&lt;br /&gt;
Swiftlyでインストールした場合は、Swiftly経由で削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツールチェーンの確認と削除 ====&lt;br /&gt;
まず、インストール済みのツールチェーンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly list&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたバージョンをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
複数バージョンがある場合は、それぞれに対して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly uninstall &amp;lt;バージョン  例: 6.2.3&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Swiftly本体の削除 ====&lt;br /&gt;
Swiftly本体と全てのツールチェーンを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.local/share/swiftly&lt;br /&gt;
 rm -f ~/.local/bin/swiftly&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シェル設定のクリーンアップ ====&lt;br /&gt;
Swiftlyインストール時に追加された環境変数の設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fishの場合は、以下のコマンドで該当する設定を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -rn &amp;quot;swiftly\|SWIFT&amp;quot; ~/.config/fish/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
該当する行があれば、エディタで削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
Hazkeyのビルドに必要な依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RHEL ====&lt;br /&gt;
Vulkanを使用しない場合は、vulkan-headersのインストールを省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install cmake ninja-build gettext protobuf-devel protobuf-compiler fcitx5-devel \&lt;br /&gt;
                  qt6-qtbase-devel qt6-qttools-devel vulkan-headers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SUSE ====&lt;br /&gt;
Vulkanを使用しない場合は、vulkan-headersのインストールを省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install cmake ninja gettext-tools protobuf-devel fcitx5-devel \&lt;br /&gt;
                     qt6-base-devel qt6-tools-devel qt6-linguist-devel vulkan-headers&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ビルドとインストール ==&lt;br /&gt;
==== ソースコードの取得 ====&lt;br /&gt;
Gitを使用して、Hazkeyのソースコードを再帰的にクローンする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt; オプションはサブモジュールも含めて取得するために必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone --recursive https://github.com/7ka-Hiira/fcitx5-hazkey.git -b 0.2.1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルド ====&lt;br /&gt;
Hazkeyをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vulkanを無効にしてビルドする場合は、&amp;lt;code&amp;gt;-DGGML_VULKAN=OFF&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 cd fcitx5-hazkey&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake -G Ninja \&lt;br /&gt;
       -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のGCC&amp;gt;   \&lt;br /&gt;
       -DCMAKE_CXX_COMPILER=&amp;lt;GCC 8以降のG++&amp;gt; \&lt;br /&gt;
       -DSWIFT_LINK_PATH=$HOME/.local/share/swiftly/toolchains/&amp;lt;バージョン&amp;gt;/usr/lib/swift/linux \&lt;br /&gt;
       -DCMAKE_BUILD_TYPE=Release  \&lt;br /&gt;
       -DCMAKE_INSTALL_PREFIX=/usr \&lt;br /&gt;
       -DGGML_VULKAN=OFF           \  # Vulkanを無効にする場合&lt;br /&gt;
       ..&lt;br /&gt;
 &lt;br /&gt;
 ninja -j $(nproc)&lt;br /&gt;
 sudo ninja install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Fcitx5を再起動して、Hazkeyを入力メソッドとして選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
下表に、ビルドおよびインストール時に発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 発生環境 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| 三角関数の再定義エラーが発生する || 全環境 || Swiftのシムヘッダファイル &amp;lt;u&amp;gt;/&amp;lt;swiftのインストール場所&amp;gt;/lib/swift_static/_FoundationCShims/_CStdlib.h&amp;lt;/u&amp;gt; の&amp;lt;br&amp;gt;約50行目にある3行をコメントアウトする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_mm256_set_m128&amp;lt;/code&amp;gt; が未定義のエラーが発生する || SUSE 15 || SUSE 15付属のGCC 7では &amp;lt;u&amp;gt;_mm256_set_m128&amp;lt;/u&amp;gt; が未定義のため、GCC 8以降を使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 三角関数の再定義エラーへの対処 ====&lt;br /&gt;
Swift のシムヘッダーファイルに含まれる三角関数の定義が競合する場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順でエラーを解消する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対象ファイルを開いて、該当ファイルの約 50 行目付近にある三角関数の定義に関する3行をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /&amp;lt;swiftのインストール場所&amp;gt;/lib/swift_static/_FoundationCShims/_CStdlib.h&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GCCバージョン問題への対処 ====&lt;br /&gt;
&amp;lt;u&amp;gt;_mm256_set_m128&amp;lt;/u&amp;gt; というAVX intrinsic関数は、GCC 8 以降のimmintrin.hファイルで追加されたため、GCC 7以前ではビルドできない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 cmake -G Ninja \&lt;br /&gt;
    -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のGCC&amp;gt;   \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER=&amp;lt;GCC 8以降のG++&amp;gt; \&lt;br /&gt;
    -DCMAKE_BUILD_TYPE=Release  \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=/usr \&lt;br /&gt;
    -DGGML_VULKAN=OFF           \&lt;br /&gt;
    ..&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Hazkey,Fcitx5,fcitx5-hazkey,日本語入力,IME,azooKey,AzooKeyKanaKanjiConverter,Zenzai,ニューラル変換,Swift,Swiftly,RHEL,SUSE,GCC,CMake,Ninja,Protobuf,Vulkan,GGML&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Hazkey&amp;diff=14622</id>
		<title>インストール - Hazkey</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Hazkey&amp;diff=14622"/>
		<updated>2026-04-08T00:37:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* SUSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Hazkeyは、Fcitx5向けの高精度日本語入力エンジンである。&amp;lt;br&amp;gt;&lt;br /&gt;
スローガンは「思考を止めない日本語入力」であり、入力作業を妨げないUI/UXの実装を目指して設計されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
iOS/MacOS向けアプリであるazooKeyと同じ高精度変換技術 (AzooKeyKanaKanjiConverter) を採用しており、Linux環境での日本語入力を効率化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドにはSwift 6.1以上が必要であり、RHEL および SUSE環境ではビルド環境の構築に一定の手順を要する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Hazkeyの機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 高精度変換エンジン || iOS/MacOS向けアプリであるazooKeyと同じ変換技術を採用し、高い変換精度を実現する。&lt;br /&gt;
|-&lt;br /&gt;
| 自動変換機能 || 入力すると即座に自動で変換され、変換操作に妨げられることなく長文を入力できる。&lt;br /&gt;
|-&lt;br /&gt;
| Zenzaiニューラル変換 || GPT-2ベースのAIによるプロフィールや文脈を考慮した高度な変換に対応する。(オプション)&lt;br /&gt;
|-&lt;br /&gt;
| GGMLサポート || GPU対応バックエンド (Vulkan) を利用した高速処理が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
公式情報は以下を参照する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 公式サイト&lt;br /&gt;
*: [https://hazkey.hiira.dev hazkey.hiira.dev]&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: [https://github.com/7ka-Hiira/fcitx5-hazkey github.com/7ka-Hiira/fcitx5-hazkey]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
Hazkeyのビルドおよび動作に必要なソフトウェアを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 動作要件一覧&lt;br /&gt;
! ソフトウェア !! 必要バージョン !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Swift || 6.1 以上 || Swiftlyによるインストールを推奨&lt;br /&gt;
|-&lt;br /&gt;
| fcitx5 || 5.0.4 以上 || 入力フレームワーク本体&lt;br /&gt;
|-&lt;br /&gt;
| Qt || 6.7推奨 (6.2以降で可) || 6.7未満では表示に問題が発生する場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| CMake || 3.21以上 (4.x以降推奨) || ビルドシステム&lt;br /&gt;
|-&lt;br /&gt;
| Protobuf || 3.12以上 || プロトコルバッファライブラリ&lt;br /&gt;
|-&lt;br /&gt;
| Ninja || 最新版推奨 || ビルドツール&lt;br /&gt;
|-&lt;br /&gt;
| Gettext || 最新版推奨 || 国際化対応ライブラリ&lt;br /&gt;
|-&lt;br /&gt;
| Vulkan headers || 最新版推奨 || GPU対応バックエンド用 (オプション、無効化可能)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swiftのインストール ==&lt;br /&gt;
Hazkey のビルドには Swift 6.1以上が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
現在の推奨インストール方法は、公式ツールの Swiftly (rustup 相当) を使用する方法である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式サポート状況 ====&lt;br /&gt;
ディストリビューションごとの公式サポート状況を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Swift 公式サポート状況&lt;br /&gt;
! ディストリビューション !! 公式サポート&lt;br /&gt;
|-&lt;br /&gt;
| RHEL 9 || 公式サポート&lt;br /&gt;
|-&lt;br /&gt;
| RHEL 10 || 未公式 (RHEL 9ツールチェインで動作可)&lt;br /&gt;
|-&lt;br /&gt;
| SUSE 15 / 16 || 未公式 (RHEL 9ツールチェインで動作可)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RHEL ====&lt;br /&gt;
RHEL 10は、Swiftの公式サポートリストに未掲載だが、RHEL 9と非常に近い構成のため、同ツールチェインで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install pkg-config binutils gcc git glibc-static libbsd-devel libcurl-devel libedit-devel libicu-devel libstdc++-static \&lt;br /&gt;
                  python3 sqlite-devel zlib-devel ncurses-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Swiftlyをダウンロードして初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz&lt;br /&gt;
 tar xf swiftly-$(uname -m).tar.gz&lt;br /&gt;
 cd swiftly-$(uname -m)&lt;br /&gt;
 &lt;br /&gt;
 ./swiftly init --quiet-shell-followup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
init実行時に &amp;lt;u&amp;gt;RHEL 10は未公式プラットフォームです&amp;lt;/u&amp;gt; と表示された場合は、プロンプトでRHEL 9を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bash / Zsh&lt;br /&gt;
 . &amp;quot;${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Fish&lt;br /&gt;
 source (set -q SWIFTLY_HOME_DIR; and echo $SWIFTLY_HOME_DIR; or echo $HOME/.local/share/swiftly)/env.fish&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最新のSwiftをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly install latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールされているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 swift --version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SUSE ====&lt;br /&gt;
SUSEでは、Swiftlyが非公式プラットフォームと検出するため、手動でRHEL 9ツールチェインを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install pkg-config binutils binutils-gold gcc gcc-c++ git gzip glibc-static libbsd-devel libedit-devel libicu-devel \&lt;br /&gt;
                     libcurl-devel ncurses-devel sqlite3-devel zlib-devel python3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Swiftlyをダウンロードして初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz&lt;br /&gt;
 tar xf swiftly-$(uname -m).tar.gz&lt;br /&gt;
 cd swiftly-$(uname -m)&lt;br /&gt;
 &lt;br /&gt;
 ./swiftly init --quiet-shell-followup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;./swiftly init --quiet-shell-followup&amp;lt;/code&amp;gt; コマンドを実行した時、以下に示すエラーが出力される場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Error: The ca-certificates package is not installed. Swiftly won&#039;t be able to trust the sites to perform its downloads. &lt;br /&gt;
 &lt;br /&gt;
 You can install the ca-certificates package on your system to fix this.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Swiftlyは特定のLinuxディストリビューション (Debian系) のファイルパス (/etc/ssl/certs/ca-certificates.crt )を探しているためである。&amp;lt;br&amp;gt;&lt;br /&gt;
SUSEにおいてはパスが異なるため、所定のパスにシンボリックリンクを貼る必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo ln -s /var/lib/ca-certificates/ca-bundle.pem \&lt;br /&gt;
            /etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度、&amp;lt;code&amp;gt;./swiftly init --quiet-shell-followup&amp;lt;/code&amp;gt; コマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
初期化中に以下のプロンプトが表示されるので、&amp;lt;u&amp;gt;4&amp;lt;/u&amp;gt; を入力して、RHEL 9を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 SUSE Linux Enterprise 15 SP 6 is not an officially supported platform,&lt;br /&gt;
 but the toolchains for another platform may still work on it.&lt;br /&gt;
 Please select the platform to use for toolchain downloads:&lt;br /&gt;
 &lt;br /&gt;
 0) Cancel&lt;br /&gt;
 1) Ubuntu 24.04&lt;br /&gt;
 2) Ubuntu 22.04&lt;br /&gt;
 3) Ubuntu 20.04&lt;br /&gt;
 4) Ubuntu 18.04&lt;br /&gt;
 5) Fedora Linux 39&lt;br /&gt;
 6) RHEL 9&lt;br /&gt;
 7) Amazon Linux 2&lt;br /&gt;
 8) Debian GNU/Linux 12&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bash / Zsh&lt;br /&gt;
 . &amp;quot;${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Fish&lt;br /&gt;
 source (set -q SWIFTLY_HOME_DIR; and echo $SWIFTLY_HOME_DIR; or echo $HOME/.local/share/swiftly)/env.fish&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最新のSwiftをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly install latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールされているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 swift --version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Swiftlyの主なコマンド ====&lt;br /&gt;
下表に、Swiftlyの主なコマンドを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Swiftly コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| swiftly list-available || インストール可能なバージョンの一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly install 6.2.3 || 特定バージョンをインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly use 6.2.3 || 使用するバージョンを切り替える。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly uninstall 5.10 || 指定バージョンを削除する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly self-update || Swiftly自体を更新する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly install main-snapshot || 開発スナップショットをインストールする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用する方法 ====&lt;br /&gt;
RHEL / SUSEの環境構築に問題が生じる場合は、公式コンテナイメージを使用する方法が最も確実である。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker および Podman のどちらでも使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 podman run -it --rm swift:latest swift --version&lt;br /&gt;
 &lt;br /&gt;
 # プロジェクトのビルド&lt;br /&gt;
 podman run -it --rm \&lt;br /&gt;
    -v $(pwd):/workspace -w /workspace \&lt;br /&gt;
    swift:latest swift build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swiftのアンインストール ==&lt;br /&gt;
Swiftlyでインストールした場合は、Swiftly経由で削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツールチェーンの確認と削除 ====&lt;br /&gt;
まず、インストール済みのツールチェーンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly list&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたバージョンをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
複数バージョンがある場合は、それぞれに対して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly uninstall &amp;lt;バージョン  例: 6.2.3&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Swiftly本体の削除 ====&lt;br /&gt;
Swiftly本体と全てのツールチェーンを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.local/share/swiftly&lt;br /&gt;
 rm -f ~/.local/bin/swiftly&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シェル設定のクリーンアップ ====&lt;br /&gt;
Swiftlyインストール時に追加された環境変数の設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fishの場合は、以下のコマンドで該当する設定を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -rn &amp;quot;swiftly\|SWIFT&amp;quot; ~/.config/fish/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
該当する行があれば、エディタで削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
Hazkeyのビルドに必要な依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RHEL ====&lt;br /&gt;
Vulkanを使用しない場合は、vulkan-headersのインストールを省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install cmake ninja-build gettext protobuf-devel protobuf-compiler fcitx5-devel \&lt;br /&gt;
                  qt6-qtbase-devel qt6-qttools-devel vulkan-headers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SUSE ====&lt;br /&gt;
Vulkanを使用しない場合は、vulkan-headersのインストールを省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install cmake ninja gettext-tools protobuf-devel fcitx5-devel qt6-base-devel qt6-tools-devel vulkan-headers&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ビルドとインストール ==&lt;br /&gt;
==== ソースコードの取得 ====&lt;br /&gt;
Gitを使用して、Hazkeyのソースコードを再帰的にクローンする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt; オプションはサブモジュールも含めて取得するために必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone --recursive https://github.com/7ka-Hiira/fcitx5-hazkey.git -b 0.2.1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルド ====&lt;br /&gt;
Hazkeyをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vulkanを無効にしてビルドする場合は、&amp;lt;code&amp;gt;-DGGML_VULKAN=OFF&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 cd fcitx5-hazkey&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake -G Ninja \&lt;br /&gt;
       -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のGCC&amp;gt;   \&lt;br /&gt;
       -DCMAKE_CXX_COMPILER=&amp;lt;GCC 8以降のG++&amp;gt; \&lt;br /&gt;
       -DSWIFT_LINK_PATH=$HOME/.local/share/swiftly/toolchains/&amp;lt;バージョン&amp;gt;/usr/lib/swift/linux \&lt;br /&gt;
       -DCMAKE_BUILD_TYPE=Release  \&lt;br /&gt;
       -DCMAKE_INSTALL_PREFIX=/usr \&lt;br /&gt;
       -DGGML_VULKAN=OFF           \  # Vulkanを無効にする場合&lt;br /&gt;
       ..&lt;br /&gt;
 &lt;br /&gt;
 ninja -j $(nproc)&lt;br /&gt;
 sudo ninja install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Fcitx5を再起動して、Hazkeyを入力メソッドとして選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
下表に、ビルドおよびインストール時に発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 発生環境 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| 三角関数の再定義エラーが発生する || 全環境 || Swiftのシムヘッダファイル &amp;lt;u&amp;gt;/&amp;lt;swiftのインストール場所&amp;gt;/lib/swift_static/_FoundationCShims/_CStdlib.h&amp;lt;/u&amp;gt; の&amp;lt;br&amp;gt;約50行目にある3行をコメントアウトする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_mm256_set_m128&amp;lt;/code&amp;gt; が未定義のエラーが発生する || SUSE 15 || SUSE 15付属のGCC 7では &amp;lt;u&amp;gt;_mm256_set_m128&amp;lt;/u&amp;gt; が未定義のため、GCC 8以降を使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 三角関数の再定義エラーへの対処 ====&lt;br /&gt;
Swift のシムヘッダーファイルに含まれる三角関数の定義が競合する場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順でエラーを解消する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対象ファイルを開いて、該当ファイルの約 50 行目付近にある三角関数の定義に関する3行をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /&amp;lt;swiftのインストール場所&amp;gt;/lib/swift_static/_FoundationCShims/_CStdlib.h&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GCCバージョン問題への対処 ====&lt;br /&gt;
&amp;lt;u&amp;gt;_mm256_set_m128&amp;lt;/u&amp;gt; というAVX intrinsic関数は、GCC 8 以降のimmintrin.hファイルで追加されたため、GCC 7以前ではビルドできない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 cmake -G Ninja \&lt;br /&gt;
    -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のGCC&amp;gt;   \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER=&amp;lt;GCC 8以降のG++&amp;gt; \&lt;br /&gt;
    -DCMAKE_BUILD_TYPE=Release  \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=/usr \&lt;br /&gt;
    -DGGML_VULKAN=OFF           \&lt;br /&gt;
    ..&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Hazkey,Fcitx5,fcitx5-hazkey,日本語入力,IME,azooKey,AzooKeyKanaKanjiConverter,Zenzai,ニューラル変換,Swift,Swiftly,RHEL,SUSE,GCC,CMake,Ninja,Protobuf,Vulkan,GGML&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Hazkey&amp;diff=14621</id>
		<title>インストール - Hazkey</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_Hazkey&amp;diff=14621"/>
		<updated>2026-04-08T00:13:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ビルド */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Hazkeyは、Fcitx5向けの高精度日本語入力エンジンである。&amp;lt;br&amp;gt;&lt;br /&gt;
スローガンは「思考を止めない日本語入力」であり、入力作業を妨げないUI/UXの実装を目指して設計されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
iOS/MacOS向けアプリであるazooKeyと同じ高精度変換技術 (AzooKeyKanaKanjiConverter) を採用しており、Linux環境での日本語入力を効率化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドにはSwift 6.1以上が必要であり、RHEL および SUSE環境ではビルド環境の構築に一定の手順を要する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Hazkeyの機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 高精度変換エンジン || iOS/MacOS向けアプリであるazooKeyと同じ変換技術を採用し、高い変換精度を実現する。&lt;br /&gt;
|-&lt;br /&gt;
| 自動変換機能 || 入力すると即座に自動で変換され、変換操作に妨げられることなく長文を入力できる。&lt;br /&gt;
|-&lt;br /&gt;
| Zenzaiニューラル変換 || GPT-2ベースのAIによるプロフィールや文脈を考慮した高度な変換に対応する。(オプション)&lt;br /&gt;
|-&lt;br /&gt;
| GGMLサポート || GPU対応バックエンド (Vulkan) を利用した高速処理が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
公式情報は以下を参照する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 公式サイト&lt;br /&gt;
*: [https://hazkey.hiira.dev hazkey.hiira.dev]&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: [https://github.com/7ka-Hiira/fcitx5-hazkey github.com/7ka-Hiira/fcitx5-hazkey]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
Hazkeyのビルドおよび動作に必要なソフトウェアを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 動作要件一覧&lt;br /&gt;
! ソフトウェア !! 必要バージョン !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Swift || 6.1 以上 || Swiftlyによるインストールを推奨&lt;br /&gt;
|-&lt;br /&gt;
| fcitx5 || 5.0.4 以上 || 入力フレームワーク本体&lt;br /&gt;
|-&lt;br /&gt;
| Qt || 6.7推奨 (6.2以降で可) || 6.7未満では表示に問題が発生する場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| CMake || 3.21以上 (4.x以降推奨) || ビルドシステム&lt;br /&gt;
|-&lt;br /&gt;
| Protobuf || 3.12以上 || プロトコルバッファライブラリ&lt;br /&gt;
|-&lt;br /&gt;
| Ninja || 最新版推奨 || ビルドツール&lt;br /&gt;
|-&lt;br /&gt;
| Gettext || 最新版推奨 || 国際化対応ライブラリ&lt;br /&gt;
|-&lt;br /&gt;
| Vulkan headers || 最新版推奨 || GPU対応バックエンド用 (オプション、無効化可能)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swiftのインストール ==&lt;br /&gt;
Hazkey のビルドには Swift 6.1以上が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
現在の推奨インストール方法は、公式ツールの Swiftly (rustup 相当) を使用する方法である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式サポート状況 ====&lt;br /&gt;
ディストリビューションごとの公式サポート状況を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Swift 公式サポート状況&lt;br /&gt;
! ディストリビューション !! 公式サポート&lt;br /&gt;
|-&lt;br /&gt;
| RHEL 9 || 公式サポート&lt;br /&gt;
|-&lt;br /&gt;
| RHEL 10 || 未公式 (RHEL 9ツールチェインで動作可)&lt;br /&gt;
|-&lt;br /&gt;
| SUSE 15 / 16 || 未公式 (RHEL 9ツールチェインで動作可)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RHEL ====&lt;br /&gt;
RHEL 10は、Swiftの公式サポートリストに未掲載だが、RHEL 9と非常に近い構成のため、同ツールチェインで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install pkg-config binutils gcc git glibc-static libbsd-devel libcurl-devel libedit-devel libicu-devel libstdc++-static \&lt;br /&gt;
                  python3 sqlite-devel zlib-devel ncurses-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Swiftlyをダウンロードして初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz&lt;br /&gt;
 tar xf swiftly-$(uname -m).tar.gz&lt;br /&gt;
 cd swiftly-$(uname -m)&lt;br /&gt;
 &lt;br /&gt;
 ./swiftly init --quiet-shell-followup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
init実行時に &amp;lt;u&amp;gt;RHEL 10は未公式プラットフォームです&amp;lt;/u&amp;gt; と表示された場合は、プロンプトでRHEL 9を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bash / Zsh&lt;br /&gt;
 . &amp;quot;${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Fish&lt;br /&gt;
 source (set -q SWIFTLY_HOME_DIR; and echo $SWIFTLY_HOME_DIR; or echo $HOME/.local/share/swiftly)/env.fish&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最新のSwiftをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly install latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールされているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 swift --version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SUSE ====&lt;br /&gt;
SUSEでは、Swiftlyが非公式プラットフォームと検出するため、手動でRHEL 9ツールチェインを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install pkg-config binutils binutils-gold gcc gcc-c++ git gzip glibc-static libbsd-devel libedit-devel libicu-devel \&lt;br /&gt;
                     libcurl-devel ncurses-devel sqlite3-devel zlib-devel python3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Swiftlyをダウンロードして初期化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz&lt;br /&gt;
 tar xf swiftly-$(uname -m).tar.gz&lt;br /&gt;
 cd swiftly-$(uname -m)&lt;br /&gt;
 &lt;br /&gt;
 ./swiftly init --quiet-shell-followup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
初期化中に以下のプロンプトが表示されるので、&amp;lt;u&amp;gt;4&amp;lt;/u&amp;gt; を入力して、RHEL 9を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 SUSE Linux Enterprise 15 SP 6 is not an officially supported platform,&lt;br /&gt;
 but the toolchains for another platform may still work on it.&lt;br /&gt;
 Please select the platform to use for toolchain downloads:&lt;br /&gt;
 &lt;br /&gt;
 0) Cancel&lt;br /&gt;
 1) Ubuntu 24.04&lt;br /&gt;
 2) Ubuntu 22.04&lt;br /&gt;
 3) Ubuntu 20.04&lt;br /&gt;
 4) RHEL 9&lt;br /&gt;
 5) Amazon Linux 2023&lt;br /&gt;
 6) Amazon Linux 2&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bash / Zsh&lt;br /&gt;
 . &amp;quot;${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Fish&lt;br /&gt;
 source (set -q SWIFTLY_HOME_DIR; and echo $SWIFTLY_HOME_DIR; or echo $HOME/.local/share/swiftly)/env.fish&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最新のSwiftをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly install latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールされているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 swift --version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Swiftlyの主なコマンド ====&lt;br /&gt;
下表に、Swiftlyの主なコマンドを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Swiftly コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| swiftly list-available || インストール可能なバージョンの一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly install 6.2.3 || 特定バージョンをインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly use 6.2.3 || 使用するバージョンを切り替える。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly uninstall 5.10 || 指定バージョンを削除する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly self-update || Swiftly自体を更新する。&lt;br /&gt;
|-&lt;br /&gt;
| swiftly install main-snapshot || 開発スナップショットをインストールする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用する方法 ====&lt;br /&gt;
RHEL / SUSEの環境構築に問題が生じる場合は、公式コンテナイメージを使用する方法が最も確実である。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker および Podman のどちらでも使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 podman run -it --rm swift:latest swift --version&lt;br /&gt;
 &lt;br /&gt;
 # プロジェクトのビルド&lt;br /&gt;
 podman run -it --rm \&lt;br /&gt;
    -v $(pwd):/workspace -w /workspace \&lt;br /&gt;
    swift:latest swift build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swiftのアンインストール ==&lt;br /&gt;
Swiftlyでインストールした場合は、Swiftly経由で削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツールチェーンの確認と削除 ====&lt;br /&gt;
まず、インストール済みのツールチェーンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly list&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたバージョンをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
複数バージョンがある場合は、それぞれに対して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 swiftly uninstall &amp;lt;バージョン  例: 6.2.3&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Swiftly本体の削除 ====&lt;br /&gt;
Swiftly本体と全てのツールチェーンを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.local/share/swiftly&lt;br /&gt;
 rm -f ~/.local/bin/swiftly&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シェル設定のクリーンアップ ====&lt;br /&gt;
Swiftlyインストール時に追加された環境変数の設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fishの場合は、以下のコマンドで該当する設定を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -rn &amp;quot;swiftly\|SWIFT&amp;quot; ~/.config/fish/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
該当する行があれば、エディタで削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
Hazkeyのビルドに必要な依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RHEL ====&lt;br /&gt;
Vulkanを使用しない場合は、vulkan-headersのインストールを省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install cmake ninja-build gettext protobuf-devel protobuf-compiler fcitx5-devel \&lt;br /&gt;
                  qt6-qtbase-devel qt6-qttools-devel vulkan-headers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SUSE ====&lt;br /&gt;
Vulkanを使用しない場合は、vulkan-headersのインストールを省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install cmake ninja gettext-tools protobuf-devel fcitx5-devel qt6-base-devel qt6-tools-devel vulkan-headers&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ビルドとインストール ==&lt;br /&gt;
==== ソースコードの取得 ====&lt;br /&gt;
Gitを使用して、Hazkeyのソースコードを再帰的にクローンする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt; オプションはサブモジュールも含めて取得するために必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone --recursive https://github.com/7ka-Hiira/fcitx5-hazkey.git -b 0.2.1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルド ====&lt;br /&gt;
Hazkeyをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vulkanを無効にしてビルドする場合は、&amp;lt;code&amp;gt;-DGGML_VULKAN=OFF&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 cd fcitx5-hazkey&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake -G Ninja \&lt;br /&gt;
       -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のGCC&amp;gt;   \&lt;br /&gt;
       -DCMAKE_CXX_COMPILER=&amp;lt;GCC 8以降のG++&amp;gt; \&lt;br /&gt;
       -DSWIFT_LINK_PATH=$HOME/.local/share/swiftly/toolchains/&amp;lt;バージョン&amp;gt;/usr/lib/swift/linux \&lt;br /&gt;
       -DCMAKE_BUILD_TYPE=Release  \&lt;br /&gt;
       -DCMAKE_INSTALL_PREFIX=/usr \&lt;br /&gt;
       -DGGML_VULKAN=OFF           \  # Vulkanを無効にする場合&lt;br /&gt;
       ..&lt;br /&gt;
 &lt;br /&gt;
 ninja -j $(nproc)&lt;br /&gt;
 sudo ninja install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Fcitx5を再起動して、Hazkeyを入力メソッドとして選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
下表に、ビルドおよびインストール時に発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 発生環境 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| 三角関数の再定義エラーが発生する || 全環境 || Swiftのシムヘッダファイル &amp;lt;u&amp;gt;/&amp;lt;swiftのインストール場所&amp;gt;/lib/swift_static/_FoundationCShims/_CStdlib.h&amp;lt;/u&amp;gt; の&amp;lt;br&amp;gt;約50行目にある3行をコメントアウトする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_mm256_set_m128&amp;lt;/code&amp;gt; が未定義のエラーが発生する || SUSE 15 || SUSE 15付属のGCC 7では &amp;lt;u&amp;gt;_mm256_set_m128&amp;lt;/u&amp;gt; が未定義のため、GCC 8以降を使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 三角関数の再定義エラーへの対処 ====&lt;br /&gt;
Swift のシムヘッダーファイルに含まれる三角関数の定義が競合する場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順でエラーを解消する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対象ファイルを開いて、該当ファイルの約 50 行目付近にある三角関数の定義に関する3行をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /&amp;lt;swiftのインストール場所&amp;gt;/lib/swift_static/_FoundationCShims/_CStdlib.h&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GCCバージョン問題への対処 ====&lt;br /&gt;
&amp;lt;u&amp;gt;_mm256_set_m128&amp;lt;/u&amp;gt; というAVX intrinsic関数は、GCC 8 以降のimmintrin.hファイルで追加されたため、GCC 7以前ではビルドできない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 cmake -G Ninja \&lt;br /&gt;
    -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のGCC&amp;gt;   \&lt;br /&gt;
    -DCMAKE_CXX_COMPILER=&amp;lt;GCC 8以降のG++&amp;gt; \&lt;br /&gt;
    -DCMAKE_BUILD_TYPE=Release  \&lt;br /&gt;
    -DCMAKE_INSTALL_PREFIX=/usr \&lt;br /&gt;
    -DGGML_VULKAN=OFF           \&lt;br /&gt;
    ..&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Hazkey,Fcitx5,fcitx5-hazkey,日本語入力,IME,azooKey,AzooKeyKanaKanjiConverter,Zenzai,ニューラル変換,Swift,Swiftly,RHEL,SUSE,GCC,CMake,Ninja,Protobuf,Vulkan,GGML&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=Linux%E3%81%9D%E3%81%AE%E4%BB%96_-_%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=14620</id>
		<title>Linuxその他 - ディスクイメージ</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Linux%E3%81%9D%E3%81%AE%E4%BB%96_-_%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=14620"/>
		<updated>2026-04-06T02:05:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ディスクイメージファイルの拡張 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
ディスクイメージは、ディスク全体またはパーティションの完全なコピーであり、後で復元や分析が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、システムのバックアップや移行、テスト等で非常に役立つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ディスクイメージファイルの拡張 ==&lt;br /&gt;
Linux OSのディスクイメージファイルをマウントして使用する場合、ディスクイメージファイルの空き領域が不足する時がある。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、ディスクイメージファイルのサイズを変更する手順について記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 方法 1 : 非対話式 (推奨) ====&lt;br /&gt;
まず、ディスクイメージファイルを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;ディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 2.54 GiB, 2722103296 バイト, 5316608 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; コマンドを使用して、空き領域を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
上記の例では、最初のパーティションはブートパーティション（カーネルとバイナリブロブ）、2番目のパーティションはファイルシステムである。&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージファイルに空の空き領域を追加して、2番目のパーティションを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dd if=/dev/zero bs=1M count=3072 &amp;gt;&amp;gt; &amp;lt;元のディスクイメージファイル&amp;gt;.img  # この例では、3[GB]を追加している&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
空き領域を追加したディスクイメージファイルの情報を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、出力結果は空き領域が追加されたサイズ(以下の例では、5.54[GiB])と表示するが、ディスクイメージファイルの2番目のパーティションのサイズはまだ変更されていない。(以下の例では、2[G])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するため、ディスクイメージファイルの空の追加領域の部分を埋めるようにパーティションのサイズを変更する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
まず、ループバックデバイスを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -f -P --show &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;がディスクイメージファイル全体、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p2がサイズ拡張するパーティションとして設定される。&amp;lt;br&amp;gt;&lt;br /&gt;
他のループバックデバイスを選択する場合は、未使用のループバックデバイスのドライブを割り当てる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;  # X : ループバックデバイス番号&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo fdisk -lu /dev/loop0&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク /dev/loop0: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス         起動 開始位置  終了位置    セクタ   サイズ Id  タイプ&lt;br /&gt;
 /dev/loop0p1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 /dev/loop0p2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の出力例では、/dev/loop0p1はブートパーティション、/dev/loop0p2はルートパーティションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、&amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt; コマンドを非対話モードで実行して、2番目のパーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;100%&amp;lt;/code&amp;gt; を指定すると、ディスクの残り全領域を使用してパーティションを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted -s /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; resizepart &amp;lt;パーティション番号&amp;gt; 100%&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo parted -s /dev/loop0 resizepart 2 100%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、上記のコマンドで警告が表示されて失敗する場合は、&amp;lt;code&amp;gt;---pretend-input-tty&amp;lt;/code&amp;gt; オプションを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted ---pretend-input-tty /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; resizepart &amp;lt;パーティション番号&amp;gt; yes 100%&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo parted ---pretend-input-tty /dev/loop0 resizepart 2 yes 100%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常に拡張されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted -s /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ    ファイルシステム       フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   5943MB  5402MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;e2fsck&amp;lt;/code&amp;gt; コマンドを実行して、拡張したディスクイメージファイルのファイルシステムを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo e2fsck -f /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;resize2fs&amp;lt;/code&amp;gt; コマンドで拡張したディスクイメージファイルのファイルシステムを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※パーティションのサイズは既に変更しているので、ここではファイルシステムをリサイズ(拡張)する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo resize2fs /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、ループバックデバイスを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -d /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 方法 2 : 対話式 ====&lt;br /&gt;
まず、ディスクイメージファイルを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;ディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 2.54 GiB, 2722103296 バイト, 5316608 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;コマンドを使用して、空き領域を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
上記の例では、最初のパーティションはブートパーティション（カーネルとバイナリブロブ）、2番目のパーティションはファイルシステムである。&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージファイルに空の空き領域を追加して、2番目のパーティションを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dd if=/dev/zero bs=1M count=3072 &amp;gt;&amp;gt; &amp;lt;元のディスクイメージファイル&amp;gt;.img  # この例では、3[GB]を追加している&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
空き領域を追加したディスクイメージファイルの情報を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、出力結果は空き領域が追加されたサイズ(以下の例では、5.54[GiB])と表示するが、ディスクイメージファイルの2番目のパーティションのサイズはまだ変更されていない。(以下の例では、2[G])&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するため、ディスクイメージファイルの空の追加領域の部分を埋めるようにパーティションのサイズを変更する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
まず、ループバックデバイスを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -f -P --show &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;がディスクイメージファイル全体、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p2がサイズ拡張するパーティションとして設定される。&amp;lt;br&amp;gt;&lt;br /&gt;
他のループバックデバイスを選択する場合は、未使用のループバックデバイスのドライブを割り当てる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;  # X : ループバックデバイス番号&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo fdisk -lu /dev/loop0&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク /dev/loop0: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス         起動 開始位置  終了位置    セクタ   サイズ Id  タイプ&lt;br /&gt;
 /dev/loop0p1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 /dev/loop0p2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の出力例では、/dev/loop0p1はブートパーティション、/dev/loop0p2はルートパーティションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、&amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;を実行して、パーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
2番目のパーティションのサイズを、&amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;コマンドのヘッダ出力の&amp;lt;u&amp;gt;Disk&amp;lt;/u&amp;gt;または&amp;lt;u&amp;gt;ディスク&amp;lt;/u&amp;gt;で始まる行で指定された/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;のフルサイズに変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、&amp;lt;u&amp;gt;ディスク&amp;lt;/u&amp;gt;は5943[MB]である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 (parted) print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ     ファイルシステム      フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   2722MB  2181MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2番目のパーティションサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、2番目のパーティション(ルートパーティション)をフルサイズに変更している。&amp;lt;br&amp;gt;&lt;br /&gt;
 (parted) resizepart &amp;lt;パーティション番号&amp;gt; &amp;lt;拡張するサイズ&amp;gt;&lt;br /&gt;
 または&lt;br /&gt;
 (parted) resizepart &amp;lt;パーティション番号&amp;gt; &amp;lt;拡張するサイズの割合&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 (parted) resizepart 2 5943MB&lt;br /&gt;
 または&lt;br /&gt;
 (parted) resizepart 2 100%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常に拡張されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 (parted) print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ    ファイルシステム       フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   5943MB  5402MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;e2fsck&amp;lt;/code&amp;gt;コマンドを実行して、拡張したディスクイメージファイルのファイルシステムを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo e2fsck -f /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;resize2fs&amp;lt;/code&amp;gt;で拡張したディスクイメージファイルのファイルシステムを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※パーティションのサイズは既に変更しているので、ここではファイルシステムをリサイズ（拡張）する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo resize2fs /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージファイルが正常に拡張されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (parted) print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例 (正常に拡張されている場合)&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ     ファイルシステム      フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   5943MB  5402MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、ループバックデバイスを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -d /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 方法 3 ====&lt;br /&gt;
まず、空のイメージファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、拡張するサイズを5[GiB]としている。&amp;lt;br&amp;gt;&lt;br /&gt;
 truncate -s 5GiB &amp;lt;空のイメージファイル名&amp;gt;.img&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
元のディスクイメージファイルと空のイメージファイルを結合する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;lt;元のディスクイメージファイル&amp;gt;.img &amp;lt;空のイメージファイル名&amp;gt;.img &amp;gt; &amp;lt;結合したディスクイメージファイル名&amp;gt;.img&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
現在空いているループバックデバイスを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -f&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
結合したディスクイメージファイルをループバックデバイスにマウントする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; &amp;lt;結合したディスクイメージファイル名&amp;gt;.img  # X : ループバックデバイス番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にマウントできたかどうかを確認するため、ループバックデバイスの設定状況を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -a&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0: []: (&amp;lt;結合したディスクイメージファイル名&amp;gt;.img)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パーティションテーブルを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Disk /dev/loop0: 5.6 GiB, 3054501888 bytes, 5965824 sectors&lt;br /&gt;
 Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disklabel type: gpt&lt;br /&gt;
 Disk identifier: 00CF01F2-3FB1-498B-BFE9-BA5B68507014&lt;br /&gt;
 &lt;br /&gt;
 デバイス     起動  Start 最後から セクタ  Size Id タイプ&lt;br /&gt;
 /dev/loop0p1         2048   1048576   131072  511M  c W95 FAT32 (LBA)&lt;br /&gt;
 /dev/loop0p2      1048576  13913020 13313020  4.1G 83 Linux ファイルシステム&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
結合したディスクイメージファイルのパーティションを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Welcome to fdisk (util-linux 2.37.4).&lt;br /&gt;
 Changes will remain in memory only, until you decide to write them.&lt;br /&gt;
 Be careful before using the write command.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、拡張するパーティションを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;キーを入力した後、拡張するパーティション番号を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): d&lt;br /&gt;
 パーティション番号 (1,2, default 2): 2&lt;br /&gt;
 &lt;br /&gt;
 Partition 2 has been deleted.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、拡張するパーティションの種類を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、プライマリとして使用するため、&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;キーを入力した後、&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
なお、extendedパーティション(拡張パーティション)は、主にスワップ向けに使用される。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): n&lt;br /&gt;
 Partition type&lt;br /&gt;
    p   primary (1 primary, 0 extended, 3 free)&lt;br /&gt;
    e   extended (container for logical partitions)&lt;br /&gt;
 &lt;br /&gt;
 Select (default p): p&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張するパーティション番号および拡張するサイズ(セクタ番号の最初と最後)を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトの値は、最大セクタサイズである。&amp;lt;br&amp;gt;&lt;br /&gt;
 パーティション番号 (2-4, default 2): 2&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 First sector (1048576-15913020, default 1048576): &lt;br /&gt;
 Last sector, +sectors or +size{K,M,G,T,P} (1048576-15913020, default 15913020): &lt;br /&gt;
 &lt;br /&gt;
 Created a new partition 2 of type &#039;Linux&#039; and of size 7.1 GiB.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張するパーティションタイプを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;キーを入力した後、パーティション番号およびLinuxファイルシステムを示すパーティションタイプである&amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt;を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): t&lt;br /&gt;
 パーティション番号 (1,2, default 2): 2&lt;br /&gt;
 Partition type (type L to list all types): 83&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Changed type of partition &#039;Linux&#039; to &#039;Linux&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定したパーティションを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): p&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Disk /dev/loop0: 7.59 GiB, 8147483648 bytes, 14864445 sectors&lt;br /&gt;
 Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disklabel type: gpt&lt;br /&gt;
 Disk identifier: 00CF01F2-3FB1-498B-BFE9-BA5B68507014&lt;br /&gt;
 &lt;br /&gt;
 デバイス     起動  Start 最後から セクタ  Size Id タイプ&lt;br /&gt;
 /dev/loop0p1         2048   1048576  1048576  511M  c EFI システム&lt;br /&gt;
 /dev/loop0p2      1048576  15913020 14864445  7.1G 83 Linux ファイルシステム&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記で設定したパーティションを書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): w&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 The partition table has been altered.&lt;br /&gt;
 Calling ioctl() to re-read partition table.&lt;br /&gt;
 Re-reading the partition table failed.: 無効な引数です&lt;br /&gt;
 &lt;br /&gt;
 The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ループバックデバイスを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -d /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージをマウントする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo mount -o loop,offset=&amp;lt;オフセット番号  (1セクタサイズ ✕ セクタの開始番号)&amp;gt; &amp;lt;結合したディスクイメージファイル名&amp;gt;.img &amp;lt;マウントするディレクトリ&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張の設定をしたパーティションを拡大する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 設定されているループバックデバイス名を確認&lt;br /&gt;
 sudo losetup -a&lt;br /&gt;
 &lt;br /&gt;
 # パーティションの拡大&lt;br /&gt;
 sudo resize2fs /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張したパーティションを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 df&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0                    1048576    15913020     14864445  35% /mnt&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SDカードのパーティションの拡張 ==&lt;br /&gt;
SDカードの場合は、SDカードをPCに挿入してパーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
イメージファイルをフラッシュした後にパーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パーティションのサイズを拡張するには、以下に示す2つの方法がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Growpartの使用&lt;br /&gt;
*# GrowPartをインストールする。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo zypper install growpart&amp;lt;/code&amp;gt;&lt;br /&gt;
*# GrowPartを実行して、パーティションのサイズを設定する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo growpart  /dev/mmcblk&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#00A000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号, Yはパーティション番号&lt;br /&gt;
*# パーティションのサイズを変更する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo resize2fs /dev/mmcblk&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#00A000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号, Yはパーティション番号&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Partedの使用 (推奨)&lt;br /&gt;
*# PCにSDカードを挿入する。&lt;br /&gt;
*# Partedを実行して、パーティションのサイズを設定する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo parted /dev/sd&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号&lt;br /&gt;
*#: &amp;lt;code&amp;gt;(parted) resizepart 2 100%&amp;lt;/code&amp;gt;&lt;br /&gt;
*#: &amp;lt;code&amp;gt;(parted) quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*# パーティションのサイズを変更する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo resize2fs /dev/sd&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00A000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号, Yはパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意 1&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;実機の内部からパーティションのサイズを変更することは禁止である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;現在マウントされているパーティションのサイズを変更すると、奇妙な結果になることがある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意 2 : PinePhone Beta/ProのeMMCの拡張&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PinePhone Beta/ProのeMMCを拡張する場合、Jumpdriveを使用して、PCとUSBケーブルで接続してeMMCに直接アクセスする。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;その後、eMMCのパーティションのサイズを変更する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== qcow2ファイルのサイズの拡張 ==&lt;br /&gt;
KVMで作成した仮想マシンのディスクファイル(qcow2ファイル)を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
なお、仮想マシンのセットアップが完了していることが前提となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
仮想マシンのディスクファイルのリサイズは、&amp;lt;code&amp;gt;virsh&amp;lt;/code&amp;gt;コマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのパス&amp;gt; &amp;lt;ファイルサイズ&amp;gt; [--pool &amp;lt;プール名 または UUID&amp;gt;] [--allocate] [--delta] [--shrink]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルサイズは、&amp;lt;code&amp;gt;50GB&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;50000MB&amp;lt;/code&amp;gt;、または、&amp;lt;code&amp;gt;50GiB&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;5120MiB&amp;lt;/code&amp;gt;等と記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--allocate&amp;lt;/code&amp;gt;オプションは、rawファイルにのみ対応しており、qcow2ファイルに対して指定するとエラーになるので注意する。 (基本的には使用しない)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--delta&amp;lt;/code&amp;gt;オプションを付加しない場合、&amp;lt;ファイルサイズ&amp;gt;には変更後のサイズを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--delta&amp;lt;/code&amp;gt;オプションを付加する場合、代わりにサイズ拡張 / 縮小の差分の値を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--shrink&amp;lt;/code&amp;gt;オプションを付加する場合、サイズを縮小する際に指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
拡張の際に指定するとエラーとなることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 拡張手順 ====&lt;br /&gt;
まず、プール名を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh pool-list&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 #  Name                     State    Autostart&lt;br /&gt;
 # ----------------------------------------------&lt;br /&gt;
 #  default                  active   yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プール名にある仮想マシン名を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-list --pool &amp;lt;プール名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 #  名前          パス&lt;br /&gt;
 # -----------------------------------------------------&lt;br /&gt;
 #  RHEL_9       /run/media/suse/SAMSUNG860EVO/KVM/RHEL_9&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
現在のボリュームサイズを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-info --pool &amp;lt;プール名&amp;gt; &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 名前:       RHEL_9.qcow2&lt;br /&gt;
 タイプ:      ファイル&lt;br /&gt;
 容量:       40.00 GiB&lt;br /&gt;
 割り当て:    12.19 GiB&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、プール名 : defaultに存在するサイズ : 50[GiB]の仮想マシン名 : RHEL_9.qcow2を、50[GiB]に拡張している。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す2種類のコマンドは、同様の結果になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、&amp;lt;code&amp;gt;--delta&amp;lt;/code&amp;gt;を使用する方が現在の容量を意識せずに済む。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; --delta 10GiB&lt;br /&gt;
 # または&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; 50GiB&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、仮想マシンのファイルサイズを5[GiB]縮小している。&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルサイズの縮小する場合はデータを破壊するリスクがあるため、実行する前にバックアップを作成した方がよい。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; --delta -5GiB --shrink&lt;br /&gt;
 # または&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; 35GiB --shrink&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14619</id>
		<title>インストール - OpenCode</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14619"/>
		<updated>2026-04-05T08:56:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* デスクトップアプリケーションのビルド */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OpenCodeは、オープンソースのAIコーディングエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要な特徴として、以下が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート&lt;br /&gt;
* 2026年1月にGitHub Copilotとの公式パートナーシップを発表&lt;br /&gt;
* プライバシー重視の設計&lt;br /&gt;
*: コードは送信されず、ローカルでの処理を優先&lt;br /&gt;
* CLI、TUI、Desktop アプリ、IDE拡張機能、Webインターフェースを提供&lt;br /&gt;
* MCP (Model Context Protocol) とLSP (Language Server Protocol) をサポート&lt;br /&gt;
* 組み込みエージェント&lt;br /&gt;
** build (開発用)&lt;br /&gt;
** plan (読み取り専用分析)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。&amp;lt;br&amp;gt;&lt;br /&gt;
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主な機能 ==&lt;br /&gt;
OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TUI (Bubble Tea) || ターミナルベースの対話型インターフェース&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロバイダ対応 || 75以上のLLMプロバイダをサポート&lt;br /&gt;
|-&lt;br /&gt;
| セッション管理 || 会話履歴の保存、復元、エクスポート&lt;br /&gt;
|-&lt;br /&gt;
| ツール統合 || ファイル操作、Bash実行、テスト実行等&lt;br /&gt;
|-&lt;br /&gt;
| MCP (Model Context Protocol) || 外部ツールとの統合プロトコル&lt;br /&gt;
|-&lt;br /&gt;
| LSP (Language Server Protocol) || 25以上の組み込みLSPサーバーによる言語サーバーとの連携&lt;br /&gt;
|-&lt;br /&gt;
| 組み込みエージェント || build (開発用)&amp;lt;br&amp;gt;plan (読み取り専用分析)&amp;lt;br&amp;gt;general (調査用)&amp;lt;br&amp;gt;explore (コード探索用)&lt;br /&gt;
|-&lt;br /&gt;
| Desktop アプリ || Tauri v2ベースのネイティブアプリ&lt;br /&gt;
|-&lt;br /&gt;
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張&lt;br /&gt;
|-&lt;br /&gt;
| カスタムコマンド || &amp;lt;u&amp;gt;.opencode/commands/&amp;lt;/u&amp;gt; ディレクトリ内でユーザ定義コマンド作成&lt;br /&gt;
|-&lt;br /&gt;
| Git統合 || &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; コマンドでGitバック付きの変更管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応AIプロバイダとモデル ==&lt;br /&gt;
OpenCodeは、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要プロバイダ一覧 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要プロバイダ一覧&lt;br /&gt;
! プロバイダ !! 認証方法 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Anthropic || APIキー (&amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt;) || Claude 4.x系をサポート&lt;br /&gt;
|-&lt;br /&gt;
| OpenAI || APIキー (&amp;lt;code&amp;gt;OPENAI_API_KEY&amp;lt;/code&amp;gt;) || GPT-4o、o3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| Google || APIキー (&amp;lt;code&amp;gt;GOOGLE_API_KEY&amp;lt;/code&amp;gt;) || Gemini 3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Copilot || GitHub認証 (OAuth) || &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証&lt;br /&gt;
|-&lt;br /&gt;
| Z.AI || APIキー || GLM-5、GLM-4.7等をサポート&amp;lt;br&amp;gt;GLM Coding Plan対応&lt;br /&gt;
|-&lt;br /&gt;
| AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Azure OpenAI || Azureエンドポイント || OpenAIモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Ollama || ローカル実行 (認証不要) || ローカルモデルの実行&lt;br /&gt;
|-&lt;br /&gt;
| OpenRouter || APIキー || 複数プロバイダのルーティング&lt;br /&gt;
|-&lt;br /&gt;
| Groq || APIキー || 高速推論&lt;br /&gt;
|-&lt;br /&gt;
| Together AI || APIキー || オープンソースモデル&lt;br /&gt;
|-&lt;br /&gt;
| Fireworks AI || APIキー || 高速推論&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 推奨モデル ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 用途別推奨モデル&lt;br /&gt;
! 用途 !! 推奨モデル&lt;br /&gt;
|-&lt;br /&gt;
| 高精度コーディング || Claude Sonnet 4.5、GPT-4o&lt;br /&gt;
|-&lt;br /&gt;
| 高速処理 || Claude Haiku 4.5、Gemini 2.5 Flash&lt;br /&gt;
|-&lt;br /&gt;
| 複雑な推論 || Claude Opus 4.6、o3&lt;br /&gt;
|-&lt;br /&gt;
| ローカル実行 || Qwen 2.5 Coder (Ollama)&lt;br /&gt;
|-&lt;br /&gt;
| コスト効率重視 || GLM-4.7、GLM-5 (Z.AI Coding Plan)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ローカルモデル (Ollama) ====&lt;br /&gt;
Ollamaを使用することで、ローカル環境でモデルを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Ollamaのインストール =====&lt;br /&gt;
Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://ollama.com/install.sh | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== モデルのダウンロード =====&lt;br /&gt;
Ollamaでモデルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ollama pull qwen2.5-coder&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== OpenCodeでの設定 =====&lt;br /&gt;
&amp;lt;code&amp;gt;opencode.json&amp;lt;/code&amp;gt; でOllamaプロバイダを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;ollama/qwen2.5-coder&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
OpenCodeをインストールするには、以下の前提条件を満たす必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 標準インストール時の前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 標準インストール時の前提条件&lt;br /&gt;
! 要件 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux、MacOS、Windows&lt;br /&gt;
|-&lt;br /&gt;
| Node.js || npm経由のインストールに必要 (Node.js 18以上)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || AIプロバイダへの接続に必要&lt;br /&gt;
|-&lt;br /&gt;
| AIプロバイダのAPIキー || 使用するプロバイダのAPIキーまたは認証情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
OpenCodeのインストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クイックインストール (Linux) ====&lt;br /&gt;
公式のインストールスクリプトを使用してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://opencode.ai/install | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Homebrew (MacOS) ====&lt;br /&gt;
Homebrewを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== npm (全プラットフォーム) ====&lt;br /&gt;
npmを使用してグローバルインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows (Scoop / Chocolatey) ====&lt;br /&gt;
Windowsでは、ScoopまたはChocolateyを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Scoopでのインストール =====&lt;br /&gt;
 scoop install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Chocolateyでのインストール =====&lt;br /&gt;
 choco install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーション ====&lt;br /&gt;
[https://opencode.ai/download OpenCodeの公式Webサイト]にアクセスして、デスクトップアプリケーションをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プラットフォーム:&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux (deb、rpm)&lt;br /&gt;
* MacOS (dmg)&lt;br /&gt;
* Windows (exe)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== バージョン確認 ====&lt;br /&gt;
インストール後、バージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 初期設定 ==&lt;br /&gt;
OpenCodeの初期設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロバイダの認証 ====&lt;br /&gt;
OpenCodeの初回起動時に、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンド または &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドでAIプロバイダとの認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== GitHub Copilotとの連携 =====&lt;br /&gt;
OpenCodeはGitHub Copilotの公式パートナーであり、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証を設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 /connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、GitHub Copilotを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザが開き、GitHub認証ページが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== APIキーによる認証 =====&lt;br /&gt;
環境変数でAPIキーを設定する方法もある。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export GOOGLE_API_KEY=&amp;quot;...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を永続化する場合は、~/.profileファイル等に環境変数 &amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Z.AI (GLM) との連携 =====&lt;br /&gt;
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、[https://z.ai/subscribe Z.AI GLM または GLM Coding Plan]のサブスクリプション契約およびAPIキーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====== GLM / GLM Coding Planの概要 ======&lt;br /&gt;
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GLM Coding Plan&lt;br /&gt;
! プラン !! 月額 !! GLM-5対応 !! 5時間あたりの目安&lt;br /&gt;
|-&lt;br /&gt;
| Lite || $10 || 対応 || 約80プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Pro || $30 || 対応 || 約400プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Max || $120 || 対応 || 約1,600プロンプト&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用可能なモデルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* GLM-5 (ProプランおよびMaxプランのみ)&lt;br /&gt;
* GLM-4.7&lt;br /&gt;
* GLM-4.6&lt;br /&gt;
* GLM-4.5&lt;br /&gt;
* GLM-4.5-Air&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== 認証の設定手順 ======&lt;br /&gt;
Z.AIの[https://z.ai/manage-apikey/apikey-list APIコンソール]にアクセスして、APIキーを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドを実行して、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIのAPIキーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Select provider&lt;br /&gt;
 │  Z.AI Coding Plan&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Enter your API key&lt;br /&gt;
 │  &amp;lt;Z.AIのAPIキーを入力&amp;gt;&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動して、&amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; コマンドでGLM-5 / GLM-4.7等のモデルを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 /models&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
====== トラブルシューティング : Insufficient balance ======&lt;br /&gt;
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 Insufficient balance or no resource package. Please recharge.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
プロバイダ選択で &amp;lt;u&amp;gt;Z.AI&amp;lt;/u&amp;gt; (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Z.AI APIエンドポイントの違い&lt;br /&gt;
! エンドポイント !! URL !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 標準 (通常API) || https://api.z.ai/api/paas/v4 || 従量課金のAPI利用&lt;br /&gt;
|-&lt;br /&gt;
| Coding Plan専用 || https://api.z.ai/api/coding/paas/v4 || GLM Coding Planサブスクリプション利用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対処方法として、一旦Z.AIの認証情報をログアウトしてから、&amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; で再度ログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIの認証情報をログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth logout&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度ログインして、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan    ← Z.AI ではなく、Z.AI Coding Planを選択すること&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイル ====&lt;br /&gt;
OpenCodeの設定ファイルは、&amp;lt;u&amp;gt;プロジェクトルート&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;ホームディレクトリ&amp;lt;/u&amp;gt; に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの場所 =====&lt;br /&gt;
設定ファイルは以下の順序で検索される。&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクトルート&lt;br /&gt;
*: &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* ホームディレクトリ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.opencode/config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの例 =====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;anthropic/claude-sonnet-4-5-20250929&amp;quot;,&lt;br /&gt;
   &amp;quot;small_model&amp;quot;: &amp;quot;anthropic/claude-haiku-4-5-20251001&amp;quot;,&lt;br /&gt;
   &amp;quot;keybinds&amp;quot;: {&lt;br /&gt;
      &amp;quot;leader&amp;quot;: &amp;quot;ctrl+x&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 使用するモデル名 (プロバイダ/モデル名 形式)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-sonnet-4-5-20250929&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;openai/gpt-4o&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;small_model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 軽量タスク用のモデル (コスト削減に有効)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-haiku-4-5-20251001&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;keybinds.leader&amp;lt;/code&amp;gt;&lt;br /&gt;
*: リーダーキーの設定&lt;br /&gt;
*: デフォルト : &amp;lt;code&amp;gt;ctrl+x&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIコマンド ==&lt;br /&gt;
OpenCodeは、CLIモードと対話モードの両方で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt; || TUIを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode run &amp;quot;プロンプト&amp;quot;&amp;lt;/code&amp;gt; || 非対話モードでプロンプトを実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --model プロバイダ/モデル名&amp;lt;/code&amp;gt; || モデルを指定して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --continue&amp;lt;/code&amp;gt; || 前回のセッションを継続して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; || プロバイダの認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth logout&amp;lt;/code&amp;gt; || 認証情報を削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp list&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp add サーバー名&amp;lt;/code&amp;gt; || MCPサーバを追加&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode serve&amp;lt;/code&amp;gt; || ヘッドレスバックエンドサーバを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --version&amp;lt;/code&amp;gt; || バージョンを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 非対話モード ====&lt;br /&gt;
非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
プロジェクトの概要を説明する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;このプロジェクトの概要を説明して&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
モデルを指定してテストを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;テストを実行して&amp;quot; --model anthropic/claude-sonnet-4-5-20250929&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TUI (ターミナルユーザーインターフェース) ==&lt;br /&gt;
OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スラッシュコマンド ====&lt;br /&gt;
TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ スラッシュコマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/new&amp;lt;/code&amp;gt; || 新しいセッションを開始&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/init&amp;lt;/code&amp;gt; || プロジェクト構造を分析&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt; || 直前の変更を元に戻す (Git連携)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; || 元に戻した変更をやり直す&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/compact&amp;lt;/code&amp;gt; || 会話を要約して圧縮&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/share&amp;lt;/code&amp;gt; || 会話の共有リンクを生成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/export&amp;lt;/code&amp;gt; || 会話をMarkdownでエクスポート&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/sessions&amp;lt;/code&amp;gt; || 過去のセッション一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/agents&amp;lt;/code&amp;gt; || エージェント一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; || プロバイダ認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/status&amp;lt;/code&amp;gt; || 現在のステータスを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/mcp&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/theme&amp;lt;/code&amp;gt; || テーマを変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt; || 外部エディタで入力&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/commands&amp;lt;/code&amp;gt; || コマンド一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/exit&amp;lt;/code&amp;gt; || OpenCodeを終了&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== キーバインド ====&lt;br /&gt;
OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。&amp;lt;br&amp;gt;&lt;br /&gt;
リーダーキーを押した後に各キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ キーバインド一覧&lt;br /&gt;
! キー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [N] || 新しいセッション&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [L] || セッション一覧&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [T] || タイムライン&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [M] || モデル選択ダイアログ&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [C] || コンパクト表示&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [P] || コマンドパレット&lt;br /&gt;
|-&lt;br /&gt;
| [Tab] || Plan/Buildエージェント切替&lt;br /&gt;
|-&lt;br /&gt;
| [Page Up] / [Page Down] || スクロール&lt;br /&gt;
|-&lt;br /&gt;
| [Shift] + [Enter] || 改行入力&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル参照とBashコマンド ====&lt;br /&gt;
TUI内でファイル参照とBashコマンドの実行ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ファイル参照 =====&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; でファイルをファジー検索して参照を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 @filename&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Bashコマンドの実行 =====&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; をプレフィックスとしてBashコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 !ls -la&lt;br /&gt;
 !git status&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIバイナリのビルド (SUSE) ==&lt;br /&gt;
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルドの前提条件&lt;br /&gt;
! 項目 !! 要件&lt;br /&gt;
|-&lt;br /&gt;
| OS || &lt;br /&gt;
* RHEL 9 / 10&lt;br /&gt;
* SUSE 15 / 16&lt;br /&gt;
|-&lt;br /&gt;
| Bun || 1.3.x (&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; 内の &amp;lt;code&amp;gt;packageManager&amp;lt;/code&amp;gt; で &amp;lt;code&amp;gt;bun@1.3.9&amp;lt;/code&amp;gt; を指定)&lt;br /&gt;
|-&lt;br /&gt;
| git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 前提条件の確認コマンド =====&lt;br /&gt;
 # Bunバージョン確認 (1.3.9が必要)&lt;br /&gt;
 bun --version&lt;br /&gt;
 &lt;br /&gt;
 # ネットワーク接続の確認&lt;br /&gt;
 curl -s https://models.dev/api.json | head -c 100&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルド方式の説明 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルド方式の説明&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript (Bun ランタイム)&lt;br /&gt;
|-&lt;br /&gt;
| ビルド方式 || &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; の &amp;lt;code&amp;gt;compile: true&amp;lt;/code&amp;gt; でスタンドアロン実行ファイルを生成&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/opencode/script/build.ts&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 出力 || Bunランタイムを内蔵した単一バイナリ (&amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 環境変数の設定 ====&lt;br /&gt;
ソースディレクトリがGitリポジトリでない場合、&amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; が失敗するため、環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.14&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 依存パッケージのインストール ====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このプロジェクトはBunワークスペース構成のモノレポである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bun install&amp;lt;/code&amp;gt; コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルドの実行 ====&lt;br /&gt;
ビルドスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)&amp;lt;br&amp;gt;&lt;br /&gt;
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドスクリプトの処理内容:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; からモデルデータを取得し、TypeScript スナップショットを生成&lt;br /&gt;
* &amp;lt;code&amp;gt;@opentui/core&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;@parcel/watcher&amp;lt;/code&amp;gt; のネイティブバインディングをインストール&lt;br /&gt;
* &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; で TypeScript をスタンドアロンバイナリにコンパイル&lt;br /&gt;
* &amp;lt;code&amp;gt;packages/opencode/dist/opencode-linux-x64/bin/opencode&amp;lt;/code&amp;gt; に出力&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
ビルドが完了したら、バイナリが生成されたか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # バイナリが生成されたか確認&lt;br /&gt;
 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode&lt;br /&gt;
 &lt;br /&gt;
 # バージョン表示で動作確認&lt;br /&gt;
 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OPENCODE_VERSION=&amp;lt;バージョン  例: 1.1.53&amp;gt;&amp;lt;br&amp;gt;OPENCODE_CHANNEL=latest&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; に接続できない || ネットワーク制限 || 事前に &amp;lt;u&amp;gt;api.json&amp;lt;/u&amp;gt; をダウンロードして、&amp;lt;code&amp;gt;MODELS_DEV_API_JSON=/path/to/api.json&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
|-&lt;br /&gt;
| GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || &amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; に加えて &amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加&amp;lt;br&amp;gt;または、muslビルドを検討する。&lt;br /&gt;
|-&lt;br /&gt;
| native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper install gcc gcc-c++ make&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オフライン環境でのビルド =====&lt;br /&gt;
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 # オンライン環境で事前にダウンロード&lt;br /&gt;
 curl -o api.json https://models.dev/api.json&lt;br /&gt;
 &lt;br /&gt;
 # ビルド時にローカルファイルを指定&lt;br /&gt;
 export MODELS_DEV_API_JSON=/path/to/api.json&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== baselineビルド =====&lt;br /&gt;
CPUがAVX2命令セットをサポートしていない場合、&amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single --baseline&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== デスクトップアプリケーションのビルド ==&lt;br /&gt;
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーションの構成 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Desktop アプリの構成&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || SolidJS + Vite (TypeScript)&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Rust (Tauri v2 シェル)&lt;br /&gt;
|-&lt;br /&gt;
| サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの)&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; 配下&lt;br /&gt;
|-&lt;br /&gt;
| 出力形式 (Linux) || debパッケージ、rpmパッケージ&lt;br /&gt;
|-&lt;br /&gt;
| ソースディレクトリ || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; (フロントエンド)&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;packages/desktop/src-tauri/&amp;lt;/u&amp;gt; (Rust)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
===== OpenCode CLIバイナリのビルド =====&lt;br /&gt;
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、まず、OpenCode CLIバイナリのビルドを完了させること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Rustツールチェーン =====&lt;br /&gt;
Tauri v2 のビルドには、Rustが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Rustのインストール (未インストールの場合)&lt;br /&gt;
 curl --proto &#039;=https&#039; --tlsv1.2 https://sh.rustup.rs -sSf | sh&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数の設定を反映&lt;br /&gt;
 source &amp;quot;$HOME/.cargo/env&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 rustc --version&lt;br /&gt;
 cargo --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 依存ライブラリのインストール =====&lt;br /&gt;
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install -t pattern devel_basis&lt;br /&gt;
 sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ソースコードのダウンロード =====&lt;br /&gt;
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf opencode-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== デスクトップアプリケーションのビルド ====&lt;br /&gt;
===== Step 1 : 環境変数の設定 =====&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.4&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2 : 依存パッケージのインストール =====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、bun installに失敗する場合は、node-gypをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun add node-gyp -D&lt;br /&gt;
 # または&lt;br /&gt;
 npm install -g node-gyp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2.5 : OpenCode Desktopの最大化に関する不具合 =====&lt;br /&gt;
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 // /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rsファイル&lt;br /&gt;
 &lt;br /&gt;
 // 編集前&lt;br /&gt;
 .maximized(true)&lt;br /&gt;
 &lt;br /&gt;
 // 編集後&lt;br /&gt;
 //.maximized(true)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 3 : CLIバイナリのビルド (未完了の場合) =====&lt;br /&gt;
サイドカーとなるOpenCode CLIバイナリが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下記のエラーが表示される場合がある。&lt;br /&gt;
 | // relax version requirement&lt;br /&gt;
 | const expectedBunVersionRange = `^${expectedBunVersion}`&lt;br /&gt;
 |&lt;br /&gt;
 | if (!semver.satisfies(process.versions.bun, expectedBunVersionRange)) {&lt;br /&gt;
 |   throw new Error(`This script requires bun@${expectedBunVersionRange}, but you are using bun@${process.versions.bun}`)&lt;br /&gt;
 &lt;br /&gt;
 error: This script requires bun@^X.X.X, but you are using bun@X.X.X&lt;br /&gt;
       at /path/to/opencode-X.X.XX/packages/script/src/index.ts:16:13&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この時、bunをアップデートする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Step 4 : サイドカーの配置 =====&lt;br /&gt;
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p packages/desktop/src-tauri/sidecars&lt;br /&gt;
 cp packages/opencode/dist/opencode-linux-x64/bin/opencode \&lt;br /&gt;
    packages/desktop/src-tauri/sidecars/opencode-cli-x86_64-unknown-linux-gnu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;tauri.conf.json&amp;lt;/u&amp;gt; ファイル内の &amp;lt;code&amp;gt;externalBin&amp;lt;/code&amp;gt; に &amp;lt;u&amp;gt;sidecars/opencode-cli&amp;lt;/u&amp;gt; が指定されており、Tauriがターゲットトリプル (&amp;lt;code&amp;gt;x86_64-unknown-linux-gnu&amp;lt;/code&amp;gt;) を付与して検索する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 5 : フロントエンドのビルド確認 (任意) =====&lt;br /&gt;
Viteビルドは、&amp;lt;code&amp;gt;tauri build&amp;lt;/code&amp;gt; コマンドの &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 6 : Tauriビルドの実行 =====&lt;br /&gt;
Tauriビルドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のコマンドは、以下に示す事柄を実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;bun run build&amp;lt;/code&amp;gt;) でフロントエンドをビルドする。&lt;br /&gt;
* Cargo (Rust) でネイティブバイナリをコンパイルする。&lt;br /&gt;
* サイドカー (OpenCode CLIバイナリ) をバンドルに含める。&lt;br /&gt;
* deb / rpmパッケージを生成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt; ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 生成されたファイルの確認 =====&lt;br /&gt;
以下に示すディレクトリにファイルが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 # debパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリ (直接実行も可能)&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
RPMパッケージをインストールして確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージをインストールして確認&lt;br /&gt;
 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 ## または&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリを直接起動&lt;br /&gt;
 ./packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須&lt;br /&gt;
|-&lt;br /&gt;
| opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。&lt;br /&gt;
|-&lt;br /&gt;
| 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 &amp;lt;code&amp;gt;OC_ALLOW_WAYLAND=1&amp;lt;/code&amp;gt; でWaylandを強制する。&lt;br /&gt;
|-&lt;br /&gt;
| RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 特定パッケージ形式のみビルド =====&lt;br /&gt;
全形式をビルドする必要がない場合、&amp;lt;code&amp;gt;--bundles&amp;lt;/code&amp;gt; フラグで指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles rpm&lt;br /&gt;
 &lt;br /&gt;
 # debのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デバッグビルド =====&lt;br /&gt;
問題の調査が必要な場合、デバッグビルドを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --debug&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -&amp;gt; [Inspect Element]が利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oh my OpenCode ==&lt;br /&gt;
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主な機能 ====&lt;br /&gt;
Oh my OpenCodeは以下に示す機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Oh my OpenCode 機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; || 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード&lt;br /&gt;
|-&lt;br /&gt;
| フック統合 || ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等)&lt;br /&gt;
|-&lt;br /&gt;
| MCP統合 || Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論)&lt;br /&gt;
|-&lt;br /&gt;
| LSP/AST解析 || Language Server ProtocolとAST解析による高精度なコード理解&lt;br /&gt;
|-&lt;br /&gt;
| スキルシステム || 再利用可能なプロンプトテンプレート&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;/ultra&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門エージェント ====&lt;br /&gt;
Oh my OpenCodeは以下の専門エージェントを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門エージェント一覧&lt;br /&gt;
! エージェント名 !! 役割&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || プランニングと実装を担当するメインエージェント&amp;lt;br&amp;gt;タスク分割、実装、テスト、反復改善を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || コードベース全体の調査・分析を担当&amp;lt;br&amp;gt;プロジェクト構造の把握、依存関係の追跡を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Frontend Engineer || フロントエンド開発を担当&amp;lt;br&amp;gt;React / Next.js等のUI実装、アクセシビリティ対応を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント管理を担当&amp;lt;br&amp;gt;README、API仕様書、変更履歴の作成・更新を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Explorer || 未知のコードベースの探索を担当&amp;lt;br&amp;gt;新しいプロジェクトの構造理解や技術スタックの調査を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
インストールの前提条件は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OpenCode v1.0.150以上&lt;br /&gt;
* Node.js または Bun&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Oh my OpenCodeをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest&lt;br /&gt;
 # または&lt;br /&gt;
 npx oh-my-opencode@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
非対話モードでインストールする場合は以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest --non-interactive&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
設定ファイルは以下の場所に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト単位&lt;br /&gt;
*: &amp;lt;u&amp;gt;.opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* グローバル&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に設定ファイルの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
       &amp;quot;context7&amp;quot;: true,&lt;br /&gt;
       &amp;quot;thinking&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;sisyphus&amp;quot;: true,&lt;br /&gt;
       &amp;quot;oracle&amp;quot;: true,&lt;br /&gt;
       &amp;quot;frontend&amp;quot;: true,&lt;br /&gt;
       &amp;quot;librarian&amp;quot;: true,&lt;br /&gt;
       &amp;quot;explorer&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hooks&amp;quot;: {&lt;br /&gt;
       &amp;quot;afterEdit&amp;quot;: true,&lt;br /&gt;
       &amp;quot;afterWrite&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;skills&amp;quot;: {&lt;br /&gt;
       &amp;quot;ultra&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各設定項目の説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 設定項目一覧&lt;br /&gt;
! カテゴリ !! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | mcpServers || - || MCPサーバの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| context7 || ライブラリドキュメント取得サーバ&lt;br /&gt;
|-&lt;br /&gt;
| thinking || 構造的推論サーバ&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | agents || - || 専門エージェントの有効/無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| sisyphus || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| oracle || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| frontend || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| librarian || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| explorer || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | hooks || - || フックの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| afterEdit || ファイル編集後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| afterWrite || ファイル作成後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | skills || - || スキルの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ultra || ultraworkスキルを有効化する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
プロンプトに &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 大規模リファクタリング&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このプロジェクトの認証システムをリファクタリングして&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 新機能実装&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork ユーザ管理機能を実装して&amp;lt;/pre&amp;gt;&lt;br /&gt;
* ドキュメント調査&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このコードベースを分析してドキュメントを作成して&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アンインストール ====&lt;br /&gt;
プロジェクト単位の設定ファイルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf .opencode/agents   \&lt;br /&gt;
        .opencode/hooks    \&lt;br /&gt;
        .opencode/skills   \&lt;br /&gt;
        .opencode/mcp.json \&lt;br /&gt;
        .opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
グローバル設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.config/opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
Oh my OpenCodeを使用する際は以下の点に注意すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。&lt;br /&gt;
* フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。&lt;br /&gt;
* MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
==== プライバシーとデータ取り扱い ====&lt;br /&gt;
OpenCodeはオープンソースであり、コードの透明性を確保している。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルでの処理を優先、コードの送信は最小限に抑制する。&lt;br /&gt;
* 使用するAIプロバイダのプライバシーポリシーを確認すること。&lt;br /&gt;
* GitHubリポジトリで実装を検証可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 生成コードの検証 ====&lt;br /&gt;
AIが生成したコードは必ずレビューして検証する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コードの動作を確認&lt;br /&gt;
* セキュリティ上の問題がないか確認&lt;br /&gt;
* ライセンス上の問題がないか確認&lt;br /&gt;
* コーディング規約に準拠しているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
APIキーやパスワード等の機密情報をコードに含めないように注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキー、パスワード等の機密情報をコードに含めない。&lt;br /&gt;
* 環境変数や設定ファイルで管理する。&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitignore&amp;lt;/u&amp;gt; ファイルで機密情報を含むファイルを除外する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89&amp;diff=14618</id>
		<title>インストール - クリップボード</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89&amp;diff=14618"/>
		<updated>2026-04-05T07:18:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* RHEL / SUSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
クリップボードは、システム上のクリップボードに保存された全ての履歴を保持するユーティリティやツールのことである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、様々なクリップボードマネージャとインストール手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CopyQ ==&lt;br /&gt;
==== CopyQとは ====&lt;br /&gt;
CopyQは強力なクリップボードマネージャであり、データの保存、エントリの編集したり、暗号化等をすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、CopyQのインストール方法を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CopyQのインストール ====&lt;br /&gt;
===== Windows =====&lt;br /&gt;
[https://github.com/hluk/CopyQ/releases CopyQのGithub]にアクセスして、Windows向けのEXEファイルをダウンロードする。&lt;br /&gt;
ダウンロードしたファイルをダブルクリックしてインストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RHEL / SUSE =====&lt;br /&gt;
* パッケージ管理システムからインストール&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install copyq&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ソースコードからインストール&lt;br /&gt;
CopyQの依存関係のライブラリをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 5を使用する場合&lt;br /&gt;
 sudo dnf install git cmake extra-cmake-modules gcc-c++ git libXfixes-devel libXtst-devel libSM-devel \&lt;br /&gt;
                  qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtsvg-devel qt5-qttools-devel qt5-qtwayland-devel qt5-qtx11extras-devel \&lt;br /&gt;
                  libqt5-qtbase-private-headers-devel wayland-devel&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 6を使用する場合&lt;br /&gt;
 sudo dnf install git cmake extra-cmake-modules ninja-build gcc-c++         \&lt;br /&gt;
                  libSM-devel libXfixes-devel libXtst-devel miniaudio-devel \&lt;br /&gt;
                  kf6-kguiaddons-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel           \&lt;br /&gt;
                  qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtdeclarative-devel qt6-qtsvg-devel     \&lt;br /&gt;
                  qt6-qttools-devel qt6-qtwayland-devel qca-qt6-devel qca-qt6-ossl qtkeychain-qt6-devel \&lt;br /&gt;
                  wayland-devel&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 5を使用する場合&lt;br /&gt;
 sudo zypper install git cmake extra-cmake-modules ninja gcc-c++ \&lt;br /&gt;
                     libXfixes-devel libXtst-devel libSM-devel miniaudio-devel knotifications-devel \&lt;br /&gt;
                     libqt5-qtbase-devel libqt5-qtbase-private-headers-devel libqt5-qtdeclarative-devel libqt5-qtsvg-devel \&lt;br /&gt;
                     libqt5-qttools-devel libqt5-qtwayland-devel libqt5-qtx11extras-devel qca-qt5-devel qtkeychain-qt5-devel \&lt;br /&gt;
                     wayland-devel&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 6を使用する場合&lt;br /&gt;
 sudo zypper install git cmake extra-cmake-modules ninja gcc-c++ \&lt;br /&gt;
                     libXfixes-devel libXtst-devel libSM-devel miniaudio-devel \&lt;br /&gt;
                     kf6-kguiaddons-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel \&lt;br /&gt;
                     qt6-base-devel qt6-base-private-devel qt6-declarative-devel qt6-svg-devel qt6-tools-devel qt6-wayland-devel \&lt;br /&gt;
                     qca-qt6-devel qtkeychain-qt6-devel wayland-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/hluk/CopyQ/releases CopyQのGithub]にアクセスして、CopyQのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;コマンドを実行して、CopyQのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/hluk/CopyQ.git&lt;br /&gt;
 cd CopyQ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パッケージマネージャからインストールできるQtのバージョンが古い場合は、&amp;lt;br&amp;gt;&lt;br /&gt;
Qtの公式WebサイトからQtをインストールして、環境変数にQtライブラリのパスを追加する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/bin:$PATH&amp;quot;;                       \&lt;br /&gt;
 export LD_LIBRARY_PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/bin:$LD_LIBRARY_PATH&amp;quot;; \&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)&amp;quot;;      \&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake  -DCMAKE_BUILD_TYPE=Release                               \&lt;br /&gt;
        -DCMAKE_INSTALL_PREFIX=&amp;lt;CopyQのインストールディレクトリ&amp;gt; \&lt;br /&gt;
        -DCMAKE_C_COMPILER=&amp;lt;GCCの実行ファイルのパス&amp;gt;             \  # GCCコンパイラを指定する場合&lt;br /&gt;
        -DCMAKE_CXX_COMPILER=&amp;lt;G++の実行ファイルのパス&amp;gt;           \  # G++コンパイラを指定する場合&lt;br /&gt;
        -DWITH_QT6=ON                                            \  # Qt 6を使用する場合&lt;br /&gt;
        ..&lt;br /&gt;
 &lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* RPMファイルからインストール (SUSEのみ)&lt;br /&gt;
[https://github.com/hluk/CopyQ/releases CopyQのGithub]にアクセスして、SUSE向けのrpmファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルにおいて、以下のコマンドを実行してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install ./copyq_&amp;lt;バージョン&amp;gt;_openSUSE_.*.rpm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、/&amp;lt;CopyQのインストールディレクトリ&amp;gt;/binディレクトリに、CopyQの起動用のラッパーシェルスクリプトを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # /&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.shファイル&lt;br /&gt;
 &lt;br /&gt;
 #!/usr/bin/env sh&lt;br /&gt;
 &lt;br /&gt;
 appname=&amp;quot;copyq&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # use -f to make the readlink path absolute&lt;br /&gt;
 dirname=&amp;quot;$(dirname -- &amp;quot;$(readlink -f -- &amp;quot;${0}&amp;quot;)&amp;quot; )&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;$dirname&amp;quot; = &amp;quot;.&amp;quot; ]; then&lt;br /&gt;
    dirname=&amp;quot;$PWD/$dirname&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cd $dirname&lt;br /&gt;
 &lt;br /&gt;
 # Initialize interpreter path&lt;br /&gt;
 export LD_LIBRARY_PATH=&amp;quot;${dirname}/../lib:$LD_LIBRARY_PATH&amp;quot;&lt;br /&gt;
 #export LD_LIBRARY_PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/lib:$LD_LIBRARY_PATH&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Run CopyQ binary&lt;br /&gt;
 &amp;quot;$dirname/$appname&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQのデスクトップエントリファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.local/share/applications/com.github.hluk.copyq.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.local/share/applications/com.github.hluk.copyq.desktop&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Name=CopyQ&lt;br /&gt;
 GenericName=Clipboard Manager&lt;br /&gt;
 Comment=A cut &amp;amp; paste history utility&lt;br /&gt;
 Exec=/&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh --start-server show&lt;br /&gt;
 Icon=copyq&lt;br /&gt;
 &lt;br /&gt;
 # Workaround / fix for issue #1526 that prevents a proper autostart of the tray icon in GNOME&lt;br /&gt;
 X-GNOME-Autostart-Delay=3&lt;br /&gt;
 &lt;br /&gt;
 # The rest is taken from Klipper application.&lt;br /&gt;
 Type=Application&lt;br /&gt;
 GenericName[ja]=クリップボードツール&lt;br /&gt;
 Comment[ja]=カット＆ペースト履歴ユーティリティ&lt;br /&gt;
 Categories=Qt;KDE;Utility;&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 X-KDE-autostart-after=panel&lt;br /&gt;
 X-KDE-StartupNotify=false&lt;br /&gt;
 X-KDE-UniqueApplet=true&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQの自動起動ファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.config/autostart/copyq.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.config/autostart/copyq.desktopファイル&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Name=CopyQ (User Build)&lt;br /&gt;
 GenericName=Clipboard Manager&lt;br /&gt;
 Comment=A cut &amp;amp; paste history utility&lt;br /&gt;
 Path=&lt;br /&gt;
 TryExec=/&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh&lt;br /&gt;
 Exec=QT_SCREEN_SCALE_FACTORS=1 /&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh --start-server&lt;br /&gt;
 Icon=copyq&lt;br /&gt;
 Categories=Qt;KDE;Office;WordProcessor;&lt;br /&gt;
 MimeType=&lt;br /&gt;
 StartupNotify=false&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 TerminalOptions=&lt;br /&gt;
 X-DBUS-ServiceName=&lt;br /&gt;
 X-DBUS-StartupType=&lt;br /&gt;
 X-GNOME-Autostart-Delay=3&lt;br /&gt;
 X-KDE-StartupNotify=false&lt;br /&gt;
 X-KDE-SubstituteUID=false&lt;br /&gt;
 X-KDE-UniqueApplet=true&lt;br /&gt;
 X-KDE-Username=&lt;br /&gt;
 X-KDE-autostart-after=panel&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SELinuxの設定 ====&lt;br /&gt;
SELinuxを使用している場合、CopyQ向けにセキュリティの設定を行う必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、ポリシーファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo ausearch -c &#039;copyq&#039; --raw | audit2allow -M &amp;lt;ポリシー名  例: CopyQ&amp;gt;&lt;br /&gt;
 例: sudo ausearch -c &#039;copyq&#039; --raw | audit2allow -M my-copyq&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、SELinuxにCopyQ向けのポリシーパッケージファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo semodule -X 300 -i &amp;lt;ポリシーパッケージファイル名  例: CopyQ.pp&amp;gt;&lt;br /&gt;
 例: sudo  semodule -X 300 -i my-copyq.pp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 自動起動の設定 ====&lt;br /&gt;
CopyQを使用する前に、自動起動エントリを設定しておくことを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
スタートアップエントリを設定することは、クリップボードのデータを常に監視して保存するためには重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQの起動エントリを設定するには様々な方法があるが、ここではターミナルに焦点を当てて記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、デスクトップエントリディレクトリに移動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /usr/local/share/applications&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動起動エントリのディレクトリを作成して、CopyQのデスクトップエントリファイルをそのディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cp com.github.hluk.copyq.desktop ~/.config/autostart/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デスクトップエントリファイルのパーミッションを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod u+x ~/.config/autostart/com.github.hluk.copyq.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== CopyQの操作方法 ====&lt;br /&gt;
* コピー&lt;br /&gt;
*: CopyQには多くの機能があるが、主となるのはクリップボードマネージャである。&lt;br /&gt;
*: 使用するには、任意のテキストを選択してコピーすると、自動的にCopyQのエントリーとして保存される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* クリップボードに移動&lt;br /&gt;
*: CopyQの古いエントリーをクリップボードに移動する場合は、古いエントリーを選択して[クリップボードに移動]アイコンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* エントリの暗号化&lt;br /&gt;
*: CopyQに保存した機密情報は、暗号化機能を使用すべきである。&lt;br /&gt;
*: 暗号化するには、エントリーを選択して[ロック]アイコンを押下する。そうすると、GnuPGが起動して自動的にデータが暗号化される。&lt;br /&gt;
*: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
*: &amp;lt;u&amp;gt;暗号化機能は、GnuPGが必須である。&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* エントリの作成&lt;br /&gt;
*: CopyQの機能には、クリップボードを使用せずにクリップボードの新規項目を作成する機能がある。&lt;br /&gt;
*: この機能の使い方は、[新規項目]アイコンを押下して、そこからテキストを書き込み、[保存]アイコンを押下する。&lt;br /&gt;
*: すると、CopyQが保存したデータの一覧に、新しいクリップボードエントリが追加される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPaste ==&lt;br /&gt;
==== GPasteとは ====&lt;br /&gt;
GNOMEベースの優れたクリップボードマネージャであるが、様々なデスクトップ環境でも動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
GPasteは、以下のような機能を持っている。&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEシェルとの統合&lt;br /&gt;
* クリップボードの履歴管理&lt;br /&gt;
* クイックアクセスのショートカット&lt;br /&gt;
* 画像のコピー&lt;br /&gt;
* GTK+3 GUI&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPasteのインストール ====&lt;br /&gt;
* パッケージ管理システムからインストール&lt;br /&gt;
*: 以下のコマンドを実行して、GPasteをインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo zypper install gpaste gpaste-lang libgpaste11 typelib-1_0-GPaste-1_0 gnome-shell-extension-gpaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ソースコードからインストール&lt;br /&gt;
*: GPasteのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;git clone https://github.com/Keruspe/GPaste.git GPaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;cd GPaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: GPasteのソースコードをビルドしてインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;./autogen.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;mkdir build &amp;amp;&amp;amp; cd build&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;../configure --sysconfdir=/home/&amp;lt;ユーザ名&amp;gt;/.GPaste --prefix=/home/&amp;lt;ユーザ名&amp;gt;/InstallSoftware/GPaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;make -j $(nproc)&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo glib-compile-schemas /usr/share/glib-2.0/schemas/&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
** GPasteのアップデート (ソースコードからインストールしている場合のみ)&lt;br /&gt;
**: GPasteをアップグレードした場合は、新しい機能を有効化するために、以下のコマンドを実行する。&lt;br /&gt;
**: &amp;lt;code&amp;gt;gpaste-client dr aka gpaste-client daemon-reexec&amp;lt;/code&amp;gt;&lt;br /&gt;
**: &amp;lt;br&amp;gt;&lt;br /&gt;
**: 次に、以下のコマンドを実行して、デーモンが正常に動作していることを確認する。&lt;br /&gt;
**: &amp;lt;code&amp;gt;gpaste-client daemon-version&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parcellite ==&lt;br /&gt;
==== Parcelliteとは ====&lt;br /&gt;
Parcelliteは、Linux向けのGTK+2の基本的な機能を備えたクリップボードマネージャである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Parcelliteのインストール ====&lt;br /&gt;
Parcelliteの依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gtk3&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install gtk3 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[http://parcellite.sourceforge.net/ SourceForge]からソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar zxvf parcellite-&amp;lt;バージョン名&amp;gt;.tar.gz&lt;br /&gt;
 cd parcellite-&amp;lt;バージョン名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Parcelliteのソースコードをコンパイルしてインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./configure --prefix=/home/&amp;lt;ユーザ名&amp;gt;/InstallSoftware/Parcellite&lt;br /&gt;
 make -j 8&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Diodon ==&lt;br /&gt;
==== Diodonのインストール ====&lt;br /&gt;
Diodonのビルドに必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install vala libayatana-appindicator3-devel libpeas-devel zeitgeist-devel xvfb-run wayland-protocols-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DiodonのGithunからソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/diodon-dev/diodon.git&lt;br /&gt;
 cd diodon&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Diodonをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 /&amp;lt;Python3のインストールディレクトリ&amp;gt;/bin/meson -Dprefix=&amp;lt;Diodonのインストールディレクトリ&amp;gt; builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アプリケーションインジケータ用のパッケージを提供していないディストリビューションでは、&amp;lt;br&amp;gt;&lt;br /&gt;
builddir作成コマンドを調整することにより、インジケータのビルドを無効化することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
 /&amp;lt;Python3のインストールディレクトリ&amp;gt;/bin/meson -Dprefix=&amp;lt;Diodonのインストールディレクトリ&amp;gt; builddir -Ddisable-indicator-plugin=true&lt;br /&gt;
 cd builddir&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ninja&lt;br /&gt;
 ninja test&lt;br /&gt;
 sudo ninja install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Diodonをアンインストールする場合は、上記のソースコードディレクトリ内において、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo ninja uninstall&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Diodonのプラグイン ====&lt;br /&gt;
Diodonプラグインを作成する場合は、[http://esite.ch/2011/10/19/writing-a-plugin-for-diodon/ こちらの記事]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Diodon向けの便利なプラグインを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#fefefe;&amp;quot;&lt;br /&gt;
|+ プラグインの概要&lt;br /&gt;
! style=&amp;quot;background-color:#66CCFF;&amp;quot; | プラグイン &lt;br /&gt;
! style=&amp;quot;background-color:#66CCFF;&amp;quot; | 説明&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Features] || Diodonメニューの追加機能&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Numbers] || クリップボードのメニュー項目数を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Pop Item] || アクティブなクリップボード項目を貼り付けてから削除する。&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Paste All] || 最近のアイテムを一度に貼り付ける。&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Edit] || アクティブなアイテムを編集するように促す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glipper ==&lt;br /&gt;
==== Glipperとは ====&lt;br /&gt;
Glipperは、GNOME向けのクリップボードマネージャであり、プラグインを使用して機能を拡張することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
クリップボードマネージャの基本的な機能のほとんどを持っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Glipperのインストール ====&lt;br /&gt;
Glipperの依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
* Python 2.4以降&lt;br /&gt;
* pygtk-2.6以降(モジュール名 : gtk、gtk.gdk、gobject)&lt;br /&gt;
* python-keybinder(モジュール名 : keybinder)&lt;br /&gt;
* python-distutils-extra(モジュール名 : DistUtilsExtra)&lt;br /&gt;
* python-appindicator(モジュール名 : appindicator)&lt;br /&gt;
* python-xdg(モジュール名 : xdg.BaseDirectory)&lt;br /&gt;
* オプション : python-prctl(モジュール名 : prctl)&lt;br /&gt;
* オプション : python-crypto&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python2 python3 pygtk python-keybinder python-distutils-extra python-appindicator python-xdg python-prctl python-crypto&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python2 python3 pygtk python-keybinder python-distutils-extra python-appindicator python-xdg python-prctl python-crypto&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Glipperの[https://launchpad.net/glipper 公式Webサイト]からソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar zxvf glipper-&amp;lt;バージョン名&amp;gt;.tar.gz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Glipperのソースコードを実行してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo python setup.py install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clipit ==&lt;br /&gt;
==== Clipitとは ====&lt;br /&gt;
GTK+の軽量で機能が豊富なクリップボードマネージャである。&amp;lt;br&amp;gt;&lt;br /&gt;
Clipitは、Parcelliteからフォークされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Clipitのインストール ====&lt;br /&gt;
Clipitのビルドに必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install gtk2-devel gtk3-devel xdotool-devel intltool automake autoconf autopoint&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ClipitのGithubから、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/CristianHenzel/ClipIt.git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Clipitのソースコードをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure --with-gtk3 --prefix=/home/&amp;lt;ユーザ名&amp;gt;/InstallSoftware/Clipit&lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Windows10]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=GitHub_-_SSH%E3%81%AE%E8%A8%AD%E5%AE%9A&amp;diff=14617</id>
		<title>GitHub - SSHの設定</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=GitHub_-_SSH%E3%81%AE%E8%A8%AD%E5%AE%9A&amp;diff=14617"/>
		<updated>2026-04-01T02:16:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == SSH (Secure Shell) は、暗号化された通信を用いてリモートサーバーに安全に接続するためのプロトコルである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHubとの通信方法にはHTTPSとSSHの2種類があり、HTTPSではリポジトリへのプッシュ / プルのたびにユーザ名とPersonal Access Tokenの入力が必要となる。&amp;lt;br&amp;gt; 一方、SSHでは公開鍵認証方式を使用するため、一度鍵を設定すれば以降の認…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
SSH (Secure Shell) は、暗号化された通信を用いてリモートサーバーに安全に接続するためのプロトコルである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubとの通信方法にはHTTPSとSSHの2種類があり、HTTPSではリポジトリへのプッシュ / プルのたびにユーザ名とPersonal Access Tokenの入力が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、SSHでは公開鍵認証方式を使用するため、一度鍵を設定すれば以降の認証は自動的に行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude CodeやOpenCode等のAIコーディングツールからGitHubリポジトリを操作する場合にも、SSH接続の設定が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSHを使用する主なメリットは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* パスワードやトークンの入力が不要&lt;br /&gt;
*: 毎回の認証操作が省略されるため、作業効率が向上する。&lt;br /&gt;
* 高い安全性&lt;br /&gt;
*: 公開鍵認証方式はパスワード認証よりも安全であり、通信内容も暗号化される。&lt;br /&gt;
* 利便性&lt;br /&gt;
*: 一度設定すれば、以降のgit push / pull / clone等の操作で追加の認証入力は不要である。&lt;br /&gt;
* AIコーディングツールとの親和性&lt;br /&gt;
*: Claude CodeやOpenCode等のターミナルベースのAIツールは対話的なパスワード入力に対応していない場合があるため、SSH接続が事実上必須となる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSH接続の仕組みは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
# ローカルコンピュータでSSH鍵ペア (秘密鍵と公開鍵) を生成する。&lt;br /&gt;
# 公開鍵をGitHubアカウントに登録する。&lt;br /&gt;
# ローカルからGitHubに接続する際、秘密鍵で署名を生成してGitHubが公開鍵で検証する。&lt;br /&gt;
# 検証に成功すると認証が完了して、リポジトリへのアクセスが許可される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSHの設定 ==&lt;br /&gt;
==== SSH鍵の種類 ====&lt;br /&gt;
SSH鍵にはいくつかの暗号アルゴリズムが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なSSH鍵の種類と特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSH鍵の種類&lt;br /&gt;
! アルゴリズム !! 鍵長 !! 特徴&lt;br /&gt;
|-&lt;br /&gt;
| Ed25519 || 256ビット固定 || 現在最も推奨されるアルゴリズム。&amp;lt;br&amp;gt;高速かつ安全性が高い。GitHubも推奨している。&lt;br /&gt;
|-&lt;br /&gt;
| RSA || 2048 / 4096ビット || 広く普及しており互換性が高い。&amp;lt;br&amp;gt;4096ビット以上の使用を推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| ECDSA || 256 / 384 / 521ビット || 楕円曲線暗号を使用する。&amp;lt;br&amp;gt;Ed25519が利用できない環境での代替として使用される。&lt;br /&gt;
|-&lt;br /&gt;
| DSA || 1024ビット || 非推奨。OpenSSH 7.0以降ではデフォルトで無効化されている。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;特別な理由がない限り、Ed25519の使用を推奨する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH鍵の生成 ====&lt;br /&gt;
以下のコマンドを実行して、Ed25519アルゴリズムのSSH鍵ペア (秘密鍵と公開鍵) を生成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Ed25519鍵を生成する (推奨)&lt;br /&gt;
 ssh-keygen -t ed25519 -C &amp;quot;GitHubに登録しているメールアドレス&amp;quot; -f ~/.ssh/id_ed25519_github&lt;br /&gt;
 &lt;br /&gt;
 # Ed25519が使用できない環境の場合はRSA 4096ビットを使用する&lt;br /&gt;
 ssh-keygen -t rsa -b 4096 -C &amp;quot;GitHubに登録しているメールアドレス&amp;quot; -f ~/.ssh/id_rsa_github&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コマンド実行時のオプションの詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-t ed25519&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 鍵の種類を指定する。&lt;br /&gt;
* &amp;lt;code&amp;gt;-C &amp;quot;メールアドレス&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*: コメントを設定する。一般的にメールアドレスを指定する。&lt;br /&gt;
* &amp;lt;code&amp;gt;-f ~/.ssh/id_ed25519_github&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 鍵ファイルの保存先とファイル名を指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コマンド実行後にパスフレーズの入力を求められる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Enter passphrase (empty for no passphrase):&lt;br /&gt;
 Enter same passphrase again:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パスフレーズを設定すると、鍵の使用時にパスフレーズの入力が必要になる。&amp;lt;br&amp;gt;&lt;br /&gt;
セキュリティの観点からパスフレーズの設定を推奨するが、空欄のまま[Enter]キーを押下して省略することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
鍵の生成が完了すると、以下に示す2つのファイルが作成される。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;~/.ssh/id_ed25519_github&amp;lt;/u&amp;gt;&lt;br /&gt;
*: 秘密鍵。絶対に他者と共有してはならない。&lt;br /&gt;
* &amp;lt;u&amp;gt;~/.ssh/id_ed25519_github.pub&amp;lt;/u&amp;gt;&lt;br /&gt;
*: 公開鍵。GitHubに登録するファイル。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH Agentの設定 ====&lt;br /&gt;
SSH Agentは秘密鍵をメモリ上に保持して、SSH接続時に自動的に鍵を提供するデーモンである。&amp;lt;br&amp;gt;&lt;br /&gt;
パスフレーズを設定した場合、SSH Agentを使用することで毎回のパスフレーズ入力を省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # SSH Agentをバックグラウンドで起動する&lt;br /&gt;
 eval &amp;quot;$(ssh-agent -s)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # 秘密鍵をSSH Agentに追加する&lt;br /&gt;
 ssh-add ~/.ssh/id_ed25519_github&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パスフレーズを設定している場合は、&amp;lt;code&amp;gt;ssh-add&amp;lt;/code&amp;gt;コマンドの実行時に1度だけパスフレーズの入力を求められる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSH Agentの起動をシェルのログイン時に自動化する場合は、シェルの設定ファイルに以下を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bashの場合&lt;br /&gt;
 &lt;br /&gt;
 # SSH Agent&lt;br /&gt;
 if [ -z &amp;quot;$SSH_AUTH_SOCK&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
    eval &amp;quot;$(ssh-agent -s)&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
    ssh-add ~/.ssh/id_ed25519_github &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 fi&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;fish&amp;quot;&amp;gt;&lt;br /&gt;
 # Fishの場合&lt;br /&gt;
 &lt;br /&gt;
 # SSH Agent&lt;br /&gt;
 if not set -q SSH_AUTH_SOCK&lt;br /&gt;
     eval (ssh-agent -c) &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
     ssh-add ~/.ssh/id_ed25519_github &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 end&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH configの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.ssh/config&amp;lt;/u&amp;gt; ファイルにGitHub用の設定を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、GitHub接続時に使用する鍵ファイルが自動的に選択される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Host github.com&lt;br /&gt;
      HostName github.com&lt;br /&gt;
      User git&lt;br /&gt;
      IdentityFile ~/.ssh/id_ed25519_github&lt;br /&gt;
      AddKeysToAgent yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各設定項目の詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSH config設定項目&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Host || 接続先のエイリアス名&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;github.com&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| HostName || 実際の接続先ホスト名&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;github.com&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| User || 接続ユーザ名&amp;lt;br&amp;gt;GitHubでは常に &amp;lt;u&amp;gt;git&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| IdentityFile || 使用する秘密鍵のパス&lt;br /&gt;
|-&lt;br /&gt;
| AddKeysToAgent || &amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt; を指定すると、初回接続時に自動的にSSH Agentに鍵が追加される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のGitHubアカウントを使い分ける場合は、以下に示すようにHostを別名にして設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # メインアカウント&lt;br /&gt;
 Host github.com&lt;br /&gt;
      HostName github.com&lt;br /&gt;
      User git&lt;br /&gt;
      IdentityFile ~/.ssh/id_ed25519_github_main&lt;br /&gt;
 &lt;br /&gt;
 # サブアカウント&lt;br /&gt;
 Host github-sub&lt;br /&gt;
      HostName github.com&lt;br /&gt;
      User git&lt;br /&gt;
      IdentityFile ~/.ssh/id_ed25519_github_sub&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
サブアカウントのリポジトリをクローンする場合は、以下に示すように指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone git@github-sub:&amp;lt;ユーザ名&amp;gt;/&amp;lt;リポジトリ名&amp;gt;.git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公開鍵のGitHubへの登録 ====&lt;br /&gt;
生成した公開鍵をGitHubアカウントに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、公開鍵の内容をクリップボードにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 公開鍵の内容を表示する&lt;br /&gt;
 cat ~/.ssh/id_ed25519_github.pub&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 表示例&lt;br /&gt;
 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... user@example.com&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示された文字列を全てコピーして、以下の手順でGitHubに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubにログインする。&lt;br /&gt;
# 右上のプロフィールアイコンを選択して、[Settings]を選択する。&lt;br /&gt;
# 左メニューの[Access]セクションにある[SSH and GPG keys]を選択する。&lt;br /&gt;
# [New SSH key]ボタンを押下する。&lt;br /&gt;
# 以下の項目を入力する。&lt;br /&gt;
#* Title&lt;br /&gt;
#*: 鍵の識別名を入力する。&lt;br /&gt;
#*: 例: &amp;lt;u&amp;gt;SUSE-PC&amp;lt;/u&amp;gt;&lt;br /&gt;
#* Key type&lt;br /&gt;
#*: &amp;lt;u&amp;gt;Authentication Key&amp;lt;/u&amp;gt; を選択する。(デフォルト)&lt;br /&gt;
#* Key&lt;br /&gt;
#*: コピーした公開鍵を貼り付ける。&lt;br /&gt;
# [Add SSH key]ボタンを押下する。&lt;br /&gt;
# GitHubのパスワード入力を求められた場合は、入力して認証する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIを使用して登録する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh ssh-key add ~/.ssh/id_ed25519_github.pub --title &amp;quot;SUSE-PC&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続テスト ====&lt;br /&gt;
SSH鍵の登録が完了した後、GitHubとのSSH接続が正常に動作するかテストする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ssh -T git@github.com&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
初回接続時は、以下のようにホスト鍵の確認を求められるため&amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt;と入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 The authenticity of host &#039;github.com (20.27.177.113)&#039; can&#039;t be established.&lt;br /&gt;
 ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続に成功すると、以下のメッセージが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Hi &amp;lt;ユーザ名&amp;gt;! You&#039;ve successfully authenticated, but GitHub does not provide shell access.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のメッセージが表示されれば、SSHの設定は完了である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続に失敗した場合は、以下のコマンドを実行して詳細なデバッグ情報を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ssh -vT git@github.com&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 既存リポジトリのリモートURLをSSHに変更 ====&lt;br /&gt;
既にHTTPSでクローンしたリポジトリをSSH接続に切り替える場合は、リモートURLを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 現在のリモートURLを確認する&lt;br /&gt;
 git remote -v&lt;br /&gt;
 &lt;br /&gt;
 # リモートURLをSSHに変更する&lt;br /&gt;
 git remote set-url origin git@github.com:&amp;lt;ユーザ名&amp;gt;/&amp;lt;リポジトリ名&amp;gt;.git&lt;br /&gt;
 &lt;br /&gt;
 # 変更後のリモートURLを確認する&lt;br /&gt;
 git remote -v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH鍵のセキュリティに関する注意事項 ====&lt;br /&gt;
SSH鍵を安全に運用するために、以下に示す事柄に留意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSH鍵のセキュリティ対策&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 秘密鍵の権限設定 || 秘密鍵ファイルのパーミッションは&amp;lt;code&amp;gt;600&amp;lt;/code&amp;gt; (所有者のみ読み書き可) に設定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519_github&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 秘密鍵の共有禁止 || 秘密鍵は絶対に他者と共有してはならない。共有するのは公開鍵 (&amp;lt;code&amp;gt;.pub&amp;lt;/code&amp;gt;) のみである。&lt;br /&gt;
|-&lt;br /&gt;
| パスフレーズの設定 || 秘密鍵にはパスフレーズを設定することを推奨する。&amp;lt;br&amp;gt;万が一秘密鍵ファイルが漏洩した場合のリスクを軽減する。&lt;br /&gt;
|-&lt;br /&gt;
| 鍵のローテーション || 定期的に新しい鍵ペアを生成して、古い鍵をGitHubから削除することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| 不要な鍵の削除 || 使用しなくなったデバイスの鍵は、GitHubの[SSH and GPG keys]設定ページから速やかに削除する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
下表に、SSH接続に関する一般的な問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSHトラブルシューティング&lt;br /&gt;
! 症状 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Permission denied (publickey) || 公開鍵がGitHubに登録されていない、&amp;lt;br&amp;gt;または秘密鍵のパスが正しくない || &amp;lt;code&amp;gt;ssh-add -l&amp;lt;/code&amp;gt;で登録済みの鍵を確認する。&amp;lt;br&amp;gt;SSH configのIdentityFileパスを確認する。&amp;lt;br&amp;gt;GitHubに公開鍵が正しく登録されているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| Could not open a connection to your authentication agent || SSH Agentが起動していない || &amp;lt;code&amp;gt;eval &amp;quot;$(ssh-agent -s)&amp;quot;&amp;lt;/code&amp;gt;を実行してSSH Agentを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| WARNING: UNPROTECTED PRIVATE KEY FILE! || 秘密鍵ファイルのパーミッションが緩すぎる || &amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519_github&amp;lt;/code&amp;gt;を実行する。&lt;br /&gt;
|-&lt;br /&gt;
| Connection timed out || ファイアウォール等でSSHポート (22) がブロックされている || HTTPS経由のSSH接続 (ポート443) を試行する。&amp;lt;br&amp;gt;SSH configに以下を設定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Host github.com&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;HostName ssh.github.com&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Port 443&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric&lt;br /&gt;
Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry&lt;br /&gt;
Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open&lt;br /&gt;
SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=Raspberry_Pi%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A&amp;diff=14616</id>
		<title>Raspberry Piの初期設定</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Raspberry_Pi%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A&amp;diff=14616"/>
		<updated>2026-03-25T13:04:50Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ソフトウェアの自動起動 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspbianのダウンロード ==&lt;br /&gt;
以下のWebサイトにアクセスして、任意のRaspbian OSのzipファイルまたはtorrentファイルをダウンロードする。(torrentを使用することを推奨する)&amp;lt;br&amp;gt;&lt;br /&gt;
* Raspberry Pi 公式Webサイト&lt;br /&gt;
*: https://www.raspberrypi.com/software/operating-systems/&lt;br /&gt;
* ミラーサイト(JAIST)&lt;br /&gt;
*: http://ftp.jaist.ac.jp/pub/raspberrypi/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたRaspbian OSのzipファイルは解凍せずに、balenaEtcher等を使用してSDカードに書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RaspberryPi Imagerを使用してインストール ==&lt;br /&gt;
==== RaspberryPi Imagerとは ====&lt;br /&gt;
RaspberryPi Imagerは、Raspberry Pi OSや他OSをmicroSDカードにインストールして、Raspberry Piで使用できるようにするためソフトウェアである。&amp;lt;br&amp;gt;&lt;br /&gt;
RaspberryPi ImagerをPCにインストールした後、Raspberry Piで使用するSDカードをPCに挿入して、Raspberry Pi Imagerを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RaspberryPi Imagerのインストール ====&lt;br /&gt;
RaspberryPi Imagerのビルドに必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install libarchive-devel libcurl-devel zlib-devel libgnutls-devel \&lt;br /&gt;
                     &lt;br /&gt;
                     # Qt 5を使用する場合&lt;br /&gt;
                     libqt5-qtbase-common-devel libQt5Widgets-devel libQt5DBus-devel libQt5Concurrent-devel \&lt;br /&gt;
                     libqt5-qtsvg-devel libQt5QuickControls2-devel libqt5-linguist-devel&lt;br /&gt;
                     &lt;br /&gt;
                     # Qt 6を使用する場合&lt;br /&gt;
                     qt6-base-devel qt6-base-common-devel qt6-core-devel qt6-dbus-devel qt6-concurrent-devel \&lt;br /&gt;
                     qt6-svg-devel qt6-quick-devel qt6-quickcontrols2-devel qt6-linguist-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/raspberrypi/rpi-imager/releases/ RaspberryPi ImagerのGithub]にアクセスして、RaspberryPi Imagerのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf rpi-imager-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd rpi-imager-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;コマンドを使用して、RaspberryPi Imagerのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone --depth 1 https://github.com/raspberrypi/rpi-imager.git&lt;br /&gt;
 cd rpi-imager&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドディレクトリを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RaspberryPi Imagerをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cmake -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のgcc&amp;gt; -DCMAKE_CXX_COMPILER=&amp;lt;G++ 8以降のg++&amp;gt; \&lt;br /&gt;
       -DCMAKE_BUILD_TYPE=Release                                              \&lt;br /&gt;
       -DCMAKE_INSTALL_PREFIX=&amp;lt;RaspberryPi Imagerのインストールディレクトリ&amp;gt;           \&lt;br /&gt;
       -DENABLE_TELEMETRY=OFF                                                  \&lt;br /&gt;
       ../src&lt;br /&gt;
 &lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RaspberryPi Imagerのデスクトップエントリファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.local/applications/RaspberryPi_Imager.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.local/applications/RaspberryPi_Imager.desktopファイル&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Version=1.0&lt;br /&gt;
 Name=Raspberry Pi Imager&lt;br /&gt;
 Comment=Raspberry Pi Imager&lt;br /&gt;
 Exec=/&amp;lt;RaspberryPi Imagerのインストールディレクトリ&amp;gt;/bin/rpi-imager --disable-telemetry &lt;br /&gt;
 Icon=/&amp;lt;RaspberryPi Imagerのインストールディレクトリ&amp;gt;/share/icons/hicolor/128x128/apps/rpi-imager.png&lt;br /&gt;
 Categories=Utility&lt;br /&gt;
 StartupNotify=false&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== テレメトリの無効化 ====&lt;br /&gt;
標準のRaspberry Piイメージを使用する場合、&amp;lt;br&amp;gt;&lt;br /&gt;
ソフトウェアの使用状況（Raspberry Pi Imagerのバージョンの普及状況、どのイメージとOSが最も人気があるか等）を把握するため、&amp;lt;br&amp;gt;&lt;br /&gt;
選択したイメージのURL、OS名、カテゴリ、Raspberry Pi Imagerの実行バージョン、使用しているOS、CPUアーキテクチャ、ロケール、Raspberry Piリビジョンを、&amp;lt;br&amp;gt;&lt;br /&gt;
https://rpi-imager-stats.raspberrypi.com へ送信している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサービスは、Herokuによってホストされており、eu-west-1地域における1日あたりの各URL、OS名、カテゴリについて、Redis Sorted Setを使用して増分するカウンターを保存している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、これらのカウントに個人データを関連付けることはない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、時間の経過と共にダウンロード数を照会のみを行っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxでは、&amp;lt;code&amp;gt;rpi-imager --disable-telemetry&amp;lt;/code&amp;gt;を実行する、または、~/.config/Raspberry Pi/Imager.confファイルに以下に示す内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # ~/.config/Raspberry Pi/Imager.confファイル&lt;br /&gt;
 &lt;br /&gt;
 [General]&lt;br /&gt;
 telemetry=false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RaspberryPi Imagerの設定 ====&lt;br /&gt;
RaspberryPi Imagerの使用時において、[Ctrl] + [Shift] + [X]キーを同時押下することにより、詳細オプションダイアログを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Raspberry Piのブート設定ファイルで設定するいくつかの事柄を指定することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、SSHの有効化および無効化、Wi-Fiの設定、ロケールの設定を行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspbianの設定 ==&lt;br /&gt;
まず、Raspbianを最新の状態にするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== キーボードの設定 ==&lt;br /&gt;
設定用アプリケーションの[Localisation]タブの[Set Keyboard]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたウインドウにある[Country]を[Japan]に、[Variant]を[Japanese(OADG 109A)]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== タイムゾーンの設定 ==&lt;br /&gt;
設定用アプリケーションの[Localisation]タブの[Set Timezone]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたウインドウにある[Area]を[Asia]に、[Location]を[Tokyo]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPアドレスの設定 ==&lt;br /&gt;
==== GUIで設定する ====&lt;br /&gt;
まず、デスクトップ画面右上のネットワークアイコンを右クリックして、[Wireless &amp;amp; Wired Network Settings]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[Network Preferences]が開くので、[Interface]プルダウンを選択して、有線LANの場合は[eth0]、Wi-Fiの場合は[wlan0]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、以下のネットワークの設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
* IPアドレス&lt;br /&gt;
*: &amp;lt;IPアドレス&amp;gt;/&amp;lt;サブネットマスク  例. 24&amp;gt;&lt;br /&gt;
* Router&lt;br /&gt;
*: &amp;lt;ゲートウェイのIPアドレス&amp;gt;&lt;br /&gt;
* DNS&lt;br /&gt;
*: &amp;lt;DNSサーバのIPアドレス&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、[適用]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CUIで設定する (推奨) ====&lt;br /&gt;
===== Raspberry Pi OS Bookwormの場合 =====&lt;br /&gt;
 sudo vi &#039;/etc/NetworkManager/system-connections/Wired connection 1.nmconnection&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/NetworkManager/system-connections/Wired connection 1.nmconnectionファイル&lt;br /&gt;
 &lt;br /&gt;
 [connection]&lt;br /&gt;
 type=ethernet&lt;br /&gt;
 id=Wired connection 1&lt;br /&gt;
 uuid=xxxx-xxxx-xxxx-xxxx-xxxx&lt;br /&gt;
 autoconnect=true&lt;br /&gt;
 interface-name=eth0&lt;br /&gt;
 timestamp=1732023900&lt;br /&gt;
 &lt;br /&gt;
 [ethernet]&lt;br /&gt;
 &lt;br /&gt;
 [ipv4]&lt;br /&gt;
 address1=&amp;lt;Raspberry PiのIPアドレス  例: 192.168.0.100&amp;gt;/&amp;lt;サブネットマスク  例: 24&amp;gt;,&amp;lt;デフォルトゲートウェイ  例: 192.168.0.1&amp;gt;  # 任意の値&lt;br /&gt;
 dns=&amp;lt;DNSのアドレス  例: 192.168.0.1&amp;gt;;  # 任意の値&lt;br /&gt;
 method=manual&lt;br /&gt;
 &lt;br /&gt;
 [ipv6]&lt;br /&gt;
 addr-gen-mode=stable-privacy&lt;br /&gt;
 #method=auto&lt;br /&gt;
 method=disabled  # IPv6を無効化する場合&lt;br /&gt;
 &lt;br /&gt;
 [proxy]&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Raspberry Pi OS Bullseyeの場合 =====&lt;br /&gt;
まず、/etc/dhcpcd.confファイルの最下行に、以下の設定を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/dhcpcd.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/dhcpcd.confファイル&lt;br /&gt;
 &lt;br /&gt;
 interface &amp;lt;eth0 または wlan0&amp;gt;&lt;br /&gt;
 static ip_address=&amp;lt;IPアドレス&amp;gt;/&amp;lt;サブネットマスク  例. 24&amp;gt;&lt;br /&gt;
 static routers=&amp;lt;ゲートウェイのIPアドレス&amp;gt;&lt;br /&gt;
 static domain_name_servers=&amp;lt;DNSのIPアドレス&amp;gt;&lt;br /&gt;
 noipv6  # IPv6を使用しない場合&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の設定を有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl restart networking&lt;br /&gt;
 sudo systemctl restart dhcpcd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PCを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
静的IPアドレスに設定できているかどうかを確認する。&amp;lt;bt&amp;gt;&lt;br /&gt;
 ip a&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、静的IPアドレスが設定できない場合、dhcpcdデーモンの状態を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl status dhcpcd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すようなメッセージが出力されている場合は、静的IPアドレスが他の端末と衝突しているため、別の静的IPアドレスの値を設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 〜 dhcpcd 〜: eth0: hardware address &amp;lt;MACアドレス&amp;gt; claims &amp;lt;上記で設定した静的IPアドレス&amp;gt;&lt;br /&gt;
 〜 dhcpcd 〜: eth0: DAD detected &amp;lt;上記で設定した静的IPアドレス&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 日本語フォントのインストールと言語の変更 ==&lt;br /&gt;
日本語フォントをインストールするために、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install fonts-noto-cjk fonts-vlgothic&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、GUI環境で日本語を表示するために言語の変更を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
設定用アプリケーションの[Localisation]タブの[Set Locale]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたウインドウにある[Language]を[JP(Japan)]に、[Character Set]を[UTF-8]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定後、再起動が促されるのでYesボタンを押下して再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記だけでなく、以下のフォントも使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ttf-kochi-gothic ttf-kochi-mincho fonts-takao fonts-vlgothic fonts-ipafont xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 日本語入力ソフトウェアのインストール ==&lt;br /&gt;
日本語入力ソフトウェアは2種類存在するのでどちらか一方を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bullseye以降のRaspberry Pi OS ====&lt;br /&gt;
Mozcをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ibus-mozc&lt;br /&gt;
 または&lt;br /&gt;
 sudo apt install fcitx5-mozc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fcitx5-mozcをインストールした場合、以下の設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 QT_QPA_PLATFORM=wayland fcitx5-configtool&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/environment&lt;br /&gt;
 # または&lt;br /&gt;
 vi ~/.xprofile&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.xprofileファイル&lt;br /&gt;
 &lt;br /&gt;
 INPUT_METHOD=fcitx5&lt;br /&gt;
 XMODIFIERS=@im=fcitx5&lt;br /&gt;
 GTK_IM_MODULE=fcitx5&lt;br /&gt;
 QT_IM_MODULE=fcitx5&lt;br /&gt;
 &lt;br /&gt;
 fcitx5 &amp;amp;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Raspberry Piを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
[半角 / 全角]キー等で日本語入力の切り替えができることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mozcをインストールする場合 (NOOBS 1.4.2以降のRaspbian) ====&lt;br /&gt;
Mozcをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ibus-mozc&lt;br /&gt;
 または&lt;br /&gt;
 sudo apt install fcitx-mozc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Raspberry Piを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
[半角 / 全角]キーで日本語入力の切り替えができることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fcitx-mozcをインストールした場合、以下の設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
# デスクトップ画面左上からのメニューアイコンから、[設定] - [Fcitx設定]を選択する。&lt;br /&gt;
# [入力メソッドの設定]画面が開くので、画面左下にある[+]ボタンを押下する。&lt;br /&gt;
# [入力メソッドの追加]画面が開くので、[キーボード - 日本語 - 日本語(OADG 109A)]を選択する。&lt;br /&gt;
# [入力メソッドの設定]画面に戻ると、選択したキーボードが最も下に表示されるので、[↑]ボタンを押下して最も上に移動する。&amp;lt;br&amp;gt;もし、選択したものと異なるキーボードが表示されている場合は、そのキーボードを選択した状態で[-]ボタンを押下する。&lt;br /&gt;
# [入力メソッドの設定]画面の[全体の設定]タブを選択して、[入力メソッドのオンオフ]項目が[Zenkakuhankaku]に設定されていることを確認する。&lt;br /&gt;
# [入力メソッドの設定]画面の[外観]タブを選択して、[状態パネルを隠すモード]項目のプルダウンから[表示]を選択する。&lt;br /&gt;
# [入力メソッドの設定]画面右上の[x]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== UIMをインストールする場合(NOOBS 1.4.1までのRaspbian推奨) =====&lt;br /&gt;
wheezyをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install uim uim-anthy xfonts-kaname&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Raspbianを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
[半角／全角]キーまたは[Shift][Space]キーを同時押下することで日本語入力のオンオフを切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ランレベルの変更 ==&lt;br /&gt;
デスクトップ画面左上のアイコンから、[設定] - [Raspberry Piの設定]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[System]タブ - [ブート]項目から、[デスクトップ]または[CLI]を選択して、[自動ログイン]のチェックを外す。&amp;lt;br&amp;gt;&lt;br /&gt;
[OK]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Piを再起動すると、CLIまたはGUIでRaspberry Piが起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;リモートデスクトップ接続する場合は、[デスクトップ]を選択すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ファイヤーウォールの設定 ==&lt;br /&gt;
firewalldのインストールを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install firewalld&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールできたかどうか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
Active: active (running)と表示されていれば正常に起動している。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl status firewalld&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイヤーウォールを自動で起動するには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl enable firewalld&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイヤーウォールの設定を確認するには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 firewall-cmd --list-all&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイヤーウォールのポートを開放するには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
下記は、SSHやHTTPのポートを開放する例である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=ssh     // SSHを開放&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=http    // HTTPを開放&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=22/tcp  // TCPポート22番を開放&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=80/tcp  // TCPポート80番を開放&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ファイヤーウォールのポートを閉じるには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
下記は、SSHやHTTPのポートを閉じる例である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --remove-service=ssh&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --remove-service=http&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下のコマンドでは、publicゾーンの設定をWi-Fiのインターフェース(インターフェース名 : wlan0)に割り当てる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --change-interface=wlan0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、設定を反映させるため以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
successと表示されていれば成功である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --reload&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wi-Fiの無効化 ==&lt;br /&gt;
Wi-Fiを無効にする場合、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Piを再起動することにより、設定が有効になる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo iwconfig wlan0 txpower off&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度、Wi-Fiを有効にする場合は、以下のコマンドを実行して再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo iwconfig wlan0 txpower on&lt;br /&gt;
 または&lt;br /&gt;
 sudo iwconfig wlan0 txpower auto&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== debパッケージのインストールとアンインストール ==&lt;br /&gt;
* debファイルのみをインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo deb -i &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;sudo dpkg -i &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* 依存関係のパッケージも含めてインストールする&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo gdebi &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* 依存関係を無視してインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -i --force-depends &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* debパッケージがインストールされているか確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg --list &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* debパッケージをアンインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -r &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -purge &amp;lt;パッケージ名&amp;gt;  # 設定ファイルも含めて削除する場合&amp;lt;/code&amp;gt;&lt;br /&gt;
*: また、アンインストール時に依存関係により問題が生じる場合、&amp;lt;code&amp;gt;--force-depends&amp;lt;/code&amp;gt;オプションを付加することで強制的に削除することができる。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -r --force-depends &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* インストールされたパッケージの情報を確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -s &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* debパッケージの情報を確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -I &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dpkg-reconfigure&amp;lt;/code&amp;gt;コマンドを使用すると、既にインストールされたdebパッケージの状態を再設定できる。&amp;lt;br&amp;gt;設定の初期化等も可能である。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg-reconfigure &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*: また、&amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;オプションを付加する場合、設定ファイルが破損している場合でも強制実行することができる。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg-reconfigure --force &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* その他のオプション&lt;br /&gt;
** インストールを行わずに、確認のみを行う。&lt;br /&gt;
**: &amp;lt;code&amp;gt;--no-act&amp;lt;/code&amp;gt;&lt;br /&gt;
** システムにインストール済みのパッケージが新しい場合は、インストールしない。&lt;br /&gt;
**: &amp;lt;code&amp;gt;-G&amp;lt;/code&amp;gt;&lt;br /&gt;
** 同バージョンがインストール済みの場合は、再インストールしない。&lt;br /&gt;
**: &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetoothの無効化 ==&lt;br /&gt;
オンボードのBluetoothおよび関連サービスを無効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
これらの手順は、Raspberry Piの起動時にbluetooth、hci_uart、btbcm等の関連カーネルモジュールのロードも無効化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Pi 3B、3B+、3A+、4B、Zero Wにおいて、オンボードのBluetoothを無効化する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、GPIO 14(pin 8)とGPIO 15(pin10)上のUART0 / ttyAMA0を復元する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
N.B.モデムを初期化するsystemdサービスを無効にしてUARTを使用しないようにするには、&amp;lt;code&amp;gt;sudo systemctl disable hciuart&amp;lt;/code&amp;gt;を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /boot/config.txt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /boot/config.txtファイル&lt;br /&gt;
 &lt;br /&gt;
 # Disable Bluetooth&lt;br /&gt;
 dtoverlay=disable-bt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bluetoothのデーモンを無効化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl disable hciuart.service&lt;br /&gt;
 sudo systemctl disable bluealsa.service&lt;br /&gt;
 sudo systemctl disable bluetooth.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Piを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl reboot&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、オンボードのBluetoothおよび関連サービスを無効にしても、外付けのBluetoothアダプタを接続する場合、Bluetoothは利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
もし、Bluetoothが不要な場合は、Bluetoothスタックをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、外付けのBluetoothアダプタも利用できなくなる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt purge bluez&lt;br /&gt;
 sudo apt autoremove&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ソフトウェアの自動起動 ==&lt;br /&gt;
==== autostartファイルについて ====&lt;br /&gt;
ソフトウェアのパスの前に&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;が記述されていることがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;は、指定されたソフトウェアがクラッシュした場合、再起動するようLXDEに指示するものである。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;を付加することにより、ソフトウェアが予期せず終了した場合でも自動的に再起動されるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;を付加せずにソフトウェアを指定する場合、そのソフトウェアはシステムの起動時に1度だけ実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== システム全体に設定する場合 ====&lt;br /&gt;
/etc/xdg/lxsession/LXDE-pi/autostartファイルに自動起動するソフトウェアのパスを記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &amp;quot;@&amp;lt;ソフトウェアのパス&amp;gt; [オプション]&amp;quot; &amp;gt;&amp;gt; /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 各ユーザに設定する場合 ====&lt;br /&gt;
まず、/etc/xdg/lxsession/LXDE-pi/autostartファイルを~/.config/lxsession/LXDE-piにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p ~/.config/lxsession/LXDE-pi&lt;br /&gt;
 cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、コピーした~/.config/lxsession/LXDE-pi/autostartファイルに自動起動するソフトウェアのパスを記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &amp;quot;@&amp;lt;ソフトウェアのパス&amp;gt; [オプション]&amp;quot; &amp;gt;&amp;gt; ~/.config/lxsession/LXDE-pi/autostart&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;~/.config/lxsession/LXDE-pi/autostart&amp;lt;/u&amp;gt; ファイルを作成する時、&amp;lt;u&amp;gt;/etc/xdg/lxsession/LXDE-pi/autostart&amp;lt;/u&amp;gt; が完全に上書きされる。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、&amp;lt;u&amp;gt;~/.config/lxsession/LXDE-pi/autostart&amp;lt;/u&amp;gt; ファイルを作成してカスタム項目を追加する場合は、必ずデフォルトの内容をコピーしてから編集すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他の設定 ==&lt;br /&gt;
デスクトップ画面左上から、[設定] - [Raspberry Piの設定]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[System]タブ - [スプラッシュ画面:]項目を[無効]にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、起動時に何か問題が発生した場合、様々なエラーを表示できるからである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[Category:Raspberry_Pi]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14615</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14615"/>
		<updated>2026-03-25T09:57:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* プロジェクトルートのみ参照する場合 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
OpenCodeでは、プロジェクトルートまたはグローバル設定の &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの読み込み優先順位は以下の通りである。(後の設定が前の設定にマージされる)&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: プロジェクトルートの &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに以下の内容を記述して、Filesystem MCP Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のディレクトリへのアクセスを許可する場合は、&amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; 配列にディレクトリパスを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/dir1&amp;quot;, &amp;quot;/path/to/dir2&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバを一時的に無効にする場合は、&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトルートのみ参照する場合 ====&lt;br /&gt;
.mcp.json / opencode.jsonファイルがあるディレクトリ自体を指すには、相対パス &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; は、MCPサーバ起動時のカレントディレクトリ (一般的には、.mcp.json / opencode.jsonファイルがあるプロジェクトルート) を指す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
サブディレクトリに限定する場合は、&amp;lt;u&amp;gt;./src&amp;lt;/u&amp;gt; のように指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;.&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14614</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14614"/>
		<updated>2026-03-25T09:56:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Cursorの設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
OpenCodeでは、プロジェクトルートまたはグローバル設定の &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの読み込み優先順位は以下の通りである。(後の設定が前の設定にマージされる)&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: プロジェクトルートの &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに以下の内容を記述して、Filesystem MCP Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のディレクトリへのアクセスを許可する場合は、&amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; 配列にディレクトリパスを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/dir1&amp;quot;, &amp;quot;/path/to/dir2&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバを一時的に無効にする場合は、&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトルートのみ参照する場合 ====&lt;br /&gt;
.mcp.json / opencode.jsonファイルがあるディレクトリ自体を指すには、相対パス &amp;lt;u&amp;gt;.&amp;lt;/u&amp;gt; を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.&amp;lt;/u&amp;gt; は、MCPサーバ起動時のカレントディレクトリ (一般的には、.mcp.jsonがあるプロジェクトルート) を指す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルがあるディレクトリを作業ディレクトリとしてMCPサーバを起動するため、&amp;lt;u&amp;gt;.&amp;lt;/u&amp;gt; でそのディレクトリを指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
サブディレクトリに限定する場合は、&amp;lt;u&amp;gt;./src&amp;lt;/u&amp;gt; のように指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;.&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14613</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14613"/>
		<updated>2026-03-25T09:52:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Claude Codeの設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
OpenCodeでは、プロジェクトルートまたはグローバル設定の &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの読み込み優先順位は以下の通りである。(後の設定が前の設定にマージされる)&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: プロジェクトルートの &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに以下の内容を記述して、Filesystem MCP Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のディレクトリへのアクセスを許可する場合は、&amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; 配列にディレクトリパスを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/dir1&amp;quot;, &amp;quot;/path/to/dir2&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバを一時的に無効にする場合は、&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_SQLite&amp;diff=14612</id>
		<title>MCPサーバ - SQLite</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_SQLite&amp;diff=14612"/>
		<updated>2026-03-25T09:01:37Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == SQLite MCP Server (mcp-server-sqlite) は、Model Context Protocol (MCP) を通じて、AIアシスタントがSQLiteデータベースと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt; Anthropicが開発したMCP公式リファレンス実装の1つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; AIアシスタントが自然言語の指示を通じてSQLiteデータベースの…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
SQLite MCP Server (mcp-server-sqlite) は、Model Context Protocol (MCP) を通じて、AIアシスタントがSQLiteデータベースと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
Anthropicが開発したMCP公式リファレンス実装の1つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントが自然言語の指示を通じてSQLiteデータベースの操作を実行できるようにする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor、Windsurf等の主要なMCPクライアントに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサーバを使用することにより、AIアシスタントがSQLクエリの実行、テーブルの作成・管理、スキーマの確認、ビジネスインサイトの記録等を自然言語による指示で自動化できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ データベースMCPサーバーツール一覧&lt;br /&gt;
|-&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| クエリ実行ツール || SELECTクエリによるデータ取得、INSERT、UPDATE、DELETEによるデータ操作&lt;br /&gt;
|-&lt;br /&gt;
| テーブル管理ツール || テーブルの作成、テーブル一覧の表示、スキーマ情報の確認&lt;br /&gt;
|-&lt;br /&gt;
| インサイト記録機能 || 分析中に発見したビジネスインサイトを動的メモリソースに蓄積&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== Python版の要件 ====&lt;br /&gt;
Python版のSQLite MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Python 3.10以上&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* uv (Astralが提供するPythonパッケージマネージャ)&lt;br /&gt;
*: &amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを実行するために必要&lt;br /&gt;
* SQLite&lt;br /&gt;
*: PythonにSQLiteが組み込まれているため、別途インストールは不要&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Node.js版の要件 ====&lt;br /&gt;
Node.js版のSQLite MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用して、MCPサーバを実行するために必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== uvのインストール ====&lt;br /&gt;
MCPサーバの実行に必要なuvをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsの場合 =====&lt;br /&gt;
PowerShellを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 powershell -ExecutionPolicy ByPass -c &amp;quot;irm https://astral.sh/uv/install.ps1 | iex&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WinGetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 winget install --id=astral-sh.uv -e&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== MacOSの場合 =====&lt;br /&gt;
Homebrewを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Linuxの場合 =====&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
wgetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 wget -qO- https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-sqliteのインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; コマンドを実行してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install mcp-server-sqlite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; を使用する場合はインストール不要で、そのままサーバを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
詳細は、後述の[[#SQLite MCP Serverの実行]]セクションを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SQLite MCP Serverの実行 ====&lt;br /&gt;
インストール後、以下に示すコマンドでSQLite MCP Serverを起動できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを実行して起動する場合 (推奨) は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 uvx mcp-server-sqlite --db-path /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを実行して起動する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-sqlite /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、コマンドラインオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コマンドラインオプションの一覧&lt;br /&gt;
! オプション !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--db-path&amp;lt;/code&amp;gt; || 必須 || SQLiteデータベースファイルへのパスを指定する。&amp;lt;br&amp;gt;絶対パスを使用することを推奨する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; を使用する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を使用する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sqlite&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを実行して、SQLite MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドでMCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project sqlite -- uvx mcp-server-sqlite --db-path /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの設定の注意点 ====&lt;br /&gt;
Windowsでは、パスの区切り文字として2重バックスラッシュを使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;C:\\Users\\name\\database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合は、&amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sqlite&amp;quot;, &amp;quot;C:\\Users\\name\\database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SQLite MCP Serverの機能 ==&lt;br /&gt;
SQLite MCP Serverは、クエリ実行、テーブル管理、インサイト記録の機能を6つのツールと1つのリソースで提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提供ツール一覧 ====&lt;br /&gt;
下表に、SQLite MCP Serverが提供する全ツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;read_query&amp;lt;/u&amp;gt; || SELECTクエリを実行してデータを取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;write_query&amp;lt;/u&amp;gt; || INSERT、UPDATE、DELETEクエリを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;create_table&amp;lt;/u&amp;gt; || 新しいテーブルを作成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;list_tables&amp;lt;/u&amp;gt; || データベース内の全テーブル名を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;describe_table&amp;lt;/u&amp;gt; || 指定したテーブルのスキーマ情報 (カラム名、型、制約) を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;append_insight&amp;lt;/u&amp;gt; || ビジネスインサイトを分析メモに追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提供リソース ====&lt;br /&gt;
下表に、SQLite MCP Serverが提供するリソースを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ リソースの一覧&lt;br /&gt;
! リソースURI !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| memo://insights || 分析中に発見したビジネスインサイトを蓄積する動的メモリソース。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;append_insight&amp;lt;/u&amp;gt; ツールで追記される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提供プロンプト ====&lt;br /&gt;
下表に、SQLite MCP Serverが提供するプロンプトを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロンプトの一覧&lt;br /&gt;
! プロンプト名 !! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;mcp-demo&amp;lt;/u&amp;gt; || &amp;lt;code&amp;gt;topic&amp;lt;/code&amp;gt; (分析対象を指定) || SQLiteデータベース操作のデモンストレーション用プロンプト。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
SQLite MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーブルの確認 ====&lt;br /&gt;
データベース内のテーブルを確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* データベース内の全テーブルを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このデータベースに含まれるすべてのテーブルを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* テーブルのスキーマを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 usersテーブルのカラム構成と制約を確認してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データのクエリ ====&lt;br /&gt;
テーブルからデータを取得する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 条件を指定してデータを取得する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 productsテーブルから価格が1000円以上の商品の名前と価格を取得してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 月別集計を行う場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 salesデータから2024年の月別売上を集計して、ビジネスインサイトメモに記録してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーブルの作成 ====&lt;br /&gt;
新しいテーブルを作成する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* スキーマを指定してテーブルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下のスキーマでusersテーブルを作成してください:&lt;br /&gt;
 id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
下表に、SQLite MCP Serverのセキュリティに関する推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| データベースファイルの権限設定 || データベースファイルには適切なファイルパーミッションを設定すること。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;chmod 644 database.db&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 絶対パスの使用 || &amp;lt;code&amp;gt;--db-path&amp;lt;/code&amp;gt; オプションには絶対パスを使用する。&amp;lt;br&amp;gt;相対パスや &amp;lt;u&amp;gt;~&amp;lt;/u&amp;gt; (チルダ) は正しく解釈されない場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| 書き込み権限の考慮 || &amp;lt;u&amp;gt;write_query&amp;lt;/u&amp;gt; および &amp;lt;u&amp;gt;create_table&amp;lt;/u&amp;gt; ツールはデータを変更するため、&amp;lt;br&amp;gt;不用意なデータ変更が発生しないよう注意すること。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| uvx または npxコマンドが見つからない || uvまたはNode.jsがインストールされていない。&amp;lt;br&amp;gt;またはPATHが正しく設定されていない。 || uvまたはNode.jsを再インストールして、PATH設定を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| データベースファイルのパスエラーが発生する || 相対パスや &amp;lt;u&amp;gt;~&amp;lt;/u&amp;gt; が使用されている。 || &amp;lt;code&amp;gt;--db-path&amp;lt;/code&amp;gt; オプションには絶対パスを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;database is locked&amp;lt;/u&amp;gt; エラーが発生する || 他のプロセスが同時にデータベースへアクセスしている。 || 他のプロセスのアクセスを確認・終了する。&amp;lt;br&amp;gt;または、WALモードの有効化を検討する。&lt;br /&gt;
|-&lt;br /&gt;
| 権限エラーが発生する || データベースファイルへの読み取り・書き込み権限がない。 || &amp;lt;code&amp;gt;chmod 644 database.db&amp;lt;/code&amp;gt; 等でファイルの権限を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ツールが表示されない || 設定ファイルのJSON構文が誤っている。&amp;lt;br&amp;gt;またはMCPクライアントが再起動されていない。 || 設定ファイルのJSON構文を検証して、MCPクライアントを再起動する。&lt;br /&gt;
|-&lt;br /&gt;
| Windowsでパスが認識されない || パスの区切り文字が正しくない。 || Windowsでは2重バックスラッシュ (&amp;lt;code&amp;gt;C:\\Users\\name\\database.db&amp;lt;/code&amp;gt;) を使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,SQLite,MCP,Model Context Protocol,mcp-server-sqlite,Claude,AI,データベース,SQL&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_PostgreSQL&amp;diff=14611</id>
		<title>MCPサーバ - PostgreSQL</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_PostgreSQL&amp;diff=14611"/>
		<updated>2026-03-25T08:53:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == PostgreSQL MCP Server (@henkey/postgres-mcp-server) は、Model Context Protocol (MCP) を通じて、&amp;lt;br&amp;gt; AIアシスタントがPostgreSQLデータベースと相互作用するための統合ツールインターフェースを提供するサーバである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 元は46個のツールを17個に統合したメタツール設計を採用しており、効率的なデータベース操作を実現する。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Claude Desktop、Claude Code…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PostgreSQL MCP Server (@henkey/postgres-mcp-server) は、Model Context Protocol (MCP) を通じて、&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントがPostgreSQLデータベースと相互作用するための統合ツールインターフェースを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
元は46個のツールを17個に統合したメタツール設計を採用しており、効率的なデータベース操作を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、OpenCode、VS Code、Cursor等の複数のMCPクライアント環境で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサーバを使用することにより、AIアシスタントが自然言語の指示を通じてPostgreSQLのスキーマ管理、テーブル操作、クエリ実行、データベース分析、リアルタイム監視等を自動化できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な機能カテゴリは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Supabaseツール一覧&lt;br /&gt;
|-&lt;br /&gt;
! カテゴリ !! ツール数 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| メタツール || 8個 || スキーマ管理、テーブル操作、カラム管理、ENUM管理、&amp;lt;br&amp;gt;制約管理、インデックス管理、型管理、RLSポリシー管理&lt;br /&gt;
|-&lt;br /&gt;
| クエリ・ミューテーションツール || 4個 || SELECT文の実行、データ変更 (INSERT / UPDATE / DELETE)、&amp;lt;br&amp;gt;任意のSQL実行、コメント管理&lt;br /&gt;
|-&lt;br /&gt;
| 専門ツール || 5個 || データベース分析、デバッグ、データエクスポート / インポート、&amp;lt;br&amp;gt;データベース間転送、リアルタイム監視&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL MCPサーバのインストール ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
PostgreSQL MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js&lt;br /&gt;
*: バージョン v18以降が必要&lt;br /&gt;
* PostgreSQL&lt;br /&gt;
*: バージョン 12以降が必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してPostgreSQL MCP Serverを実行するために必要&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npxを使用したインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でPostgreSQL MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行して、PostgreSQL MCP Serverを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @henkey/postgres-mcp-server --connection-string &amp;quot;postgresql://user:password@localhost:5432/database&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npmグローバルインストール ====&lt;br /&gt;
npmを使用してグローバルにインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @henkey/postgres-mcp-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用したインストール ====&lt;br /&gt;
DockerイメージはDocker Hubで公開されており、Node.jsをインストールせずにPostgreSQL MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -e POSTGRES_CONNECTION_STRING=&amp;quot;postgresql://user:password@localhost:5432/database&amp;quot; henkey/postgres-mcp:latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Smithery経由のインストール ====&lt;br /&gt;
Smithery CLIを使用してClaude向けにインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @smithery/cli install @HenkDz/postgresql-mcp-server --client claude&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続文字列を使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dockerを使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&lt;br /&gt;
         &amp;quot;run&amp;quot;, &amp;quot;--rm&amp;quot;, &amp;quot;-i&amp;quot;,&lt;br /&gt;
         &amp;quot;-e&amp;quot;, &amp;quot;POSTGRES_CONNECTION_STRING=postgresql://username:password@host.docker.internal:5432/database&amp;quot;,&lt;br /&gt;
         &amp;quot;henkey/postgres-mcp:latest&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してPostgreSQL MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add postgresql -- npx -y @henkey/postgres-mcp-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
設定ファイル &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルの &amp;lt;code&amp;gt;mcpServers&amp;lt;/code&amp;gt; セクションに以下に示す内容を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;stdio&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数とオプション ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、PostgreSQL MCP Serverの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;POSTGRES_CONNECTION_STRING&amp;lt;/code&amp;gt; || PostgreSQLへの接続文字列を指定する。&amp;lt;br&amp;gt;標準のPostgreSQL URI形式を使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGHOST&amp;lt;/code&amp;gt; || PostgreSQLサーバのホスト名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGPORT&amp;lt;/code&amp;gt; || PostgreSQLサーバのポート番号を指定する。&amp;lt;br&amp;gt;デフォルト値は 5432&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGDATABASE&amp;lt;/code&amp;gt; || 接続先のデータベース名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGUSER&amp;lt;/code&amp;gt; || PostgreSQLのユーザ名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGPASSWORD&amp;lt;/code&amp;gt; || PostgreSQLのパスワードを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGSSLMODE&amp;lt;/code&amp;gt; || SSL接続モードを指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;allow&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;prefer&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; 等が使用できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 接続文字列 ==&lt;br /&gt;
==== 接続文字列の基本形式 ====&lt;br /&gt;
PostgreSQL MCP Serverへの接続文字列の基本形式を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@hostname:port/database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各パラメータの説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 接続パラメータの一覧&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || PostgreSQLデータベースのユーザ名&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; || PostgreSQLデータベースのパスワード&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt; || PostgreSQLサーバのホスト名またはIPアドレス&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;port&amp;lt;/code&amp;gt; || PostgreSQLサーバのポート番号 (デフォルト: 5432)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt; || 接続先のデータベース名&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続文字列の例 ====&lt;br /&gt;
ローカル接続 (認証あり) の場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@localhost:5432/database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ローカル接続 (認証なし) の場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://localhost:5432/database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSL接続の場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@hostname:5432/database?sslmode=require&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のパラメータを指定する場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@hostname:5432/database?sslmode=require&amp;amp;connect_timeout=10&amp;amp;application_name=mcp_server&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL MCPサーバの機能 ==&lt;br /&gt;
PostgreSQL MCP Serverは、メタツール、クエリ・ミューテーションツール、専門ツールの3つのカテゴリで17個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== メタツール ====&lt;br /&gt;
下表に、データベーススキーマの定義・管理に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ メタツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| schemaManagement || スキーマの作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| tableOperations || テーブルの作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| columnManagement || カラムの追加、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| enumManagement || ENUM型の作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| constraintManagement || 制約 (主キー、外部キー、一意制約等) の管理を行う。&lt;br /&gt;
|-&lt;br /&gt;
| indexManagement || インデックスの作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| typeManagement || カスタム型の管理を行う。&lt;br /&gt;
|-&lt;br /&gt;
| policyManagement || Row Level Security (RLS) ポリシーの管理を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クエリ・ミューテーションツール ====&lt;br /&gt;
下表に、SQLクエリの実行およびデータ変更に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ クエリ・ミューテーションツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| executeQuery || SELECT文を実行してデータを取得する。&amp;lt;br&amp;gt;読み取り専用クエリに使用する。&lt;br /&gt;
|-&lt;br /&gt;
| executeMutation || INSERT、UPDATE、DELETE文を実行してデータを変更する。&lt;br /&gt;
|-&lt;br /&gt;
| executeSQL || 任意のSQL文を実行する。DDL文やトランザクション制御にも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| commentsManagement || テーブル、カラム等のデータベースオブジェクトにコメントを追加・管理する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門ツール ====&lt;br /&gt;
下表に、データベースの分析・監視・データ転送に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| databaseAnalysis || データベースの統計情報、テーブルサイズ、インデックス使用状況等を分析する。&lt;br /&gt;
|-&lt;br /&gt;
| debugDatabase || ロック状況、実行中のクエリ、接続情報等のデバッグ情報を取得する。&lt;br /&gt;
|-&lt;br /&gt;
| dataExportImport || データのCSV / JSONエクスポートおよびインポートを行う。&lt;br /&gt;
|-&lt;br /&gt;
| crossDatabaseTransfer || 異なるデータベース間でのデータ転送を行う。&lt;br /&gt;
|-&lt;br /&gt;
| realtimeMonitoring || データベースのパフォーマンス、接続数、クエリ実行状況をリアルタイムで監視する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
PostgreSQL MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーブル構造の確認 ====&lt;br /&gt;
テーブルのスキーマ情報を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* usersテーブルのスキーマ情報を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 usersテーブルのスキーマ情報を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データの検索 ====&lt;br /&gt;
テーブルからデータをクエリする場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 条件を指定して特定フィールドのみ取得する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 productsテーブルから価格が1000円以降の商品の名前と価格を取得してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データベース分析 ====&lt;br /&gt;
データベースの統計情報やインデックス使用状況を分析する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* テーブルサイズとインデックス使用状況を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 データベースのテーブルサイズとインデックス使用状況を分析してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リアルタイム監視 ====&lt;br /&gt;
現在のデータベースの状態をリアルタイムで確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 実行中のクエリとアクティブな接続数を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 現在実行中のクエリとアクティブな接続数を確認してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データのエクスポート ====&lt;br /&gt;
テーブルデータをファイル形式でエクスポートする場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* テーブルデータをCSV形式でエクスポートする場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 ordersテーブルのデータをCSV形式でエクスポートしてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
下表に、PostgreSQL MCP Serverのセキュリティに関する推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用ユーザの使用 || MCPサーバ用に専用の読み取り専用PostgreSQLユーザを作成することを推奨する。&amp;lt;br&amp;gt;必要最小限の権限のみを付与すること。&lt;br /&gt;
|-&lt;br /&gt;
| 認証情報の管理 || 接続文字列やパスワード等の機密情報は、設定ファイルに直接記述せず、&amp;lt;br&amp;gt;環境変数 (&amp;lt;code&amp;gt;POSTGRES_CONNECTION_STRING&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PGPASSWORD&amp;lt;/code&amp;gt; 等) を使用して管理することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| SSL/TLS接続の使用 || 本番環境では、接続文字列に &amp;lt;code&amp;gt;sslmode=require&amp;lt;/code&amp;gt; を指定して、&amp;lt;br&amp;gt;SSL/TLS暗号化通信を有効にすることを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| ネットワークアクセスの制限 || &amp;lt;u&amp;gt;pg_hba.conf&amp;lt;/u&amp;gt; でホストベース認証を設定して、信頼できるネットワーク範囲のみから接続を許可すること。&lt;br /&gt;
|-&lt;br /&gt;
| ツールアクセス制御 || MCPクライアントのツールアクセス制御機能を活用して、&amp;lt;br&amp;gt;AIアシスタントが使用できるツールを必要なものだけに制限することを推奨する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| 接続エラーが発生する || 接続文字列のユーザ名またはパスワードが誤っている。&amp;lt;br&amp;gt;PostgreSQLサーバが起動していない。 || 接続文字列を確認する。&amp;lt;br&amp;gt;PostgreSQLサーバの起動状態を確認する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;pg_hba.conf&amp;lt;/u&amp;gt; ファイルの認証設定を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 接続できない (Connection refused) || PostgreSQLがリッスンしているポート (デフォルト: 5432) が&amp;lt;br&amp;gt;ファイアウォールでブロックされている。 || ファイアウォールの設定を確認してポート5432を開放する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;postgresql.conf&amp;lt;/u&amp;gt; ファイルの &amp;lt;code&amp;gt;listen_addresses&amp;lt;/code&amp;gt; を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| npxコマンドが見つからない || Node.jsがインストールされていない。&amp;lt;br&amp;gt;または要件を満たすバージョンでない。 || Node.js v18以降をインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| SSL接続エラーが発生する || SSL接続モードの設定が誤っている。&amp;lt;br&amp;gt;SSL証明書が無効 || 接続文字列の &amp;lt;code&amp;gt;sslmode&amp;lt;/code&amp;gt; パラメータを確認する。&amp;lt;br&amp;gt;PostgreSQLサーバ側のSSL設定を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 書き込み操作が拒否される || PostgreSQLユーザに書き込み権限が付与されていない。 || PostgreSQLユーザのGRANT権限を確認する。&amp;lt;br&amp;gt;必要な場合はINSERT、UPDATE、DELETE権限を付与する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,PostgreSQL,MCP,Model Context Protocol,postgres-mcp-server,Claude,AI,MCPサーバ,データベース,スキーマ管理,クエリ,SQL&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_YouTube&amp;diff=14610</id>
		<title>MCPサーバ - YouTube</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_YouTube&amp;diff=14610"/>
		<updated>2026-03-25T08:45:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == YouTube MCPサーバは、Model Context Protocol (MCP) を通じて、AIアシスタントがYouTube動画の字幕・トランスクリプトを取得するための機能を提供するサーバである。&amp;lt;br&amp;gt; YouTube動画のURLを指定するだけで、AIアシスタントが動画の内容を分析・要約できるようになる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; YouTube Data APIキーは不要で、手軽に導入可能である。&amp;lt;br&amp;gt; Claude Desktop、Claude Code…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
YouTube MCPサーバは、Model Context Protocol (MCP) を通じて、AIアシスタントがYouTube動画の字幕・トランスクリプトを取得するための機能を提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
YouTube動画のURLを指定するだけで、AIアシスタントが動画の内容を分析・要約できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YouTube Data APIキーは不要で、手軽に導入可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code等の主要なMCPクライアントに対応し、Windows、MacOS、Linuxの主要なOSで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
代表的な実装として以下の2つが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ YouTube文字起こしMCPサーバー実装比較&lt;br /&gt;
|-&lt;br /&gt;
! 実装名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| mcp-youtube&amp;lt;br&amp;gt;(@anaisbetts/mcp-youtube) || Ani Betts氏が開発した実装であり、yt-dlpを使用して字幕を取得する。&amp;lt;br&amp;gt;単純な構成で導入が容易であり、YouTube Data APIキーは不要である。&lt;br /&gt;
|-&lt;br /&gt;
| mcp-server-youtube-transcript&amp;lt;br&amp;gt;(@kimtaeyoon83/mcp-server-youtube-transcript) || Kim Taeyoon氏が開発した実装であり、&amp;lt;br&amp;gt;多言語対応、広告フィルタリング、タイムスタンプ制御等の高度な機能を提供する。&amp;lt;br&amp;gt;外部ツールへの依存がなく、Node.jsのみで動作する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な活用シーンを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 動画コンテンツの要約と分析&lt;br /&gt;
* 技術動画から情報抽出&lt;br /&gt;
* ポッドキャスト形式コンテンツの分析&lt;br /&gt;
* 言語学習における多言語字幕の取得&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2つのサーバの比較 ==&lt;br /&gt;
下表に、mcp-youtubeとmcp-server-youtube-transcriptの主要な違いを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ YouTube MCPサーバ比較&lt;br /&gt;
! 項目 !! mcp-youtube !! mcp-server-youtube-transcript&lt;br /&gt;
|-&lt;br /&gt;
| 開発元 || Ani Betts || Kim Taeyoon&lt;br /&gt;
|-&lt;br /&gt;
| npmパッケージ || @anaisbetts/mcp-youtube || @kimtaeyoon83/mcp-server-youtube-transcript&lt;br /&gt;
|-&lt;br /&gt;
| バージョン || 0.6.0 || 0.1.1&lt;br /&gt;
|-&lt;br /&gt;
| ライセンス || MIT || MIT&lt;br /&gt;
|-&lt;br /&gt;
| GitHub スター数 || 506 || 503&lt;br /&gt;
|-&lt;br /&gt;
| 外部依存 || yt-dlp 必須 || なし&lt;br /&gt;
|-&lt;br /&gt;
| 多言語対応 || 限定的 || 対応 (自動フォールバック)&lt;br /&gt;
|-&lt;br /&gt;
| 広告フィルタリング || なし || 対応 (デフォルト有効)&lt;br /&gt;
|-&lt;br /&gt;
| タイムスタンプ制御 || タイムスタンプ除去 || 表示 / 非表示を選択可能&lt;br /&gt;
|-&lt;br /&gt;
| YouTube Shorts対応 || 不明 || 対応&lt;br /&gt;
|-&lt;br /&gt;
| YouTube API キー || 不要 || 不要&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== mcp-youtubeの要件 ====&lt;br /&gt;
* Node.js&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* yt-dlp&lt;br /&gt;
*: 字幕取得のために必要な外部ツール&lt;br /&gt;
*: MacOS: &amp;lt;code&amp;gt;brew install yt-dlp&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Python環境: &amp;lt;code&amp;gt;pip install yt-dlp&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Windows (WinGet): &amp;lt;code&amp;gt;winget install yt-dlp&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-youtube-transcriptの要件 ====&lt;br /&gt;
* Node.js 18以上&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
*: 外部ツールへの依存はなし&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== yt-dlpのインストール (mcp-youtubeを使用する場合) ====&lt;br /&gt;
mcp-youtubeはyt-dlpに依存するため、事前にインストールが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== MacOSの場合 =====&lt;br /&gt;
Homebrewを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install yt-dlp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Linux / MacOSの場合 (pip経由) =====&lt;br /&gt;
pipを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install yt-dlp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsの場合 =====&lt;br /&gt;
WinGetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 winget install yt-dlp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、yt-dlpコマンドがPATHに含まれていることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 yt-dlp --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-youtubeの設定 ====&lt;br /&gt;
===== Claude Desktopでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@anaisbetts/mcp-youtube&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Codeでの設定 =====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add youtube -- npx -y @anaisbetts/mcp-youtube&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project youtube -- npx -y @anaisbetts/mcp-youtube&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== VS Code / Cursorでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@anaisbetts/mcp-youtube&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsでの設定 =====&lt;br /&gt;
Windowsでは &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を使用するMCPサーバの場合、&amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@anaisbetts/mcp-youtube&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-youtube-transcriptの設定 ====&lt;br /&gt;
===== Claude Desktopでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube-transcript&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@kimtaeyoon83/mcp-server-youtube-transcript&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Codeでの設定 =====&lt;br /&gt;
 claude mcp add youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== VS Code / Cursorでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube-transcript&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@kimtaeyoon83/mcp-server-youtube-transcript&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsでの設定 =====&lt;br /&gt;
Windowsでは &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube-transcript&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@kimtaeyoon83/mcp-server-youtube-transcript&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ツール仕様 ==&lt;br /&gt;
==== mcp-youtubeのツール ====&lt;br /&gt;
下表に、mcp-youtubeが提供するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ mcp-youtube ツール一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || YouTube URLを指定して字幕テキストを取得する。&amp;lt;br&amp;gt;yt-dlpを使用して字幕データを取得し、テキスト形式で返す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-youtube-transcriptのツール ====&lt;br /&gt;
下表に、mcp-server-youtube-transcriptが提供するツールとパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ mcp-server-youtube-transcript ツール一覧&lt;br /&gt;
! ツール名 !! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || url (必須) || YouTube動画URL、Shorts URL、動画IDを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || lang (オプション、デフォルト: &amp;quot;en&amp;quot;) || 取得する字幕の言語コードを指定する。&amp;lt;br&amp;gt;例: ja (日本語)、en (英語)、ko (韓国語)&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || include_timestamps (オプション、デフォルト: false) || タイムスタンプを字幕テキストに含めるかどうかを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || strip_ads (オプション、デフォルト: true) || 広告・スポンサーシップに関する文字列を除去するかどうかを指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応URL形式 (mcp-server-youtube-transcript) ====&lt;br /&gt;
mcp-server-youtube-transcriptは、以下に示すURL形式に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 通常URL&lt;br /&gt;
*: https://www.youtube.com/watch?v=&amp;lt;動画ID&amp;gt;&lt;br /&gt;
* YouTube Shorts URL&lt;br /&gt;
*: https://www.youtube.com/shorts/&amp;lt;動画ID&amp;gt;&lt;br /&gt;
* 短縮URL&lt;br /&gt;
*: https://youtu.be/&amp;lt;動画ID&amp;gt;&lt;br /&gt;
* 動画IDのみ&lt;br /&gt;
*: &amp;lt;動画ID&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
MCPサーバを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動画の要約 ====&lt;br /&gt;
YouTube動画の内容を要約する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 動画全体を要約する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このYouTube動画を要約してください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* キーポイントを抽出する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 この動画のキーポイントを5つ教えてください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 多言語字幕の取得 ====&lt;br /&gt;
特定の言語で字幕を取得する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
mcp-server-youtube-transcriptを使用する場合に有効である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 日本語字幕を取得する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 この動画の日本語字幕を取得してください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術情報の抽出 ====&lt;br /&gt;
技術動画から特定の情報を抽出する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 動画で紹介されているツールを一覧化する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 この技術動画で紹介されているツールを一覧にしてください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| yt-dlpが見つからない (mcp-youtube) || yt-dlpがインストールされていない。&amp;lt;br&amp;gt;または、PATHに含まれていない。 || yt-dlpをインストールして、PATHに追加する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;yt-dlp --version&amp;lt;/code&amp;gt; コマンドで動作確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 字幕が取得できない || 動画に字幕が存在しない。&amp;lt;br&amp;gt;または、字幕が無効化されている。 || 字幕が存在する動画を指定する。&amp;lt;br&amp;gt;動画のYouTubeページで字幕の有無を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 指定した言語の字幕が取得できない || 指定した言語コードの字幕が動画に存在しない。 || 別の言語コードを試す。&amp;lt;br&amp;gt;mcp-server-youtube-transcriptは自動フォールバックを試みるが、&amp;lt;br&amp;gt;全言語で字幕がない場合はエラーとなる。&lt;br /&gt;
|-&lt;br /&gt;
| npxコマンドエラーが発生する (Windows) || Windowsでは &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を直接実行できない場合がある。 || 設定ファイルで &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|-&lt;br /&gt;
| Node.jsバージョンエラーが発生する || インストールされているNode.jsが要件を満たしていない。 || mcp-server-youtube-transcriptの場合、&amp;lt;br&amp;gt;Node.js v18以降にアップグレードする。&lt;br /&gt;
|-&lt;br /&gt;
| MCPサーバが起動しない || 設定ファイルの記述に誤りがある。&amp;lt;br&amp;gt;または、Node.jsがインストールされていない。 || MCPクライアントを再起動する。&amp;lt;br&amp;gt;設定ファイルのJSON構文を確認する。&amp;lt;br&amp;gt;Node.jsのインストール状態を確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,YouTube,MCP,Model Context Protocol,字幕,トランスクリプト,Claude,AI,mcp-youtube,yt-dlp,mcp-server-youtube-transcript,MCPサーバ,AIアシスタント&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Git&amp;diff=14609</id>
		<title>MCPサーバ - Git</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Git&amp;diff=14609"/>
		<updated>2026-03-25T08:38:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Git MCP Server (mcp-server-git) は、Anthropicが開発したModel Context Protocol (MCP) の公式リファレンス実装の1つであり、&amp;lt;br&amp;gt; AIアシスタントがGitリポジトリと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Python (uv) で実装されており、&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してインストール不要で直接実行できる。&amp;lt;br&amp;gt; Claude Desktop、…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Git MCP Server (mcp-server-git) は、Anthropicが開発したModel Context Protocol (MCP) の公式リファレンス実装の1つであり、&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントがGitリポジトリと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Python (uv) で実装されており、&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してインストール不要で直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor、Zed等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサーバを使用することにより、AIアシスタントが自然言語による指示でGitリポジトリの状態確認、差分表示、コミット履歴の確認、&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルのステージング・コミット、ブランチの作成・切り替え等の操作を自動化できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提供されるツールは以下の4カテゴリ、合計12個である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gitツール一覧&lt;br /&gt;
|-&lt;br /&gt;
| ツール名 || 説明&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ状態確認ツール || ワーキングツリーの状態確認と差分表示&amp;lt;br&amp;gt;(git_status、git_diff_unstaged、git_diff_staged、git_diff)&lt;br /&gt;
|-&lt;br /&gt;
| コミット履歴・検査ツール || コミット履歴の表示と特定コミットの詳細確認&amp;lt;br&amp;gt;(git_log、git_show)&lt;br /&gt;
|-&lt;br /&gt;
| ファイル・コミット管理ツール || ファイルのステージング、コミット、リセット&amp;lt;br&amp;gt;(git_add、git_commit、git_reset)&lt;br /&gt;
|-&lt;br /&gt;
| ブランチ操作ツール || ブランチの一覧表示、作成、切り替え&amp;lt;br&amp;gt;(git_branch、git_create_branch、git_checkout)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Git MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Python 3.10以降&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* uv (Astralが提供するPythonパッケージマネージャ)&lt;br /&gt;
*: &amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを実行するために必要&lt;br /&gt;
* Git&lt;br /&gt;
*: Gitリポジトリへのアクセスに必要&lt;br /&gt;
*: 事前にインストールされていること&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== uvのインストール ====&lt;br /&gt;
MCPサーバの実行に必要なuvをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsの場合 =====&lt;br /&gt;
PowerShellを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 powershell -ExecutionPolicy ByPass -c &amp;quot;irm https://astral.sh/uv/install.ps1 | iex&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WinGetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 winget install --id=astral-sh.uv -e&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== MacOSの場合 =====&lt;br /&gt;
Homebrewを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Linuxの場合 =====&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
wgetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 wget -qO- https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== pip経由 (全てのOSで対応) =====&lt;br /&gt;
pipを使用してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Pythonのインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;uv&amp;lt;/code&amp;gt; コマンドを使用してPython 3.10以降をインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 uv python install 3.10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-gitのインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを実行する場合は、インストール不要で直接実行できる。(推奨)&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行して、Git MCP Serverを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 uvx mcp-server-git --repository /path/to/repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; コマンドを実行してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install mcp-server-git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後は、以下のコマンドで起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 python -m mcp_server_git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== コマンドラインオプション =====&lt;br /&gt;
下表に、Git MCP Serverが受け付けるコマンドラインオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コマンドラインオプション一覧&lt;br /&gt;
! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--repository&amp;lt;/code&amp;gt; || 対象Gitリポジトリのパスを指定する。(省略時はカレントディレクトリを使用する)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;git&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-git&amp;quot;, &amp;quot;--repository&amp;quot;, &amp;quot;/path/to/repo&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してGit MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以に示すコマンドでMCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add git -- uvx mcp-server-git --repository /path/to/repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project git -- uvx mcp-server-git --repository /path/to/repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; の内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;git&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-git&amp;quot;, &amp;quot;--repository&amp;quot;, &amp;quot;/path/to/repo&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;git&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-git&amp;quot;, &amp;quot;--repository&amp;quot;, &amp;quot;/path/to/repo&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツールの一覧 ==&lt;br /&gt;
Git MCP Serverは、Gitリポジトリを操作するための12個のツールを4カテゴリに分けて提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリ状態確認ツール ====&lt;br /&gt;
下表に、ワーキングツリーの状態確認および差分表示に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ リポジトリ状態確認ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_status&amp;lt;/code&amp;gt; || ワーキングツリーの状態を表示する。(変更ファイル、未追跡ファイル等)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_diff_unstaged&amp;lt;/code&amp;gt; || ステージング前の変更内容を差分表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_diff_staged&amp;lt;/code&amp;gt; || ステージング済みの変更内容を差分表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_diff&amp;lt;/code&amp;gt; || ブランチ間またはコミット間の差分を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コミット履歴・検査ツール ====&lt;br /&gt;
下表に、コミット履歴の表示と特定コミットの詳細確認に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コミット履歴・検査ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_log&amp;lt;/code&amp;gt; || コミット履歴を表示する。&amp;lt;br&amp;gt;日付範囲フィルタリング対応。ISO 8601形式または相対日付で指定可能&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_show&amp;lt;/code&amp;gt; || 特定のコミットの詳細内容を表示する。&amp;lt;br&amp;gt;コミットハッシュ、ブランチ名、タグ等で指定可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル・コミット管理ツール ====&lt;br /&gt;
下表に、ファイルのステージング、コミット、リセットに関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル・コミット管理ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_add&amp;lt;/code&amp;gt; || ファイルをステージング領域に追加する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_commit&amp;lt;/code&amp;gt; || ステージング済みの変更をコミットする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_reset&amp;lt;/code&amp;gt; || ステージング済みの変更をリセットする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブランチ操作ツール ====&lt;br /&gt;
下表に、ブランチの一覧表示、作成、切り替えに関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ブランチ操作ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_branch&amp;lt;/code&amp;gt; || ブランチを一覧表示する。&amp;lt;br&amp;gt;ローカル、リモート、全てを指定可能&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_create_branch&amp;lt;/code&amp;gt; || 新しいブランチを作成する。&amp;lt;br&amp;gt;ベースブランチの指定が可能&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_checkout&amp;lt;/code&amp;gt; || 指定したブランチに切り替える。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
Git MCP Serverを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリ状態の確認 ====&lt;br /&gt;
リポジトリの状態や変更内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ワーキングツリーの状態を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 リポジトリの現在のステータスを確認してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ステージング前の変更内容を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 ステージング前の変更内容を見せてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 2つのブランチ間の差分を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 mainブランチとdevelopブランチの差分を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コミット履歴の確認 ====&lt;br /&gt;
コミット履歴を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 過去1ヶ月のコミット履歴を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 過去1ヶ月のコミット履歴を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 特定のコミットの詳細を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 コミットハッシュ abc1234 の詳細内容を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルのステージングとコミット ====&lt;br /&gt;
ファイルをステージングしてコミットする場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 変更ファイルを全てステージングしてコミットする場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 変更ファイルをすべてステージングして、&amp;quot;Fix: typo in README&amp;quot; というメッセージでコミットしてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブランチの操作 ====&lt;br /&gt;
ブランチを作成して切り替える場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいブランチを作成して切り替える場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 developブランチから feature/new-api ブランチを作成して切り替えてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ブランチの一覧を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 ローカルブランチの一覧を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| uvxコマンドが見つからない || PATHの設定を確認する。&amp;lt;br&amp;gt;シェルの設定ファイル (&amp;lt;u&amp;gt;~/.bashrc&amp;lt;/u&amp;gt; 等) を再読み込み または uvを再インストールする。&lt;br /&gt;
|-&lt;br /&gt;
| Pythonバージョンが不足している || &amp;lt;code&amp;gt;uv python install 3.10&amp;lt;/code&amp;gt; コマンドを実行して、Python 3.10以降をインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| Gitがインストールされていない || パッケージ管理システムを使用して、Gitをインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--repository&amp;lt;/code&amp;gt; パスが不正 || 相対パスではなく絶対パスを指定することを推奨する。&amp;lt;br&amp;gt;パスにスペースが含まれる場合は、クォートで囲む。&lt;br /&gt;
|-&lt;br /&gt;
| パーミッションエラーが発生する || &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;chown&amp;lt;/code&amp;gt; コマンドを実行して、リポジトリのアクセス権限を調整する。&lt;br /&gt;
|-&lt;br /&gt;
| JSON設定ファイルの構文エラーが発生する || JSONバリデータを使用して設定ファイルの構文を確認する。&amp;lt;br&amp;gt;修正後、MCPクライアントを再起動して設定を反映する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || MCPクライアントを再起動する。&amp;lt;br&amp;gt;ログファイルを確認してエラーの詳細を調べる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Linuxでの問題 ====&lt;br /&gt;
下表に、Linux環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Linuxのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| uvコマンドが見つからない || &amp;lt;u&amp;gt;~/.profile&amp;lt;/u&amp;gt; ファイル等に環境変数 &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; が正しく設定されているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| パーミッションエラーが発生する || 実行権限を付与する。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;chmod +x ~/.local/bin/uv&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MacOSでの問題 ====&lt;br /&gt;
下表に、MacOS環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ MacOSのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Apple Silicon環境で、uvコマンドが見つからない || Homebrewを使用して、uvを再インストールする。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;brew install uv&amp;lt;/code&amp;gt; コマンドを実行する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| ENOENTエラーが発生する || 設定ファイルに環境変数 (&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; 等) を明示的に指定する。&lt;br /&gt;
|-&lt;br /&gt;
| パスの区切り文字に関するエラーが発生する || Windowsのパス区切り文字 (&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;) を使用する。&amp;lt;br&amp;gt;または、スラッシュ (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;) に統一して指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Git,MCP,Model Context Protocol,mcp-server-git,Claude,AI,バージョン管理,リポジトリ,Anthropic,uvx,uv,Python&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Sequential_Thinking&amp;diff=14608</id>
		<title>MCPサーバ - Sequential Thinking</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Sequential_Thinking&amp;diff=14608"/>
		<updated>2026-03-25T08:30:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Sequential Thinking MCP Server は、Model Context Protocol (MCP) を通じてAIアシスタントに構造化された段階的思考プロセスを提供するサーバである。&amp;lt;br&amp;gt; Anthropicが開発したMCP公式リファレンス実装の一つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 複雑な問題を管理可能なステップに分解し、動的かつ反省的な問題解決を実現する。&amp;lt;br&amp;gt; 理解が深まる…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Sequential Thinking MCP Server は、Model Context Protocol (MCP) を通じてAIアシスタントに構造化された段階的思考プロセスを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
Anthropicが開発したMCP公式リファレンス実装の一つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複雑な問題を管理可能なステップに分解し、動的かつ反省的な問題解決を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
理解が深まるにつれて思考を修正・精緻化したり、推論の代替経路へ分岐させたりすることが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 複雑な問題を段階的なステップに分解&lt;br /&gt;
* 理解が深まるにつれて思考を修正・精緻化&lt;br /&gt;
* 推論の代替経路への分岐&lt;br /&gt;
* 必要な思考ステップ数の動的調整&lt;br /&gt;
* ソリューション仮説の生成と検証&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提供するツールは &amp;lt;u&amp;gt;sequential_thinking&amp;lt;/u&amp;gt; の1つのみであるが、思考番号・修正・分岐等のパラメータにより柔軟な推論プロセスを制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor、ChatGPT等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Sequential Thinking MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
*: MCPサーバを直接実行するために使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用したインストール (推奨) ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でSequential Thinking MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下のコマンドを実行して、MCPサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-sequential-thinking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用したインストール ====&lt;br /&gt;
Node.jsをインストールせずにDockerでMCPサーバを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run --rm -i mcp/sequentialthinking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npmを使用したグローバルインストール ====&lt;br /&gt;
グローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @modelcontextprotocol/server-sequential-thinking&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを実行してMCPサーバを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した設定 ====&lt;br /&gt;
Dockerを使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;run&amp;quot;, &amp;quot;--rm&amp;quot;, &amp;quot;-i&amp;quot;, &amp;quot;mcp/sequentialthinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの設定の注意点 ====&lt;br /&gt;
Windowsでは、&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を使用するMCPサーバの場合、&amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーが必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、Sequential Thinking MCP Serverの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DISABLE_THOUGHT_LOGGING&amp;lt;/code&amp;gt; || 思考プロセスのコンソールログ出力を制御する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;: ログ出力を無効化する&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;: ログ出力を有効化する (デフォルト)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルで環境変数を指定する場合は、以下に示すように設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;DISABLE_THOUGHT_LOGGING&amp;quot;: &amp;quot;true&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Sequential Thinking MCP Serverが提供するツールは &amp;lt;code&amp;gt;sequential_thinking&amp;lt;/code&amp;gt; の1つのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
このツールは、必須パラメータとオプションパラメータを組み合わせて、柔軟な段階的思考プロセスを実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 必須パラメータ ====&lt;br /&gt;
下表に、&amp;lt;code&amp;gt;sequential_thinking&amp;lt;/code&amp;gt; ツールの必須パラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 必須パラメータの一覧&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;thought&amp;lt;/code&amp;gt; || 文字列 || 現在のステップにおける思考内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nextThoughtNeeded&amp;lt;/code&amp;gt; || 真偽値 || さらなる思考ステップが必要かどうかを示す。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;: 継続が必要&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;: 結論に到達&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;thoughtNumber&amp;lt;/code&amp;gt; || 整数 || 現在の思考番号 (1から開始)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;totalThoughts&amp;lt;/code&amp;gt; || 整数 || 問題解決に必要と推定される総思考数&amp;lt;br&amp;gt;後から修正することも可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== オプションパラメータ ====&lt;br /&gt;
下表に、&amp;lt;code&amp;gt;sequential_thinking&amp;lt;/code&amp;gt; ツールのオプションパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらのパラメータにより、修正・分岐・延長といった高度な推論制御が可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ オプションパラメータの一覧&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;isRevision&amp;lt;/code&amp;gt; || 真偽値 || 前の思考ステップの修正かどうかを示す。&amp;lt;br&amp;gt;デフォルト値は &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;revisesThought&amp;lt;/code&amp;gt; || 整数 || 修正対象の思考番号。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;isRevision&amp;lt;/code&amp;gt; が &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt; の場合に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;branchFromThought&amp;lt;/code&amp;gt; || 整数 || 分岐開始点の思考番号&amp;lt;br&amp;gt;代替経路を探索する場合に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;branchId&amp;lt;/code&amp;gt; || 文字列 || 分岐を識別するための一意な識別子&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;needsMoreThoughts&amp;lt;/code&amp;gt; || 真偽値 || 推定思考数を超えて追加の思考が必要かどうかを示す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Sequential Thinking MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設計課題への適用 ====&lt;br /&gt;
複雑な設計課題に段階的思考を適用する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* マイクロサービスアーキテクチャを計画する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 マイクロサービスアーキテクチャを構築するための包括的な計画を、段階的に考えてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* システム設計のレビューを行う場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このシステム設計のセキュリティ、スケーラビリティ、保守性を段階的に評価してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術選定・比較分析 ====&lt;br /&gt;
技術の選定や比較分析を段階的に行う場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* クラウドプロバイダを比較する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 AWSとGCPのメリット・デメリットを段階的に比較分析してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デバッグ・問題解析 ====&lt;br /&gt;
エラーや問題の原因を段階的に分析する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* エラーの原因を特定して解決策を提案する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このエラーの原因を段階的に分析して、解決策を提案してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Node.jsがインストールされていない || Node.js v18以上をインストールする。&amp;lt;br&amp;gt;[https://nodejs.org/ Node.js公式サイト]からインストーラをダウンロードする。&lt;br /&gt;
|-&lt;br /&gt;
| ツールが応答しない || メモリ不足でないか確認する。&amp;lt;br&amp;gt;初回実行時はパッケージのダウンロードが発生するため、ネットワーク接続を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| JSON設定の構文エラーが発生する || JSONバリデータで設定ファイルの構文を確認する。&amp;lt;br&amp;gt;全角括弧（）が含まれていないかを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| ツールがクライアントに表示されない || MCPクライアントを完全に再起動する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| npxコマンドが見つからない || &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを設定ファイルに追加する。&amp;lt;br&amp;gt;または、以下に示すコマンドを実行してグローバルインストールする。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;npm install -g @modelcontextprotocol/server-sequential-thinking&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ENOENTエラーが発生する || 設定ファイルに環境変数 (&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; 等) を明示的に指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Sequential Thinking,MCP,Model Context Protocol,段階的思考,Claude,AI,問題解決,推論,sequential_thinking,Anthropic,Claude Desktop,Claude Code,VS Code,Cursor&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Docker&amp;diff=14607</id>
		<title>MCPサーバ - Docker</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Docker&amp;diff=14607"/>
		<updated>2026-03-25T06:52:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Docker MCP Catalog and Toolkitは、Docker社が提供するMCPサーバの統合管理プラットフォームである。&amp;lt;br&amp;gt; Docker Desktopに組み込まれた &amp;lt;u&amp;gt;Docker MCP Toolkit&amp;lt;/u&amp;gt; と &amp;lt;u&amp;gt;Docker MCP Catalog&amp;lt;/u&amp;gt; から構成される。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Docker MCP Catalogは200以上の検証済みMCPサーバを含む信頼できるレジストリであり、Docker Hub上で配布されている。&amp;lt;br&amp;gt; Docker MCP Toolkitは、MCPサーバのセット…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Docker MCP Catalog and Toolkitは、Docker社が提供するMCPサーバの統合管理プラットフォームである。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker Desktopに組み込まれた &amp;lt;u&amp;gt;Docker MCP Toolkit&amp;lt;/u&amp;gt; と &amp;lt;u&amp;gt;Docker MCP Catalog&amp;lt;/u&amp;gt; から構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Docker MCP Catalogは200以上の検証済みMCPサーバを含む信頼できるレジストリであり、Docker Hub上で配布されている。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker MCP Toolkitは、MCPサーバのセットアップ・管理・実行を行うDocker Desktopに統合されたUIツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要AIクライアントと統合できる。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応しており、Docker Desktop 4.59以降で利用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 200以上の検証済みMCPサーバへのアクセス (Docker MCP Catalog)&lt;br /&gt;
* Docker DesktopのUIからMCPサーバを簡単にセットアップ・管理 (Docker MCP Toolkit)&lt;br /&gt;
* コンテナ隔離によるセキュアなMCPサーバ実行環境&lt;br /&gt;
* Docker社によるデジタル署名とSBOM (ソフトウェア部品表) による信頼性の確保&lt;br /&gt;
* Docker Desktopの暗号化シークレット機能による認証情報の安全な管理&lt;br /&gt;
* Stripe、Elastic、Neo4j、Grafana等200以上のパートナー製MCPサーバに対応&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主要コンポーネント ==&lt;br /&gt;
Docker MCP Catalog and Toolkitは、3つの主要コンポーネントで構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker MCP Catalog ====&lt;br /&gt;
200以上のMCPサーバを含む信頼できるレジストリである。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker Hub上で &amp;lt;code&amp;gt;mcp/&amp;lt;/code&amp;gt; 名前空間以下に配布されており、Docker社によるデジタル署名とSBOMが付与されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なパートナーMCPサーバは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Stripe&lt;br /&gt;
* Elastic&lt;br /&gt;
* Neo4j&lt;br /&gt;
* Grafana&lt;br /&gt;
* New Relic&lt;br /&gt;
* Atlassian&lt;br /&gt;
* Slack&lt;br /&gt;
* Notion&lt;br /&gt;
* Kong&lt;br /&gt;
* GitLab&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker MCP Toolkit ====&lt;br /&gt;
Docker Desktopに統合されたUIツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバのセットアップ・管理・実行を行い、AIクライアントとの接続設定を自動化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker MCP Gateway ====&lt;br /&gt;
MCPサーバのコンテナ管理とAIクライアント間の通信を仲介するCLIプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHub&lt;br /&gt;
*: [https://github.com/docker/mcp-gateway docker/mcp-gateway]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す2つの方法で実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
* CLI経由&lt;br /&gt;
*: &amp;lt;code&amp;gt;docker mcp gateway run&amp;lt;/code&amp;gt;&lt;br /&gt;
* npx経由&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx @docker/mcp-gateway&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Docker MCP Catalog and Toolkitを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Docker Desktop 4.59以降&lt;br /&gt;
*: Docker MCP Toolkitが統合されている最低バージョン&lt;br /&gt;
* 対応OS&lt;br /&gt;
*: Windows&lt;br /&gt;
*: MacOS&lt;br /&gt;
*: Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Docker DesktopでのMCP Toolkitの有効化 ====&lt;br /&gt;
Docker Desktop上でDocker MCP Toolkitを有効化する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Docker Desktopを起動する。&lt;br /&gt;
# [Settings] - [Beta Features]を開く。&lt;br /&gt;
# [Enable Docker MCP Toolkit]にチェックを入力する。&lt;br /&gt;
# Docker Desktopを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効化後、Docker Desktopのサイドバーに[MCP Toolkit]のタブが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
Docker MCP Toolkitでは、Docker DesktopのUIからAIクライアントへの接続設定を自動的に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
Docker DesktopのClientsタブからClaude Desktopを選択して、[Connect]を選択することにより自動設定が行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
手動で設定する場合は、Claude Desktopの設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルに以下の内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;docker&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp&amp;quot;, &amp;quot;gateway&amp;quot;, &amp;quot;run&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Docker DesktopのClientsタブからClaude Codeを選択して、[Connect]を選択することにより設定が行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIで設定する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker mcp client connect claude-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに手動で設定する場合は、以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;docker&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp&amp;quot;, &amp;quot;gateway&amp;quot;, &amp;quot;run&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;settings.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定した後、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;servers&amp;quot;: {&lt;br /&gt;
       &amp;quot;docker&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp&amp;quot;, &amp;quot;gateway&amp;quot;, &amp;quot;run&amp;quot;]&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker mcp client connect vscode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
Docker DesktopのClientsタブからCursorを選択して、[Connect]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定適用後、Cursorを完全に終了して再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供されるMCPサーバのツール ==&lt;br /&gt;
==== Docker Hub MCP Serverのツール ====&lt;br /&gt;
Docker Hub MCP Serverは、コンテナイメージとリポジトリの検索・情報取得に関するツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Docker Hub MCP Serverのツール一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_images&amp;lt;/code&amp;gt; || 自然言語によるコンテナイメージの検索を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_image_details&amp;lt;/code&amp;gt; || 指定したイメージの詳細情報を取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_image_tags&amp;lt;/code&amp;gt; || 指定したイメージのタグ一覧を取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_repositories&amp;lt;/code&amp;gt; || Docker Hub上のリポジトリを検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_repository_details&amp;lt;/code&amp;gt; || 指定したリポジトリの統計情報を取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerコンテナ管理MCPサーバのツール ====&lt;br /&gt;
Dockerコンテナ管理MCPサーバは、コンテナおよびイメージの管理に関するツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dockerコンテナ管理MCPサーバのツール一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_containers&amp;lt;/code&amp;gt; || 実行中および停止中のコンテナ一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_container&amp;lt;/code&amp;gt; || 新しいコンテナを作成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;start_container&amp;lt;/code&amp;gt; || 指定したコンテナを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stop_container&amp;lt;/code&amp;gt; || 指定したコンテナを停止する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;remove_container&amp;lt;/code&amp;gt; || 指定したコンテナを削除する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_container_logs&amp;lt;/code&amp;gt; || 指定したコンテナのログを取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_images&amp;lt;/code&amp;gt; || ローカルのDockerイメージ一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pull_image&amp;lt;/code&amp;gt; || Docker Hubから指定したイメージをプルする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deploy_compose&amp;lt;/code&amp;gt; || Docker Composeスタックをデプロイする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
MCPサーバを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker Hub MCPサーバの使用例 ====&lt;br /&gt;
Docker Hubのイメージやリポジトリを検索・確認する操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Nginxの最新イメージを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Docker Hubから公式のNginxイメージを検索して、最新のタグ一覧を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Pythonイメージの詳細情報を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 python:3.12-slimイメージの詳細情報とサイズを教えてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerコンテナ管理MCPサーバの使用例 ====&lt;br /&gt;
コンテナとイメージの管理に関する操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 実行中のコンテナを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 現在実行中のDockerコンテナ一覧を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* コンテナのログを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 my-appコンテナの最新100行のログを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Docker Composeスタックをデプロイする場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 docker-compose.ymlを使用してアプリケーションスタックをデプロイしてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== セキュリティ機能の概要 ====&lt;br /&gt;
Docker MCP Catalog and Toolkitは、MCPサーバの安全な実行のために複数のセキュリティ機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティ機能の一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| コンテナ隔離 || 各MCPサーバはコンテナとして実行され、リソース制限が適用される。&amp;lt;br&amp;gt;CPU使用率は1コア以下、メモリは2[GB]以上の割り当てが推奨される。&lt;br /&gt;
|-&lt;br /&gt;
| デジタル署名 || Docker Hub上のmcp/カタログイメージはDocker社がデジタル署名を行っている。&lt;br /&gt;
|-&lt;br /&gt;
| SBOM (ソフトウェア部品表) || 全てのカタログイメージにSBOMが含まれており、コンポーネントの透明性を確保している。&lt;br /&gt;
|-&lt;br /&gt;
| シークレット管理 || Docker Desktopの暗号化シークレット機能を使用して、APIキー等の認証情報を安全に保管する。&lt;br /&gt;
|-&lt;br /&gt;
| ツール許可リスト || 特定のツールのみを許可する設定が可能であり、AIアシスタントが使用できるツールを制限できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティに関する推奨事項 ====&lt;br /&gt;
Docker MCP Catalog and Toolkitを安全に使用するための推奨事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキーや認証情報は、設定ファイルに直接記述せず、Docker Desktopのシークレット管理機能を使用して保管する。&lt;br /&gt;
* ツール許可リストを設定して、AIアシスタントが実行できる操作を必要最小限に制限する。&lt;br /&gt;
* Docker Hub上のイメージはDocker社が署名した検証済みのものを使用し、非公式イメージの使用は避ける。&lt;br /&gt;
* コマンドインジェクション対策として、AIアシスタントからの操作実行前にユーザ確認が求められる場合がある。これは正常な動作である。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== よくある問題と対処法 ====&lt;br /&gt;
下表に、Docker MCP Catalog and Toolkitの使用時に発生しやすい問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Docker DesktopがMCP Toolkitを認識しない || Beta FeaturesでDocker MCP Toolkitが有効になっていない。&amp;lt;br&amp;gt;または、Docker Desktopのバージョンが古い。 || [Settings] - [Beta Features]を開いて、&amp;lt;br&amp;gt;[Enable Docker MCP Toolkit]を有効化してDocker Desktopを再起動する。&amp;lt;br&amp;gt;Docker Desktopを4.59以降にアップデートする。&lt;br /&gt;
|-&lt;br /&gt;
| MCPクライアントが接続できない || クライアントの設定が正しく適用されていない。&amp;lt;br&amp;gt;または、MCP Gatewayが起動していない。 || Docker DesktopのClientsタブで接続状態を確認して、&amp;lt;br&amp;gt;[Connect]で再接続する。&amp;lt;br&amp;gt;MCPクライアントを完全に終了して再起動する。&lt;br /&gt;
|-&lt;br /&gt;
| MCPサーバが起動しない || Docker Desktopが実行されていない。&amp;lt;br&amp;gt;または、リソースが不足している。 || &amp;lt;code&amp;gt;docker ps&amp;lt;/code&amp;gt; コマンドでDocker Desktopの動作を確認する。&amp;lt;br&amp;gt;[Settings] - [Resources]でリソース割り当てを確認・調整する。&amp;lt;br&amp;gt;コンテナログを確認してエラーの詳細を調べる。&lt;br /&gt;
|-&lt;br /&gt;
| APIキーが認識されない || 環境変数や認証情報の設定が正しくない。 || Docker Desktopの[Config]タブで環境変数の設定を再確認する。&amp;lt;br&amp;gt;設定変更後にMCPサーバを再起動する。&lt;br /&gt;
|-&lt;br /&gt;
| セキュリティ警告が表示される || コマンドインジェクション対策によるユーザ確認が求められている。 || これは正常な動作である。&amp;lt;br&amp;gt;内容を確認して、問題がなければ許可する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Docker,Docker Desktop,MCP,Model Context Protocol,Docker MCP,MCP Toolkit,MCP Catalog,MCP Gateway,Claude,Claude Code,Claude Desktop,VS Code,Cursor,AIアシスタント,コンテナ,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Memory_Bank&amp;diff=14606</id>
		<title>MCPサーバ - Memory Bank</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Memory_Bank&amp;diff=14606"/>
		<updated>2026-03-25T06:43:43Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Memory Bank MCP (@allpepper/memory-bank-mcp) は、AIアシスタントのコンテキスト永続化を実現するMCPサーバ実装である。&amp;lt;br&amp;gt; Cline Memory Bankの概念を基に、マルチプロジェクト対応のMCP実装として拡張されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; プロジェクト固有の知識をマークダウンファイルで構造化して、複数のセッションにわたってAIアシスタントが継続的にアクセスでき…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Memory Bank MCP (@allpepper/memory-bank-mcp) は、AIアシスタントのコンテキスト永続化を実現するMCPサーバ実装である。&amp;lt;br&amp;gt;&lt;br /&gt;
Cline Memory Bankの概念を基に、マルチプロジェクト対応のMCP実装として拡張されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクト固有の知識をマークダウンファイルで構造化して、複数のセッションにわたってAIアシスタントが継続的にアクセスできる永続メモリシステムを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、AIアシスタントはセッションをまたいでプロジェクトの背景・設計・進捗情報を保持し、継続的な作業を行えるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
開発元はalioshr (GitHub) であり、MITライセンスのもとで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
npmパッケージ名は &amp;lt;code&amp;gt;@allpepper/memory-bank-mcp&amp;lt;/code&amp;gt; で、[https://github.com/alioshr/memory-bank-mcp GitHubリポジトリ] から入手できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、Cline、Roo Code、VS Code、Cursor等の主要なMCPクライアントに対応し、Windows、MacOS、Linuxで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主な機能一覧&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロジェクト対応 || プロジェクト固有のメモリバンクディレクトリで隔離管理&lt;br /&gt;
|-&lt;br /&gt;
| 永続コンテキスト || セッション間でプロジェクトの知識を保持&lt;br /&gt;
|-&lt;br /&gt;
| ファイル操作 || 構造化されたマークダウンファイルの読み取り・書き込み・更新&lt;br /&gt;
|-&lt;br /&gt;
| セキュリティ || パストラバーサル防止による安全なファイルアクセス&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Memory Bank MCPを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js&lt;br /&gt;
*: v16以上が必要。v18以上を推奨。&lt;br /&gt;
* npxコマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用して、Memory Bank MCPを実行するために必要&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
* メモリバンク用ディレクトリ&lt;br /&gt;
*: 環境変数 &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; で指定するディレクトリが必要&lt;br /&gt;
*: 事前に作成しておくこと。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Smithery経由のインストール ====&lt;br /&gt;
Smithery CLIを使用してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @smithery/cli install @allpepper/memory-bank-mcp --client claude&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--client&amp;lt;/code&amp;gt; オプションには、使用するMCPクライアント名 (claude 等) を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== NPM直接インストール ====&lt;br /&gt;
npmを使用してグローバルインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @allpepper/memory-bank-mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Desktop =====&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Code =====&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== VS Code =====&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Cursor =====&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;memory-bank&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@allpepper/memory-bank-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;MEMORY_BANK_ROOT&amp;quot;: &amp;quot;/path/to/memory-banks&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを実行して、Memory Bank MCPを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add memory-bank -- npx -y @allpepper/memory-bank-mcp@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下の内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;memory-bank&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@allpepper/memory-bank-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;MEMORY_BANK_ROOT&amp;quot;: &amp;quot;/path/to/memory-banks&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
ワークスペースフォルダ内にメモリバンクを配置する場合は、変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;memory-bank&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@allpepper/memory-bank-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;MEMORY_BANK_ROOT&amp;quot;: &amp;quot;${workspaceFolder}/memory-banks&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、Memory Bank MCPの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; || 必須 || メモリバンクディレクトリのルートパスを指定する。&amp;lt;br&amp;gt;全プロジェクトのメモリバンクがこのディレクトリ配下に作成される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEMORY_BANK_FOLDER&amp;lt;/code&amp;gt; || オプション || メモリバンクのカスタムフォルダ名を指定する。&amp;lt;br&amp;gt;デフォルト値は &amp;lt;u&amp;gt;memory-bank&amp;lt;/u&amp;gt; である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
==== ツール一覧 ====&lt;br /&gt;
下表に、Memory Bank MCPが提供するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 提供ツールの一覧&lt;br /&gt;
! ツール名 !! 説明 !! パラメータ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;memory_bank_read&amp;lt;/code&amp;gt; || メモリバンクファイルの内容を読み取る。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;filePath&amp;lt;/code&amp;gt;: 読み取るファイルのパス&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;memory_bank_write&amp;lt;/code&amp;gt; || 新規メモリバンクファイルを作成して内容を書き込む。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;filePath&amp;lt;/code&amp;gt;: 作成するファイルのパス&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt;: 書き込む内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;memory_bank_update&amp;lt;/code&amp;gt; || 既存のメモリバンクファイルを部分的に更新する。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;filePath&amp;lt;/code&amp;gt;: 更新するファイルのパス&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;patches&amp;lt;/code&amp;gt;: 適用するパッチ内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_projects&amp;lt;/code&amp;gt; || メモリバンクに登録されているプロジェクトの一覧を表示する。 || なし&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_project_files&amp;lt;/code&amp;gt; || 指定したプロジェクト内のファイル一覧を表示する。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== メモリバンクのファイル構造 ==&lt;br /&gt;
==== 推奨ファイル構成 ====&lt;br /&gt;
メモリバンクは、プロジェクトルート配下の &amp;lt;u&amp;gt;memory-bank&amp;lt;/u&amp;gt; ディレクトリに構造化されたマークダウンファイルとして保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
推奨されるファイル構成を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;プロジェクト&amp;gt;/&lt;br /&gt;
 └── memory-bank/&lt;br /&gt;
    ├── projectContext.md    # プロジェクトの基礎定義 (目的、スコープ、制約)&lt;br /&gt;
    ├── productContext.md    # ビジネス・ユーザー視点の背景情報&lt;br /&gt;
    ├── activeContext.md     # 現在のセッション状態とタスク情報&lt;br /&gt;
    ├── systemPatterns.md    # 技術アーキテクチャと設計パターン&lt;br /&gt;
    ├── techContext.md       # 技術スタック・開発環境の詳細&lt;br /&gt;
    ├── progress.md          # プロジェクトの進捗状況と履歴&lt;br /&gt;
    └── decisionLog.md       # 技術的意思決定の記録 (オプション)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 各ファイルの役割 ====&lt;br /&gt;
下表に、各メモリバンクファイルの役割と記録する内容を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ メモリバンクファイルの一覧&lt;br /&gt;
! ファイル名 !! 役割 !! 記録する内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;projectContext.md&amp;lt;/u&amp;gt; || プロジェクトの基礎定義 || プロジェクトの目的、スコープ、制約条件&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;productContext.md&amp;lt;/u&amp;gt; || 製品・ビジネス背景 || ビジネス要件、ユーザー視点の背景情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;activeContext.md&amp;lt;/u&amp;gt; || 現在の作業状態 || 現在のセッション状態、進行中のタスク情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;systemPatterns.md&amp;lt;/u&amp;gt; || 技術設計情報 || 技術アーキテクチャ、設計パターン、規約&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;techContext.md&amp;lt;/u&amp;gt; || 技術環境情報 || 技術スタック、開発環境の詳細、依存関係&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;progress.md&amp;lt;/u&amp;gt; || 進捗管理 || プロジェクトの進捗状況と作業履歴&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;decisionLog.md&amp;lt;/u&amp;gt; || 意思決定記録 (オプション) || 技術的意思決定とその根拠の記録&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Memory Bank MCPの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== メモリバンクの初期化 ====&lt;br /&gt;
プロジェクト開始時にメモリバンクを初期化する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいプロジェクトでメモリバンクを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Initialize a memory bank for this project.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セッション開始時の確認 ====&lt;br /&gt;
セッション開始時に前回の作業状態を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 前回のセッションからの継続作業を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Let me check the active context to see where we left off.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設計決定の記録 ====&lt;br /&gt;
アーキテクチャや技術的な意思決定をメモリバンクに記録する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 技術的な設計決定を記録する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Record this architectural decision in the memory bank.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 進捗の更新 ====&lt;br /&gt;
作業の進捗状況をメモリバンクに記録する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 本日完了した作業を進捗ファイルに記録する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Update the progress file to reflect what we&#039;ve completed today.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 一般的な問題 ====&lt;br /&gt;
下表に、Memory Bank MCPで発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Node.jsバージョンエラーが発生する || Node.jsのバージョンが要件を満たしていない。 || Node.js v18以上にアップグレードする。&amp;lt;br&amp;gt;アップグレード後、パッケージを再インストールする。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || 設定ファイルの記述が誤っている。 || 設定JSONの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の内容を確認する。&amp;lt;br&amp;gt;ターミナルで手動実行してエラー内容を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| JSON解析エラーが発生する || サーバの出力に不正なJSON形式が含まれている。 || サーバのログを確認する。&amp;lt;br&amp;gt;パッケージを一度アンインストールして再インストールする。&lt;br /&gt;
|-&lt;br /&gt;
| 接続タイムアウトが発生する || サーバの起動に時間が掛かっている。 || MCPクライアントの設定でタイムアウト値を増加させる。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;&amp;quot;timeout&amp;quot;: 300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 権限エラーが発生する || &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; で指定したディレクトリへの書き込み権限がない。 || ディレクトリの書き込み権限を確認する。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;ls -ld /path/to/memory-banks&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;権限がない場合は、&amp;lt;code&amp;gt;chmod 755 /path/to/memory-banks&amp;lt;/code&amp;gt; を実行する。&lt;br /&gt;
|-&lt;br /&gt;
| パストラバーサルエラーが発生する || 指定したファイルパスが &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; 配下にない。 || ファイルパスが &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; 内に収まっているか確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等の相対パスによる上位ディレクトリへのアクセスは拒否される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Memory Bank,MCP,Model Context Protocol,memory-bank-mcp,Claude,Claude Code,Claude Desktop,Cline,Roo Code,VS Code,Cursor,AIアシスタント,永続メモリ,コンテキスト,プロジェクト管理&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14605</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14605"/>
		<updated>2026-03-25T06:37:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt; MITライセンスで公開されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt; 起動時に許可するディレクトリを明示的に指定することで、AIアシスタント…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Context7&amp;diff=14604</id>
		<title>MCPサーバ - Context7</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Context7&amp;diff=14604"/>
		<updated>2026-03-25T06:30:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Context7 MCP Server (@upstash/context7-mcp) は、Upstashが開発したMCPサーバである。&amp;lt;br&amp;gt; LLMのコンテキストウィンドウに最新のバージョン固有のライブラリドキュメントとコード例を直接注入することで、ハルシネーションを排除し、正確なコード生成を実現する。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; LLMは学習データに基づいて回答するため、古いバージョンのAPIを使用したコード…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Context7 MCP Server (@upstash/context7-mcp) は、Upstashが開発したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
LLMのコンテキストウィンドウに最新のバージョン固有のライブラリドキュメントとコード例を直接注入することで、ハルシネーションを排除し、正確なコード生成を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
LLMは学習データに基づいて回答するため、古いバージョンのAPIを使用したコードを生成したり、存在しない関数やメソッドを生成することがある。&amp;lt;br&amp;gt;&lt;br /&gt;
Context7はこの問題を解決するために、プロンプトに &amp;lt;code&amp;gt;use context7&amp;lt;/code&amp;gt; と追記するだけで、対象ライブラリの最新ドキュメントを自動的に取得してコンテキストに統合する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 最新バージョン固有のドキュメントをリアルタイムで取得&lt;br /&gt;
* Next.js、React、Vue.js、TypeScript等、数千のライブラリに対応&lt;br /&gt;
* プロンプトへの &amp;lt;code&amp;gt;use context7&amp;lt;/code&amp;gt; 追記だけで動作する簡単な操作性&lt;br /&gt;
* Claude Desktop、Claude Code、Cursor、VS Code、Windsurf等の主要MCPクライアントに対応&lt;br /&gt;
* Windows、MacOS、Linuxに対応&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Context7 MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してContext7 MCP Serverを実行するために必要&lt;br /&gt;
* インターネット接続&lt;br /&gt;
*: ライブラリドキュメントをContext7サーバから取得するために必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== 簡単セットアップ ====&lt;br /&gt;
&amp;lt;code&amp;gt;ctx7&amp;lt;/code&amp;gt; CLIを使用して、MCPクライアントへの設定を自動的に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全クライアントを対象にセットアップする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
特定のMCPクライアントのみを対象にセットアップする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop向けのセットアップコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup --claude&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursor向けのセットアップコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup --cursor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Code向けのセットアップコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup --code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Smithery経由のインストール ====&lt;br /&gt;
Smitheryを使用してContext7 MCP Serverをインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @smithery/cli install @upstash/context7-mcp --client claude&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してContext7 MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下のコマンドでMCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add context7 -- npx -y @upstash/context7-mcp@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== APIキーを使用した設定 ====&lt;br /&gt;
APIキーを使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp&amp;quot;, &amp;quot;--api-key&amp;quot;, &amp;quot;YOUR_API_KEY&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーは、[https://context7.com/dashboard Context7ダッシュボード]から取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;APIキーは作成時のみ表示されるため、作成後は安全な場所に保管すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数とオプション ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、Context7 MCP Serverの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEFAULT_MINIMUM_TOKENS&amp;lt;/code&amp;gt; || ドキュメント取得時のトークン数の最小値を指定する。&amp;lt;br&amp;gt;デフォルト値は &amp;lt;u&amp;gt;10000&amp;lt;/u&amp;gt; である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTEXT7_API_KEY&amp;lt;/code&amp;gt; || Context7 APIの認証用キーを指定する。&amp;lt;br&amp;gt;[https://context7.com/dashboard Context7ダッシュボード]から取得できる。&amp;lt;br&amp;gt;CLIフラグ &amp;lt;code&amp;gt;--api-key&amp;lt;/code&amp;gt; おオプションでも指定可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定ファイルに記述する場合の例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;DEFAULT_MINIMUM_TOKENS&amp;quot;: &amp;quot;20000&amp;quot;,&lt;br /&gt;
         &amp;quot;CONTEXT7_API_KEY&amp;quot;: &amp;quot;YOUR_API_KEY&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Context7 MCP Serverは、ライブラリドキュメントを取得するための2つのツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツール一覧 ====&lt;br /&gt;
下表に、Context7 MCP Serverが提供するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ツール一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resolve-library-id&amp;lt;/code&amp;gt; || ライブラリの一般名をContext7互換のライブラリIDに変換する。&amp;lt;br&amp;gt;例: &amp;quot;next.js&amp;quot; --&amp;gt; &amp;quot;/vercel/next.js&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;query-docs&amp;lt;/code&amp;gt; || ライブラリIDを使用してドキュメントを取得する。&amp;lt;br&amp;gt;パラメータ: &amp;lt;code&amp;gt;libraryId&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;トークン制限: デフォルト 5000〜10000&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
Context7 MCP Serverを設定後、プロンプトに &amp;lt;code&amp;gt;use context7&amp;lt;/code&amp;gt; と追記するだけで、&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントが自動的にContext7ツールを呼び出し、最新のドキュメントをコンテキストに統合する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 基本的な使用例 ====&lt;br /&gt;
基本的なプロンプトの書き方を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Next.js 14でルーティングとサーバコンポーネントを使用する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Create a Next.js 14 project with routing and server components. use context7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* zodのスキーマ定義でバリデーションを行う場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 zod v4のスキーマ定義で文字列かつ最低5文字以上という制約を持たせたい。use context7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ライブラリIDを指定した使用例 ====&lt;br /&gt;
ライブラリIDを直接指定することにより、曖昧さなく対象ライブラリのドキュメントを取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Supabaseのライブラリを指定する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 use library /supabase/supabase for API and docs.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数ライブラリを指定した使用例 ====&lt;br /&gt;
複数のライブラリを同時に指定することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MongoDBとExpress.jsを組み合わせてREST APIを構築する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Create a REST API using MongoDB and Express.js with JWT authentication. use context7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応ライブラリ ====&lt;br /&gt;
Context7が対応している主なライブラリを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 技術スタック一覧&lt;br /&gt;
|-&lt;br /&gt;
! カテゴリ !! 技術&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || Next.js、React、Vue.js、Astro&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Node.js、Express.js、Django、FastAPI&lt;br /&gt;
|-&lt;br /&gt;
| データベース || MongoDB、Supabase、PostgreSQL&lt;br /&gt;
|-&lt;br /&gt;
| バリデーション || Zod&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
その他、数千のライブラリに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
詳細を知りたい場合は、[https://context7.com context7.com]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 一般的な問題 ====&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ERR_MODULE_NOT_FOUND&amp;lt;/code&amp;gt; エラーが発生する || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; の代わりに &amp;lt;code&amp;gt;bunx&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;deno&amp;lt;/code&amp;gt; を使用する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;@latest&amp;lt;/code&amp;gt; サフィックスを削除して試す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Cannot find module&amp;lt;/code&amp;gt; エラーが発生する || Node.js v18以上がインストールされているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| APIキーエラー (403) が発生する || [https://context7.com/dashboard Context7ダッシュボード]で新しいAPIキーを生成する。&amp;lt;br&amp;gt;APIキーは作成時のみ表示されるため、再生成が必要な場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| ドキュメントの取得に失敗する || &amp;lt;code&amp;gt;resolve-library-id&amp;lt;/code&amp;gt; ツールでライブラリIDを確認する。&amp;lt;br&amp;gt;[https://context7.com context7.com] でライブラリが対応しているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 接続問題が発生する || Node.jsのバージョンを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;npm cache clean --force&amp;lt;/code&amp;gt; コマンドでnpmキャッシュをクリアする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Context7,MCP,Model Context Protocol,context7-mcp,Claude,Claude Code,Claude Desktop,Cursor,VS Code,Windsurf,Upstash,Node.js,npx,ドキュメント,ハルシネーション,Next.js,React,TypeScript,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_IVPN&amp;diff=14603</id>
		<title>VPN - IVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_IVPN&amp;diff=14603"/>
		<updated>2026-03-24T18:41:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == IVPNは、プライバシー保護を最優先に設計された、ジブラルタルに本拠を置くVPNサービスである。&amp;lt;br&amp;gt; 2009年に設立され、IVPN Limited (旧: Privatus Limited、2020年に名称変更) が運営している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 本社は、5 Secretary&amp;#039;s Lane, Gibraltar (ジブラルタル) に位置している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; IVPNの最大の特徴は、徹底したプライバシー保護への取り組みである。&amp;lt;br&amp;gt; ア…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
IVPNは、プライバシー保護を最優先に設計された、ジブラルタルに本拠を置くVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
2009年に設立され、IVPN Limited (旧: Privatus Limited、2020年に名称変更) が運営している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
本社は、5 Secretary&#039;s Lane, Gibraltar (ジブラルタル) に位置している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNの最大の特徴は、徹底したプライバシー保護への取り組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
アカウント登録時にメールアドレスは不要で、15文字のアカウントIDのみで認証する完全匿名の仕組みを採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、全クライアントソフトウェアはオープンソースとしてGitHubで公開されており、Cure53による定期的な第三者監査を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Freedom of the Press Foundationが推奨するVPNサービスの1つであり、ジャーナリストや活動家等の高いプライバシーを必要とするユーザに支持されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNは、以下に示す特徴がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 匿名アカウント || メールアドレス不要&amp;lt;br&amp;gt;15文字のアカウントIDのみで登録・認証が完結する。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログ || VPN接続ログ、ユーザのIPアドレス、通信内容、DNSクエリを一切記録しない。&lt;br /&gt;
|-&lt;br /&gt;
| 外部監査 || Cure53による定期的な第三者セキュリティ監査を受けており、全レポートを公開している。&lt;br /&gt;
|-&lt;br /&gt;
| オープンソース || 全クライアントソフトウェアをGitHubで公開している。&amp;lt;br&amp;gt;バックドアがないことを誰でも検証できる。&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ || 複数のVPNサーバを経由する多段接続に対応しており、追跡をより困難にする。&lt;br /&gt;
|-&lt;br /&gt;
| AntiTracker || DNSレベルで広告、トラッカーをブロックする機能を内蔵している。&amp;lt;br&amp;gt;Hardcoreモードでは、Facebook / Google IPもブロックする。&lt;br /&gt;
|-&lt;br /&gt;
| キルスイッチ || VPN接続が切断された時に全ネットワークトラフィックを自動停止するファイアウォール機能を備えている。&lt;br /&gt;
|-&lt;br /&gt;
| SOCKS5プロキシ || 認証不要のSOCKS5プロキシサービスを提供している。(ポート1080)&lt;br /&gt;
|-&lt;br /&gt;
| V2Ray難読化 || Deep Packet Inspection (DPI) による検閲を回避する難読化機能を備えている。&lt;br /&gt;
|-&lt;br /&gt;
| 令状カナリー || 月次更新の令状カナリーと年次透明性レポートを公開している。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デメリットとしては、以下に示すことが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 料金が競合他社と比較して高め。&lt;br /&gt;
* サーバ数が32カ国40ロケーション以上と少なめ。&lt;br /&gt;
* ストリーミングサービスの視聴用途には最適化されていない。&lt;br /&gt;
* ポートフォワーディングには対応していない。&lt;br /&gt;
* 本社がジブラルタル (英国領、5 Eyes圏内) に位置している。&lt;br /&gt;
* モバイルアプリのUIが限定的。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
料金は以下の通りである。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPNの料金プラン&lt;br /&gt;
! プラン !! 同時接続台数 !! 週額 !! 月額 !! 年額&lt;br /&gt;
|-&lt;br /&gt;
| Standard || 2台 || $2 || $6 || $60&lt;br /&gt;
|-&lt;br /&gt;
| Pro || 7台 || $4 || $10 || $100&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proプランでは、マルチホップおよびポートフォワーディング非対応のかわりに接続台数が増加する。&amp;lt;br&amp;gt;&lt;br /&gt;
30日間の返金保証が提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
支払い方法はクレジットカード、PayPal、Bitcoin、Monero、現金に対応しており、匿名支払いも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
IVPNは完全なノーログポリシーを採用しており、以下に示す情報を一切記録しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN接続ログ (接続日時、切断日時、接続先サーバ)&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* 通信内容&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* 帯域幅・データ転送量&lt;br /&gt;
* セッション情報&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、以下に示す情報は最低限記録される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アカウント登録日&lt;br /&gt;
* 支払い情報 (Monero、Bitcoin、現金による匿名決済を選択することで最小化可能)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、IVPNはメールアドレスを含む個人情報を収集しない設計を採用しており、&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アカウントは15文字のIDのみで管理される。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、サービス側が保持するユーザ情報を構造的に最小化している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
IVPNは、プライバシー保護の実効性を証明するため、Cure53によるセキュリティ監査を定期的に受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPN Cure53監査実績&lt;br /&gt;
! 年 !! 監査対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2019年 || インフラセキュリティ・ノーログ検証 || プライバシー違反なし、ノーログ確認済み&lt;br /&gt;
|-&lt;br /&gt;
| 2022年 || アプリケーションセキュリティ || 重大な脆弱性なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Webインフラセキュリティ || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || modDNS機能 || セキュリティ上の問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2025年 || 年次監査 (予定) || -&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
監査はCure53チームによる7日間以上の詳細調査として実施されており、SSHおよびrootアクセスを許可した踏み込んだ調査が行われている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全監査報告書はIVPN公式Webサイトで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
IVPNは、捜査機関からの法的要求に対するデータ提供実績を年次透明性レポートとして公開している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2024年の対応事例&lt;br /&gt;
*: 12件の法的要求を受領した。&lt;br /&gt;
*: そのうち法的妥当性があると判断したのは1件のみであった。&lt;br /&gt;
*: データ提供件数はゼロ件であった。&lt;br /&gt;
*: ノーログポリシーにより、提供すべきデータが存在しなかった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNのノーログポリシーは実際の法執行機関との対応においても、その有効性が確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
IVPNが採用する技術的なプライバシー保護の仕組みを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 匿名アカウント制&lt;br /&gt;
*: メールアドレス、名前、パスワードは一切不要である。&lt;br /&gt;
*: 15文字のアカウントIDのみで登録・認証が完結する。&lt;br /&gt;
* 匿名支払い対応&lt;br /&gt;
*: Monero、Bitcoin、現金による完全匿名の支払いが可能である。&lt;br /&gt;
*: クレジットカードやPayPalによる支払いも選択できる。&lt;br /&gt;
* オープンソース&lt;br /&gt;
*: 全クライアントソフトウェアはGitHubで公開されている。&lt;br /&gt;
*: バックドアやセキュリティ脆弱性がないことを誰でも検証できる。&lt;br /&gt;
* AntiTracker&lt;br /&gt;
*: DNSレベルで広告およびトラッカードメインをブロックする。&lt;br /&gt;
*: HardcoreモードではFacebook / Meta / GoogleのIPアドレスをASNレベルで追加ブロックする。&lt;br /&gt;
* V2Ray難読化&lt;br /&gt;
*: Deep Packet Inspection (DPI) による検閲を回避する難読化機能を提供する。&lt;br /&gt;
*: 検閲が厳しい地域での使用を想定している。&lt;br /&gt;
* modDNS機能 (ベータ)&lt;br /&gt;
*: DNS-over-HTTPS、DNS-over-TLS、DNS-over-QUICに対応する。&lt;br /&gt;
*: Cure53による監査を受けている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
IVPNの本社はジブラルタル (英国領) に位置しており、5 Eyes諜報同盟の間接的な管轄圏内となることに注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ジブラルタルの法的環境&lt;br /&gt;
*: 英国領であるが、独自の法体系を持つ自治領である。&lt;br /&gt;
*: ジブラルタル独自のプライバシー法制が存在する。&lt;br /&gt;
*: 5 Eyes諸国からの法的要求を受ける可能性がある。&lt;br /&gt;
* リスク軽減要因&lt;br /&gt;
*: ノーログポリシーにより、要求に応じても提供すべきデータが存在しない。&lt;br /&gt;
*: 法的妥当性のない要求に対しては法的に対抗する方針を採っている。&lt;br /&gt;
*: 令状カナリーを月次で更新しており、現在も green (秘密の捜査令状なし) の状態を維持している。&lt;br /&gt;
*: 年次透明性レポートを公開している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログを技術的に実装した上で法的にも対抗する姿勢を採っているため、管轄法域のリスクは構造的に軽減されていると評価されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要なノーログVPNとの比較&lt;br /&gt;
! 項目 !! IVPN !! Mullvad !! ProtonVPN&lt;br /&gt;
|-&lt;br /&gt;
| 設立年 || 2009年 || 2009年 || 2014年&lt;br /&gt;
|-&lt;br /&gt;
| 本社 || ジブラルタル (英国領) || スウェーデン || スイス&lt;br /&gt;
|-&lt;br /&gt;
| Five Eyes || 間接的に圏内 || 圏外 || 圏外&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || Cure53 (定期的) || Cure53・NCC Group等 || SEC Consult等&lt;br /&gt;
|-&lt;br /&gt;
| オープンソース || あり || あり || あり&lt;br /&gt;
|-&lt;br /&gt;
| 匿名登録 || あり (メール不要) || あり (メール不要) || なし (メール必要)&lt;br /&gt;
|-&lt;br /&gt;
| 匿名支払い || Bitcoin・Monero・現金 || Bitcoin・Monero・現金 || Bitcoin・現金&lt;br /&gt;
|-&lt;br /&gt;
| 料金 (月額) || $6〜$10 || €5 || $4〜$10&lt;br /&gt;
|-&lt;br /&gt;
| 同時接続 || 2〜7台 || 5台 || 1〜10台&lt;br /&gt;
|-&lt;br /&gt;
| サーバ数 || 40ロケーション以上 || 900台以上 || 9,800台以上&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ || あり (Proプラン) || あり || あり (Plusプラン)&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワーディング || なし || なし (2023年廃止) || なし&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
* IVPNの本社は5 Eyes圏の管轄に入る可能性があるジブラルタルに位置している。&amp;lt;br&amp;gt;ただし、ノーログポリシーの構造的な実装により、このリスクは大幅に軽減される。&lt;br /&gt;
* サーバ数は競合他社と比較して少ないため、特定地域でのパフォーマンスが限定される場合がある。&lt;br /&gt;
* ストリーミング視聴用途には最適化されていないため、動画配信サービスのVPN迂回には適さない場合がある。&lt;br /&gt;
* 料金は競合他社と比較して高めであるが、プライバシー重視の設計に対する対価と位置づけられている。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IVPNの契約方法 ==&lt;br /&gt;
IVPNの契約手順を以下にに示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ivpn.net/ IVPNの公式Webサイト]へアクセスして、[Get IVPN]を選択する。&lt;br /&gt;
# プランを選択する。&amp;lt;br&amp;gt;Standard (2台接続) またはPro (7台接続) のいずれかを選択する。&lt;br /&gt;
# 請求サイクルを選択する。&amp;lt;br&amp;gt;週額、月額、年額のいずれかを選択する。&lt;br /&gt;
# アカウントIDが発行される。&lt;br /&gt;
#: このIDはIVPNへのログインに使用する唯一の認証情報であるため、大切に保管すること。&lt;br /&gt;
#: メールアドレスの登録は不要である。&lt;br /&gt;
# 支払い方法を選択して決済する。&lt;br /&gt;
#: クレジットカード、PayPal、Bitcoin、Monero、現金のいずれかを選択できる。&lt;br /&gt;
#: &amp;lt;u&amp;gt;匿名性を重視する場合は、Moneroおよび現金を推奨する。&amp;lt;/u&amp;gt;&lt;br /&gt;
# [https://www.ivpn.net/apps/ IVPNの公式Webサイト]にアクセスして、使用するOSに対応したIVPNアプリをダウンロードする。&lt;br /&gt;
#: 対応OSはWindows、MacOS、Linux、iOS、Androidである。&lt;br /&gt;
# IVPNアプリを起動して、発行されたアカウントIDでログインする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
30日間の返金保証が提供されているため、サービス内容に満足できない場合はサポートへ連絡することで返金を受けられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
IVPNは、Torネットワーク経由でVPN接続を行うVPN over Tor接続の構成をSOCKS5プロキシ機能により実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN over Tor接続の通信フロー&lt;br /&gt;
*: ユーザ --&amp;gt; Torエントリーノード --&amp;gt; Tor出口ノード --&amp;gt; IVPN SOCKS5プロキシ --&amp;gt; インターネット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この構成では、IVPNサーバにはTorの出口IPアドレスのみが伝わり、ユーザの実際のIPアドレスはIVPNに対して秘匿される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== IVPN SOCKS5プロキシの仕様 ====&lt;br /&gt;
下表に、IVPNが提供するSOCKS5プロキシの仕様を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPN SOCKS5プロキシ仕様&lt;br /&gt;
! 項目 !! 値&lt;br /&gt;
|-&lt;br /&gt;
| IPアドレス || 10.1.0.1&lt;br /&gt;
|-&lt;br /&gt;
| ポート番号 || 1080&lt;br /&gt;
|-&lt;br /&gt;
| DNS名 || socks5.gw.ivpn.net&lt;br /&gt;
|-&lt;br /&gt;
| 認証 || 不要&lt;br /&gt;
|-&lt;br /&gt;
| 対応プロトコル || TCPのみ&lt;br /&gt;
|-&lt;br /&gt;
| 対応VPNプロトコル || WireGuard、OpenVPN、IKEv2全て&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;SOCKS5プロキシはTCPのみに対応しており、UDPには対応していないことに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPN over Torの設定手順 ====&lt;br /&gt;
===== 事前準備 =====&lt;br /&gt;
VPN over Tor接続の構成では、TorをIVPN SOCKS5プロキシへの前段プロキシとして使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNに接続する前にTorを起動しておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
推奨環境として、同一マシン上でTorとIVPNクライアントを同時実行すると、ルーティングが複雑になる場合があるため、&amp;lt;br&amp;gt;&lt;br /&gt;
別のマシンまたはVM上でTorを実行することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Torの起動 =====&lt;br /&gt;
ターミナルを起動して、Torを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl start tor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torが正常に起動していることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl status tor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== IVPNのSOCKS5プロキシをTorのブリッジとして設定する =====&lt;br /&gt;
IVPNのSOCKS5プロキシを、Torが外部ネットワークに接続する時のブリッジ (前段プロキシ) として設定することで、VPN over Tor接続の構成を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNに接続した状態で、Torの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/tor/torrc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/tor/torrcファイル&lt;br /&gt;
 &lt;br /&gt;
 # IVPNのSOCKS5プロキシをTorの前段ブリッジとして使用する&lt;br /&gt;
 # 10.1.0.1はIVPN VPN接続中にのみアクセス可能なゲートウェイアドレスである&lt;br /&gt;
 Socks5Proxy 10.1.0.1:1080&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定を反映するためにTorを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl restart tor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== アプリケーションからの接続 =====&lt;br /&gt;
Tor起動後、アプリケーションのプロキシ設定にTorのSOCKS5プロキシ (&amp;lt;u&amp;gt;127.0.0.1:9050&amp;lt;/u&amp;gt;) を指定することにより、&amp;lt;br&amp;gt;&lt;br /&gt;
アプリケーションのトラフィックがIVPN SOCKS5プロキシを経由してTorネットワークに転送される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
curlコマンドでの使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== proxychainsを使用した方法 =====&lt;br /&gt;
proxychainsを使用することにより、任意のアプリケーションをIVPN SOCKS5プロキシ経由のTorで接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
proxychainsをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install proxychains-ng&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
proxychainsの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/proxychains.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/proxychains.confファイル&lt;br /&gt;
 &lt;br /&gt;
 # IVPNのSOCKS5プロキシを経由してTorに接続するプロキシチェーン&lt;br /&gt;
 [ProxyList]&lt;br /&gt;
 # IVPN SOCKS5プロキシ (VPN接続中のみアクセス可能)&lt;br /&gt;
 socks5  10.1.0.1  1080&lt;br /&gt;
 # TorのローカルSOCKS5プロキシ&lt;br /&gt;
 socks5  127.0.0.1  9050&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
proxychainsを使用してアプリケーションを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 proxychains firefox&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
* SOCKS5プロキシはTCPのみ対応のため、UDPを使用するアプリケーションでは使用できない。&lt;br /&gt;
* 同一PCでTorクライアントとIVPNクライアントを直接実行している場合、ルーティングが複雑になる場合がある。&amp;lt;br&amp;gt;別のPC または VM上でTorを実行することを推奨する。&lt;br /&gt;
* AntiTracker機能、カスタムDNS設定、Split Tunnelとは同時に使用できない。&lt;br /&gt;
* SOCKS5プロキシはIVPN VPN接続中にのみ使用可能である。&amp;lt;br&amp;gt;VPN未接続の状態ではプロキシアドレス &amp;lt;u&amp;gt;10.1.0.1&amp;lt;/u&amp;gt; にアクセスできない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
Tor over VPN接続は、一般的なTorとVPNの組み合わせ方法であり、特別な設定は不要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Tor over VPNの通信フロー&lt;br /&gt;
*: ユーザ --&amp;gt; IVPN VPNサーバ --&amp;gt; Torエントリノード --&amp;gt; Tor出口ノード --&amp;gt; インターネット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Tor over VPNのメリット ====&lt;br /&gt;
* IVPNサーバがユーザの実IPアドレスを確認するが、通信の宛先はIVPNに対して秘匿される。&lt;br /&gt;
* ISP (インターネットサービスプロバイダ) に対して、Torを使用していることを隠すことができる。&lt;br /&gt;
* IVPNのノーログポリシーにより、接続情報は記録されない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Tor over VPNの設定手順 ====&lt;br /&gt;
# IVPNアプリを起動して、任意のIVPNサーバに接続する。&lt;br /&gt;
# VPN接続状態を確認してから、Tor Browserを起動する。&lt;br /&gt;
# Tor Browserを通常通り使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor Browserが自動的にTorネットワークへの接続を確立するため、追加の設定は不要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPN over Torとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Tor+VPN構成の比較&lt;br /&gt;
! 項目 !! Tor over VPN !! VPN over Tor&lt;br /&gt;
|-&lt;br /&gt;
| 設定の手間 || 不要 || SOCKS5プロキシ設定が必要&lt;br /&gt;
|-&lt;br /&gt;
| ISPへのTor利用の秘匿 || 可能 || 不可能&lt;br /&gt;
|-&lt;br /&gt;
| VPNへの通信内容の秘匿 || 可能 || 不可能&lt;br /&gt;
|-&lt;br /&gt;
| VPNへの実IP開示 || あり || なし (Tor経由)&lt;br /&gt;
|-&lt;br /&gt;
| 速度 || 低速 || より低速&lt;br /&gt;
|-&lt;br /&gt;
| IVPN SOCKS5プロキシ || 不要 || 使用する&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_PrivadoVPN&amp;diff=14602</id>
		<title>VPN - PrivadoVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_PrivadoVPN&amp;diff=14602"/>
		<updated>2026-03-24T18:25:08Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == PrivadoVPNは、スイスのツッグに本社を置くVPNサービスであり、2019年にPrivado Networks AGによって設立された。&amp;lt;br&amp;gt; エンタープライズ向けサービスは2019年4月、コンシューマー向けサービスは2019年12月に開始された。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; スイスを拠点とすることで、EU圏外のデータ保護法 (スイス連邦データ保護法: FADP) の適用を受けており、5/9/14 Eyes (情報共有…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivadoVPNは、スイスのツッグに本社を置くVPNサービスであり、2019年にPrivado Networks AGによって設立された。&amp;lt;br&amp;gt;&lt;br /&gt;
エンタープライズ向けサービスは2019年4月、コンシューマー向けサービスは2019年12月に開始された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
スイスを拠点とすることで、EU圏外のデータ保護法 (スイス連邦データ保護法: FADP) の適用を受けており、5/9/14 Eyes (情報共有協定) の加盟国に属さないことが特徴である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、無料プランを提供している数少ないVPNサービスのひとつであり、月間10[GB]のデータ通信量と10カ国のサーバが無料で利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
無料プランのデータ上限を超過した場合も、約1[Mbps]の低速接続 (Lite Mode) で継続して利用できる点が他社との差別化ポイントとなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、以下に示す主な特徴がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN の主な特徴&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 無料プラン || 月間10[GB]の高速データ通信と10カ国のサーバが無料で利用可能。&amp;lt;br&amp;gt;データ超過後はLite Mode (約1[Mbps]) で継続して接続できる。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || ブラウジング履歴、トラフィック宛先、データ内容、ユーザIPアドレス、DNSクエリを記録しない。&lt;br /&gt;
|-&lt;br /&gt;
| スイス拠点 || スイス連邦データ保護法 (FADP) の保護を受け、5/9/14 Eyes の管轄外である。&lt;br /&gt;
|-&lt;br /&gt;
| キルスイッチ || VPN接続が切断された場合に自動でネットワーク通信を遮断して、IPアドレスの漏洩を防ぐ。&lt;br /&gt;
|-&lt;br /&gt;
| スプリットトンネリング || 特定のアプリやサイトのみVPNを経由させることができる。&lt;br /&gt;
|-&lt;br /&gt;
| 広告ブロッカー || 広告や追跡スクリプトをブロックするフィルタリング機能を内蔵している。&lt;br /&gt;
|-&lt;br /&gt;
| SOCKS5プロキシ || Torrentクライアント向けにSOCKS5プロキシを提供している。&amp;lt;br&amp;gt;60以上のグローバルプロキシサーバを選択できる。&lt;br /&gt;
|-&lt;br /&gt;
| ストリーミング対応 || Netflix、Hulu、Amazon Prime Video等の主要ストリーミングサービスに対応している。&lt;br /&gt;
|-&lt;br /&gt;
| 同時接続台数 || 有料プランでは最大10台のデバイスを同時に接続できる。&lt;br /&gt;
|-&lt;br /&gt;
| 30日間返金保証 || 有料プランに加入後30日以内であれば全額返金を受けることができる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デメリットとしては、以下に示すことが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 第三者による独立したセキュリティ監査が未実施であり、透明性レポートも公開されていない。&lt;br /&gt;
* サーバ数が338〜377台と他の主要VPNと比較して限定的である。&lt;br /&gt;
* ストリーミングサービス利用時にIPアドレスがブロックされる事例が報告されている。&lt;br /&gt;
* Lite Modeの速度は約1[Mbps]であり、動画視聴等の用途には不向きである。&lt;br /&gt;
* 公式Linux向けアプリが提供されていないため、Linux環境での利用には手動設定が必要となる。&lt;br /&gt;
* カスタマーサポートは主に英語対応であり、日本語サポートは提供されていない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN 料金プラン (2026年3月現在)&lt;br /&gt;
! プラン !! 料金 !! 接続台数 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| 無料 || 無料 || 1台 || 月間10[GB]、10カ国のサーバ、Lite Mode対応&lt;br /&gt;
|-&lt;br /&gt;
| 1ヶ月プラン || $10.99/月 || 10台 || 無制限データ通信、全サーバ利用可能&lt;br /&gt;
|-&lt;br /&gt;
| 1年プラン || $3.99/月 (年払い) || 10台 || 無制限データ通信、全サーバ利用可能&lt;br /&gt;
|-&lt;br /&gt;
| 2年プラン || $1.99/月 (2年払い) || 10台 || 無制限データ通信、全サーバ利用可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN 無料プランで利用できるサーバ国 (10カ国)&lt;br /&gt;
! 地域 !! 国&lt;br /&gt;
|-&lt;br /&gt;
| ヨーロッパ || 英国、オランダ、ドイツ、フランス&lt;br /&gt;
|-&lt;br /&gt;
| 北米 || 米国、カナダ、メキシコ&lt;br /&gt;
|-&lt;br /&gt;
| 南米 || ブラジル、アルゼンチン&lt;br /&gt;
|-&lt;br /&gt;
| アジア || インド&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivadoVPNは、厳格なノーログポリシーを公式に掲げており、ユーザのプライバシーを保護するために以下の情報を記録しないと明言している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ログポリシーの詳細&lt;br /&gt;
|-&lt;br /&gt;
! 記録しない情報 !! 記録する情報&lt;br /&gt;
|-&lt;br /&gt;
| ブラウジング履歴 (アクセスしたWebの記録) || メールアドレス (アカウント作成・管理のため)&lt;br /&gt;
|-&lt;br /&gt;
| トラフィックの宛先(接続先のIPアドレスやドメイン) || 帯域幅の使用量 (無料プランのデータ制限管理のため)&lt;br /&gt;
|-&lt;br /&gt;
| データ内容(通信の中身) ||&lt;br /&gt;
|-&lt;br /&gt;
| ユーザの実IPアドレス ||&lt;br /&gt;
|-&lt;br /&gt;
| DNSクエリ(DNS検索の記録) ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、帯域幅の使用量の記録は無料プランのデータ制限 (月間10[GB]) を管理するための技術的な必要性によるものであり、VPNの利用内容とは紐付けられていないとしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivadoVPNは、2026年3月現在において第三者機関による独立したセキュリティ監査を実施していない。&amp;lt;br&amp;gt;&lt;br /&gt;
公開された監査レポートも存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要なVPNプロバイダの多くが定期的な第三者監査を実施してノーログポリシーの有効性を客観的に証明しているのに対して、PrivadoVPNはノーログポリシーを自己申告のみで主張している状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、透明性レポート (政府機関や法執行機関からの情報提供要請件数を公開する文書) も確認されておらず、外部からの検証手段が限られていることは留意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
PrivadoVPNは、ノーログポリシーを支える技術的な仕組みとして以下を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AES-256ビット暗号化&lt;br /&gt;
*: 業界標準の最高レベルの暗号化方式を採用している。&lt;br /&gt;
* 対応プロトコル&lt;br /&gt;
*: WireGuard、OpenVPN、IKEv2/IPSecの3つのプロトコルに対応している。&lt;br /&gt;
*: WireGuardは高速かつ軽量なプロトコルであり、モバイル端末での利用に適している。&lt;br /&gt;
* キルスイッチ&lt;br /&gt;
*: VPN接続が予期せず切断された場合に、自動的にインターネット接続を遮断してIPアドレスの漏洩を防ぐ機能である。&lt;br /&gt;
*: 無料プランでも利用できる。&lt;br /&gt;
* DNS漏洩防止&lt;br /&gt;
*: VPN接続中はPrivadoVPN独自のDNSサーバを使用し、ISP (インターネットサービスプロバイダ) へのDNSクエリの漏洩を防ぐ。&lt;br /&gt;
* スプリットトンネリング&lt;br /&gt;
*: 特定のアプリやウェブサイトをVPNトンネルの外で通信させることができる機能である。&lt;br /&gt;
*: バンキングアプリ等、VPN経由でのアクセスが問題になる場合に有用である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
PrivadoVPNはスイスのツッグに拠点を置いており、スイスの法律の適用を受ける。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
スイスの法的環境として、以下に示す事柄が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* FADP (スイス連邦データ保護法) の保護&lt;br /&gt;
*: スイスは独自のデータ保護法であるFADP (Federal Act on Data Protection) により、個人データの収集・処理に厳格な制限を設けている。&lt;br /&gt;
*: EUのGDPRと同等以上のデータ保護水準を持つとされている。&lt;br /&gt;
* 5/9/14 Eyes 非加盟&lt;br /&gt;
*: スイスは、米国、英国、カナダ、オーストラリア、ニュージーランドを中心とする情報共有協定 (5/9/14 Eyes) の加盟国ではない。&lt;br /&gt;
*: 加盟国の情報機関からの情報共有要請に自動的に応じる義務を持たない。&lt;br /&gt;
* 第三者からの情報請求への対応&lt;br /&gt;
*: スイス法の規定により、PrivadoVPNはユーザの情報を第三者に提供する場合、当該ユーザへの通知義務を負うとされている。&lt;br /&gt;
*: ただし、裁判所命令等の法的根拠に基づく情報提供要請に対しては応じる可能性がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログVPN 比較&lt;br /&gt;
! 項目 !! PrivadoVPN !! Mullvad !! ProtonVPN&lt;br /&gt;
|-&lt;br /&gt;
| 拠点 || スイス || スウェーデン || スイス&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || 未実施 || 定期実施 (Cure53等) || 実施済み&lt;br /&gt;
|-&lt;br /&gt;
| 透明性レポート || 非公開 || 重大事件のみ公開 || 定期公開&lt;br /&gt;
|-&lt;br /&gt;
| 無料プラン || あり (10[GB]/月) || なし || あり (無制限・低速)&lt;br /&gt;
|-&lt;br /&gt;
| 匿名支払い || 限定的 || 現金、Monero等対応 || 暗号通貨対応&lt;br /&gt;
|-&lt;br /&gt;
| Linux公式アプリ || なし || あり || あり&lt;br /&gt;
|-&lt;br /&gt;
| 5/9/14 Eyes || 非加盟 || 加盟 (スウェーデン) || 非加盟&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
* 第三者監査が未実施であるため、ノーログポリシーの有効性を客観的に検証する手段が現時点では存在しない。&lt;br /&gt;
* スイスはプライバシー保護の観点で有利な法域であるが、スイス法に基づく適法な情報提供要請には応じる可能性がある。&lt;br /&gt;
* 透明性レポートが公開されていないため、政府機関等からの情報提供要請件数を確認する方法がない。&lt;br /&gt;
* 高度なプライバシー要件を持つユーザは、第三者監査を実施済みのVPNサービスと比較検討することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivadoVPNの契約方法 ==&lt;br /&gt;
PrivadoVPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privadovpn.com/ PrivadoVPNの公式Webサイト]へアクセスして、ページ上部の[Get PrivadoVPN]または[Start for Free]を選択する。&lt;br /&gt;
# プランを選択する。&amp;lt;br&amp;gt;無料プランを利用する場合は[Free]を選択、有料プランを利用する場合は希望のプランを選択する。&lt;br /&gt;
# メールアドレスを入力してアカウントを作成する。&lt;br /&gt;
#: &amp;lt;u&amp;gt;登録したメールアドレスは、アカウント管理および重要な通知に使用されるため、正確に入力すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# 有料プランを選択した場合は、クレジットカード、PayPal等の支払い方法を選択して決済を行う。&lt;br /&gt;
# [https://privadovpn.com/apps/ PrivadoVPNのダウンロードページ]にアクセスして、使用するOSに対応したアプリをダウンロードする。&lt;br /&gt;
#: Windows、MacOS、iOS、Androidに対応している。&lt;br /&gt;
# アプリをインストールして、登録したメールアドレスとパスワードでログインする。&lt;br /&gt;
# 接続したいサーバを選択して、[Connect]ボタンを押すとVPN接続が開始される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNの有料プランは、最安で$1.99/月 (2年プラン) から利用できる。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
有料プランには30日間の返金保証が付いており、期間内であれば全額返金を受けることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
無料プランはクレジットカード情報の登録なしで利用でき、月間10[GB]のデータ通信量が提供される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データ上限を超過した場合は、約1[Mbps]の低速接続 (Lite Mode) に自動的に切り替わり、接続自体は維持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPN over Torとは、Torネットワークを経由した上でVPNに接続する構成のことである。&amp;lt;br&amp;gt;&lt;br /&gt;
この構成では、VPNプロバイダに対してもユーザの実IPアドレスを隠すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、VPN over Torを公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5プロキシを提供しており、主にTorrentクライアント向けの用途で提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SOCKS5プロキシの詳細 ====&lt;br /&gt;
下表に、PrivadoVPNが提供するSOCKS5プロキシの仕様を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN SOCKS5プロキシ仕様&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| プロキシサーバ || proxy.privado.io&lt;br /&gt;
|-&lt;br /&gt;
| ポート番号 || 1080&lt;br /&gt;
|-&lt;br /&gt;
| 認証 || 必要 (ユーザ名、パスワード)&lt;br /&gt;
|-&lt;br /&gt;
| プロキシ数 || 60以上のグローバルプロキシ&lt;br /&gt;
|-&lt;br /&gt;
| 主な用途 || Torrentクライアントでの匿名ダウンロード&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロキシに対応したTorrentクライアントの例として、以下に示すものが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* qBittorrent&lt;br /&gt;
* uTorrent&lt;br /&gt;
* BitComet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロキシはVPNトンネルとは異なり、全ての通信を暗号化するものではなく、対応したアプリケーションの通信のみをプロキシ経由でルーティングする仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、SOCKS5プロキシ単体はVPN over Torとしての機能を完全には提供しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN over Tor構成を必要とする場合は、Torネットワークへの接続設定を手動で行った上でVPN接続を確立する必要があり、技術的な難易度が高い。&amp;lt;br&amp;gt;&lt;br /&gt;
高度なプライバシー要件を持つ用途には、VPN over Torを公式にサポートするサービスの利用を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
Tor over VPNとは、まずVPNに接続した上でTorネットワークを使用する構成のことである。&amp;lt;br&amp;gt;&lt;br /&gt;
この構成では、ISP (インターネットサービスプロバイダ) に対してTorの利用を隠すことができ、またTorの入口ノードに対してもユーザの実IPアドレスを隠すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、Tor over VPNを公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、理論的には以下の手順で実現することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivadoVPNアプリを起動して任意のサーバに接続する。&lt;br /&gt;
# VPN接続が確立された状態で、Torブラウザを起動して利用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この方法では、PrivadoVPNを経由した上でTorネットワークに接続するため、ISPからはTorの利用が隠される。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、VPNプロバイダであるPrivadoVPNは、ユーザがTorを使用していることは認識できる状態となる点に注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torブラウザは [https://www.torproject.org/ Tor Projectの公式Webサイト] から無料でダウンロードできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor over VPN構成を利用する場合の留意点を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Torネットワーク経由の通信は通常よりも大幅に速度が低下する。&lt;br /&gt;
* VPNとTorを組み合わせることにより、複数のレイヤーで保護されるが、完全な匿名性を保証するものではない。&lt;br /&gt;
* PrivadoVPNの公式サポート対象外の構成であるため、技術的な問題が発生した場合のサポートを受けることができない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_OVPN&amp;diff=14601</id>
		<title>VPN - OVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_OVPN&amp;diff=14601"/>
		<updated>2026-03-24T18:17:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == OVPNは、スウェーデンのストックホルムに拠点を置くプライバシー重視のVPNサービスである。&amp;lt;br&amp;gt; 2014年にOVPN Integritet ABとして設立され、RAM-onlyサーバやマルチホップ接続等、技術的なプライバシー保護に注力している。&amp;lt;br&amp;gt; 2020年のスウェーデン法廷において、ノーログポリシーが法的に実証された実績を持つ。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 2023年5月にPangoに買収さ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OVPNは、スウェーデンのストックホルムに拠点を置くプライバシー重視のVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
2014年にOVPN Integritet ABとして設立され、RAM-onlyサーバやマルチホップ接続等、技術的なプライバシー保護に注力している。&amp;lt;br&amp;gt;&lt;br /&gt;
2020年のスウェーデン法廷において、ノーログポリシーが法的に実証された実績を持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2023年5月にPangoに買収され、2024年にPoint Wild (旧TotalAV) と合併している。&amp;lt;br&amp;gt;&lt;br /&gt;
この買収後もノーログポリシーの継続が明記されているが、Point Wildグループの他製品に関するプライバシー上の懸念が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、OVPNの主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ OVPN VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバ || ハードドライブを持たず、iPXEによる暗号化起動と署名検証を採用している。&amp;lt;br&amp;gt;物理コンソールおよびUSBポートを廃止しており、電源切断でデータが消滅する。&lt;br /&gt;
|-&lt;br /&gt;
| 法廷でのノーログ実証 || 2020年のスウェーデン裁判所の判決により、ノーログポリシーが法的に実証されている。&amp;lt;br&amp;gt;これは、VPNプロバイダとしては世界初のケースとされている。&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ (Dynamic Multihop) || 2つのサーバを経由する接続であり、入口サーバと出口サーバを個別に選択できる。&amp;lt;br&amp;gt;単一サーバへの依存を排除してプライバシーを強化する。&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワーディング || 最大7ポートのポートフォワーディングをサポートしている。&amp;lt;br&amp;gt;使用可能なポート範囲は49152〜65535である。&lt;br /&gt;
|-&lt;br /&gt;
| Public IPv4 || 月額$4で専用の静的IPv4アドレスを取得できるオプション機能である。&lt;br /&gt;
|-&lt;br /&gt;
| キルスイッチ || VPN接続が切断された時に自動でネットワークトラフィックを遮断する機能を搭載している。&lt;br /&gt;
|-&lt;br /&gt;
| DNSリーク保護 || OVPNの独自DNSサーバの使用を強制して、1秒ごとに監視する仕組みを採用している。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号通貨・現金対応 || Bitcoin、Ethereum、Moneroの暗号通貨に加え、現金の郵送による完全匿名での支払いに対応している。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ OVPNのメリットとデメリット&lt;br /&gt;
|-&lt;br /&gt;
! メリット !! デメリット&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバを採用しており、法廷でノーログポリシーが実証されている。 || サーバ台数が世界32都市96台のみであり、競合他社の数千台と比較して大幅に少ない。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号通貨および現金郵送に対応しており、完全匿名での契約が可能である。 || 月額$4.22〜$12の料金は、競合他社と比較して高めである。&lt;br /&gt;
|-&lt;br /&gt;
| 平均ダウンロード速度141[Mbps]、アップロード速度120[Mbps]の通信速度を持つ。 || 同時接続デバイス数が最大7台(36ヶ月契約時)と制限がある。&lt;br /&gt;
|-&lt;br /&gt;
| WireGuardおよびOpenVPNの両プロトコルに対応している。 || BBC iPlayer等、一部のストリーミングサービスに対応していない。&lt;br /&gt;
|-&lt;br /&gt;
| || 第三者機関による独立した監査の公開レポートが確認されていない。&lt;br /&gt;
|-&lt;br /&gt;
| || 透明性レポートが未公開である。&lt;br /&gt;
|-&lt;br /&gt;
| || Pangoグループ(Point Wild)との関係において、プライバシー上の懸念がある。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、OVPNの料金を示す。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ OVPN 料金プラン&lt;br /&gt;
! プラン !! 月額料金 !! 同時接続台数&lt;br /&gt;
|-&lt;br /&gt;
| 1ヶ月 || $12/月 || 4台&lt;br /&gt;
|-&lt;br /&gt;
| 12ヶ月 || $4.99/月 || 5台&lt;br /&gt;
|-&lt;br /&gt;
| 36ヶ月 || $4.22/月 || 7台&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
10日間の返金保証が設けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
対応OSは、Windows、MacOS、Linux (Ubuntu、Debian、Fedora、openSUSE)、Android、iOSである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
OVPNは、以下に示すデータを記録しないとしている。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* デバイスID&lt;br /&gt;
* 接続日時および時間&lt;br /&gt;
* データ転送量&lt;br /&gt;
* 訪問したURL&lt;br /&gt;
* ダウンロード情報&lt;br /&gt;
* 使用したプロトコル&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、以下に示すデータは保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザ名およびパスワード (メールアドレスはオプション)&lt;br /&gt;
* デバイス接続数 (IPアドレスやタイムスタンプを含まない)&lt;br /&gt;
* 接続成功フラグ (ブール値のみ)&lt;br /&gt;
* 支払い情報&lt;br /&gt;
* サポート連絡先&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、OVPNは一切のデータを保持しないわけではなく、&amp;lt;u&amp;gt;通信に関するログを保持しない&amp;lt;/u&amp;gt; という意味でのノーログVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
OVPNは、2026年3月現在において、公開された第三者機関による独立した監査レポートが確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Mullvad VPNやNordVPN等の主要競合他社が定期的に第三者監査を実施し、その結果を公開していることと対照的である。&amp;lt;br&amp;gt;&lt;br /&gt;
透明性レポートについても未公開であり、このことはOVPNの信頼性評価における留意点となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法廷での実績 (2020年スウェーデン) ====&lt;br /&gt;
OVPNのノーログポリシーは、2020年のスウェーデンにおける裁判において法的に実証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 経緯&lt;br /&gt;
*: 映画制作企業 (AB Svensk FilmindustriおよびNordisk Film A/S) が、Rights Alliance経由でユーザ情報の開示をOVPNに要求した。&lt;br /&gt;
* 裁判所の判断&lt;br /&gt;
*: スウェーデン特許・市場裁判所が判決を下し、OVPNはログを保有しておらず、情報開示が不可能であると認定した。&lt;br /&gt;
*: 裁判所はOVPNをインターネットプロバイダーではないと判断して、データ保持指令の適用対象外であるとした。&lt;br /&gt;
* 結果&lt;br /&gt;
*: 映画制作企業がOVPNの弁護士費用として約108,000 SEK (約$12,300) を負担することになった。&lt;br /&gt;
*: これは、VPNプロバイダのノーログポリシーが法廷で実証された事例として広く知られている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
OVPNは以下に示す技術的な仕組みによりプライバシーを保護している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* RAM-onlyサーバ&lt;br /&gt;
*: 全サーバがハードドライブを持たない揮発性メモリ (RAM) のみで動作している。&lt;br /&gt;
*: iPXEによる暗号化起動と署名検証を採用しており、改竄を検知できる仕組みを持つ。&lt;br /&gt;
*: 物理コンソールおよびUSBポートを廃止しており、物理的なアクセスによるデータ抽出が困難である。&lt;br /&gt;
*: 電源を切断した時点でサーバ上の全データが消滅する。&lt;br /&gt;
* マルチホップ (Dynamic Multihop)&lt;br /&gt;
*: 2つのVPNサーバを経由して接続する機能であり、入口サーバと出口サーバを個別に選択できる。&lt;br /&gt;
*: 単一のサーバが侵害された場合でも、ユーザの実際のIPアドレスと通信内容を同時に把握することが困難になる。&lt;br /&gt;
* DNSリーク保護&lt;br /&gt;
*: OVPNの独自DNSサーバの使用を強制し、1秒ごとに監視する仕組みを採用している。&lt;br /&gt;
*: DNSクエリが外部に漏洩することを防止する。&lt;br /&gt;
* 対応プロトコル&lt;br /&gt;
*: OpenVPN (AES-256-GCM暗号化、ChaCha20-Poly1305、TLSv1.3) およびWireGuardに対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
OVPNはスウェーデンに拠点を置いており、スウェーデンは14 Eyes情報共有同盟の加盟国である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* データ保持指令に関する経緯&lt;br /&gt;
*: スウェーデンは2012年にEUのデータ保持指令を国内法化した。&lt;br /&gt;
*: 2014年、EU司法裁判所がこのデータ保持指令を無効と判断した。&lt;br /&gt;
*: 2020年の裁判では、裁判所がOVPNをISPではないと判断して、データ保持義務が適用されないと認定した。&lt;br /&gt;
* 留意事項&lt;br /&gt;
*: スウェーデンは14 Eyes加盟国であるため、国際的な情報共有の枠組みの影響を受ける可能性がある。&lt;br /&gt;
*: 令状カナリーおよび透明性レポートが未公開であり、法執行機関からの要請状況を外部から確認できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
下表に、OVPNと主要なノーログVPNとの比較を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログVPN 比較&lt;br /&gt;
! 項目 !! OVPN !! Mullvad !! NordVPN&lt;br /&gt;
|-&lt;br /&gt;
| 本社所在地 || スウェーデン || スウェーデン || パナマ&lt;br /&gt;
|-&lt;br /&gt;
| 14 Eyes加盟国 || 該当する || 該当する || 該当しない&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || 公開レポートなし || 定期実施・公開あり || 定期実施・公開あり&lt;br /&gt;
|-&lt;br /&gt;
| 法廷での実績 || 2020年スウェーデン (ノーログ実証済み) || 2023年スウェーデン (家宅捜索でデータ提供不可) || 2024年パナマ (支払い情報のみ提供)&lt;br /&gt;
|-&lt;br /&gt;
| RAMオンリーサーバ || 対応済み || 2024年9月完全移行 || 対応済み&lt;br /&gt;
|-&lt;br /&gt;
| 透明性レポート || 未公開 || 重大事件のみ公開 || 公開あり&lt;br /&gt;
|-&lt;br /&gt;
| サーバ数 || 96台 (32都市) || 数百台 (約45カ国) || 数千台 (約111カ国)&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ || 対応 (Dynamic Multihop) || 対応 || 対応 (Double VPN)&lt;br /&gt;
|-&lt;br /&gt;
| 匿名支払い || 暗号通貨・現金 || 暗号通貨・現金 || 暗号通貨&lt;br /&gt;
|-&lt;br /&gt;
| 料金 (最安) || $4.22/月 (36ヶ月) || 約€4.9/月 || 約$3.09/月&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
OVPNを選択する時には、以下の点に留意することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年にPangoに買収され、2024年にPoint Wild (旧TotalAV) と合併している。&amp;lt;br&amp;gt;Point Wildグループの他製品 (Hotspot Shield、Betternet等) にはプライバシー上の懸念が指摘されており、&amp;lt;br&amp;gt;OVPNへの影響について継続的な注視が必要である。&lt;br /&gt;
* 第三者機関による独立した監査レポートが公開されておらず、ノーログポリシーの技術的な実装について外部から検証することが困難である。&lt;br /&gt;
* スウェーデンは14 Eyes加盟国であり、国際的な情報共有の枠組みの影響を受ける可能性がある。&lt;br /&gt;
* 一方で、2020年の法廷での実績はノーログポリシーの信頼性を裏付ける重要な根拠となっている。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OVPNの契約方法 ==&lt;br /&gt;
OVPNの契約手順を以下にに示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ovpn.com/ OVPNの公式Webサイト]へアクセスして、料金プランを選択する。&lt;br /&gt;
# アカウントを作成する。&lt;br /&gt;
#: メールアドレスはオプションであり、ユーザ名とパスワードのみで登録できる。&lt;br /&gt;
#: 完全な匿名性を希望する場合は、使い捨てメールアドレスの使用を検討すること。&lt;br /&gt;
# 支払い方法を選択して、料金を支払う。&lt;br /&gt;
#: 支払い方法は、クレジットカード、PayPal、暗号通貨 (Bitcoin、Ethereum、Monero)、または現金郵送から選択できる。&lt;br /&gt;
#: 完全な匿名性を希望する場合は、Moneroまたは現金郵送が推奨される。&lt;br /&gt;
# [https://www.ovpn.com/en/download OVPNの公式Webサイト]にアクセスして、使用するOSに対応したOVPNクライアントをダウンロードする。&lt;br /&gt;
#: 対応OSは、Windows、MacOS、Linux (Ubuntu、Debian、Fedora、openSUSE)、Android、iOSである。&lt;br /&gt;
# OVPNクライアントをインストールおよび起動して、登録したユーザ名とパスワードでログインする。&lt;br /&gt;
# 接続するサーバを選択して、VPN接続を開始する。&lt;br /&gt;
#: マルチホップ接続を使用する場合は、入口サーバと出口サーバを個別に選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
10日間の返金保証が設けられており、不満がある場合はサポートに連絡することで返金を受けられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
OVPNは、VPN over Tor (Tor経由でVPNに接続する方式) を公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロキシサービスの提供もないため、他のVPNプロバイダが提供する公式なVPN over Tor接続機能は利用できない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;技術的には、OpenVPNの設定ファイルに以下に示すオプションを設定することにより、手動でTor経由のVPN接続を試みることは可能である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、この方法はOVPNの公式サポート対象外であり、動作の保証はない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # OpenVPN設定ファイルに追記する (非公式)&lt;br /&gt;
 socks-proxy 127.0.0.1 9050&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;この場合、Torクライアント (Torブラウザ または Torデーモン) を事前に起動しておく必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;なお、OpenVPNをTor経由で使用する場合は、TorはTCPのみをサポートするため、OpenVPNのプロトコルをTCPに設定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法である。&amp;lt;br&amp;gt;&lt;br /&gt;
この方式では、OVPNが出口ノードとなり、その先にTorネットワークが続く構成になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OVPNは公式ドキュメントにTor over VPNの手順を明記していないが、VPN接続後にTorブラウザを起動する標準的な方法で実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OVPNクライアントを起動して、任意のVPNサーバに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&lt;br /&gt;
#: Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この方式により、インターネットサービスプロバイダ (ISP) からはVPN接続のみが見え、Torを使用していることが隠蔽される。&amp;lt;br&amp;gt;&lt;br /&gt;
また、TorネットワークはVPN接続の先にあるため、OVPNのサーバからはTor経由のトラフィックとして見える。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Nord_VPN&amp;diff=14600</id>
		<title>VPN - Nord VPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Nord_VPN&amp;diff=14600"/>
		<updated>2026-03-24T17:19:03Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
NordVPNは、通信に関するログを取らないVPNサービスであり、ユーザが使用したローカルまたは割り当てられたIPアドレス、接続履歴、トラフィックログ、DNSクエリを保持しない。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、アカウント管理目的でメールアドレスおよび支払い情報は保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ロケーション&lt;br /&gt;
*: NordVPNは、プライバシーの安全な場所であるパナマに本社を構えており、パナマには、EU、イギリス、オーストラリアのようなデータを保持する法律がない。&lt;br /&gt;
*: また、パナマは5つの目、9つの目、または14の目の国のメンバーではない。&lt;br /&gt;
* セキュリティ&lt;br /&gt;
*: NordVPNは、256ビットAESのデータ暗号化を提供している。&lt;br /&gt;
*: これは、優れたファイアウォールと保護されたサーバと一緒に、NordVPNの安全性を最高級に保護している。&lt;br /&gt;
* 通信速度&lt;br /&gt;
*: 以前、通信速度がNordVPNの弱点であったが、現在は最速のVPNサービスの1つになってきている。&lt;br /&gt;
*: また、P2PやTorrentの速度も非常に優れており、Netflixのようなコンテンツをアンロックすることも可能である。&lt;br /&gt;
* 契約&lt;br /&gt;
*: Eメール、支払い方法、パスワードのみで、アカウントを作成することができる。&lt;br /&gt;
*: つまり、ProtonMailのような匿名のメールサービスとBitcoinのような安全な支払い方法を用いることにより、NordVPNは完全な匿名性を求める人に提供できる可能性がある。&lt;br /&gt;
*: クレジットカードや銀行振込等、別の支払い方法を利用する場合は、個人の銀行情報を提供する必要がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
==== 記録しないデータ ====&lt;br /&gt;
NordVPNが記録しないとしているデータは、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザの実際のIPアドレス&lt;br /&gt;
* インターネットアクティビティログ (訪問したWebサイト、ダウンロード内容)&lt;br /&gt;
* トラフィックデータ (通信内容)&lt;br /&gt;
* DNS照会記録&lt;br /&gt;
* VPN接続ログ (接続先サーバ、接続時刻等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このノーログポリシーは、Standard VPN、Double VPN、Onion Over VPN、難読化サーバ、P2Pサーバの全てのサーバタイプに適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録するデータ ====&lt;br /&gt;
一方、アカウント管理目的で以下のデータは保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
* メールアドレス&lt;br /&gt;
* 支払い情報&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、NordVPNは一切のデータを保持しないわけではなく、&amp;lt;u&amp;gt;通信に関するログを保持しない&amp;lt;/u&amp;gt; という意味でのノーログVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的な裏付け - RAMオンリーサーバ ====&lt;br /&gt;
NordVPNは全サーバをRAMオンリー (ディスクレス) 構成に移行済みである。&amp;lt;br&amp;gt;&lt;br /&gt;
* メモリ (RAM) 上でのみデータを処理し、ハードディスクにはデータを保存しない&lt;br /&gt;
* サーバがシャットダウンまたは再起動された時点で、全てのデータが自動削除される&lt;br /&gt;
* 不正アクセスやハードウェア押収が発生した場合でも、データ抽出が不可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
NordVPNのノーログポリシーは、以下の通り複数回の独立した第三者監査で検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー監査履歴&lt;br /&gt;
! 回 !! 年 !! 監査機関 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 第1回 || 2018年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第2回 || 2020年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第3回 || 2022年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第4回 || 2023年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第5回 || 2024年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第6回 || 2025年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2024年の第5回監査 (2024年11月18日〜12月20日) では、ISAE 3000基準に基づき、ユーザの活動をユーザ個人に関連付けることが不可能な状態であることが検証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法的立場 ====&lt;br /&gt;
NordVPNはパナマに本社 (Nordvpn S.A.) を置いており、以下の法的優位性を持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
* パナマにはVPNプロバイダに対する強制的なデータ保持法が存在しない&lt;br /&gt;
* パナマは5 Eyes、9 Eyes、14 Eyesのいずれの国際情報共有同盟にも属していない&lt;br /&gt;
* 他国政府がNordVPNに対してデータ提供を強制するための法的メカニズムが制限されている&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、パナマの検察官から法的拘束力のある令状が発行された場合は、保持しているデータの開示に応じる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提出事例 ====&lt;br /&gt;
NordVPNが法執行機関にデータを提出した事例と、他社VPNの事例を以下に整理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年10月: パナマ検察からの令状 =====&lt;br /&gt;
NordVPNはパナマの検察官から法的拘束力のある令状を受け、ユーザデータの開示に応じた。&amp;lt;br&amp;gt;&lt;br /&gt;
* 提供されたデータは、支払い情報およびアカウント存在確認のみ&lt;br /&gt;
* トラフィックログ、接続ログ等は保持していないため提供不可能であった。&lt;br /&gt;
* この事例を契機に、Warrant CanaryからTransparency Report (透明性レポート) への移行を開始&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年1月〜4月の統計 =====&lt;br /&gt;
* 政府機関からの問い合わせ: 81件&lt;br /&gt;
* DMCA請求: 約242万件&lt;br /&gt;
* いずれもユーザ情報の開示には至らなかったと報告されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 他社VPNの事例との比較 =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 他社VPNのログ提出事例との比較&lt;br /&gt;
! プロバイダ !! 事例 !! 実態&lt;br /&gt;
|-&lt;br /&gt;
| PureVPN (2017年) || FBIにサイバーストーキング事件のログを提供 || ノーログと謳いながら詳細な接続ログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| HideMyAss (2011年) || FBIにLulzSecハッカーの接続データを提供 || 同様にログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN (2024年) || パナマ検察に支払い情報のみ提供 || トラフィックログは実際に存在せず提供不可能であった。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNやHideMyAssは、ノーログを謳いながら実際には詳細なログを保持していたのに対し、&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNは第三者監査および実際の法的事例により、トラフィックログを保持していないことが裏付けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
===== 2019年: サーバ侵害事件 =====&lt;br /&gt;
2018年3月、フィンランドのCreanova Datacenterから借用していた約3,000台中1台のサーバが侵害された。&amp;lt;br&amp;gt;&lt;br /&gt;
* 原因&lt;br /&gt;
*: データセンター側がIPMI (Intelligent Platform Management Interface) アカウントを未開示のまま放置していた。&lt;br /&gt;
* ユーザのパスワード、課金情報、VPNログの流出はなし&lt;br /&gt;
* 侵害の発見は2019年4月 (事件発生から約1年後)、公開は2019年10月 (発見からさらに6ヶ月後)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件を受けて、NordVPNは以下の改善策を実施した。&amp;lt;br&amp;gt;&lt;br /&gt;
* Creanovaとの契約を即座に解除&lt;br /&gt;
* 全サーバをRAMオンリー (ディスクレス) 構成に移行&lt;br /&gt;
* 自社管理コロケーションサーバの導入 (2020年10月〜)&lt;br /&gt;
* バグバウンティプログラムの開始 (2019年10月〜)&lt;br /&gt;
* VPN Trust Initiativeの創設メンバーとして参加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 親会社に関する懸念 =====&lt;br /&gt;
NordVPNの親会社であるNord Security (リトアニア) は、Tesonetというスタートアップインキュベーターの傘下にある。&amp;lt;br&amp;gt;&lt;br /&gt;
* Tesonetはデータ収集企業Oxylabsも保有しており、利益相反の可能性が指摘されている。&lt;br /&gt;
* 企業構造の不透明さが批判されることがある。&lt;br /&gt;
* ただし、複数の独立監査によりユーザデータが外部と共有されていないことは検証されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
下表に、NordVPNのノーログポリシーに関する総合評価を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー総合評価&lt;br /&gt;
! 観点 !! 評価&lt;br /&gt;
|-&lt;br /&gt;
| ノーログの真正性 || 6回の独立監査で検証済み。&amp;lt;br&amp;gt;2024年の令状事例でも実際にログが存在しないことが裏付けられた。&lt;br /&gt;
|-&lt;br /&gt;
| 捜査機関への対応 || 法的令状には応じるが、提供可能データは支払い情報のみ&lt;br /&gt;
|-&lt;br /&gt;
| 他社VPNとの違い || PureVPN、HideMyAssはノーログを詐称していたが、NordVPNは監査で裏付けあり&lt;br /&gt;
|-&lt;br /&gt;
| 懸念事項 || 親会社Tesonetの企業構造の不透明さ、2019年侵害事件の公表遅延&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNの契約 ==&lt;br /&gt;
Nord VPNの契約方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、Nord VPNの公式Webサイトへアクセスして、画面上にある[価格]を選択する。&lt;br /&gt;
# 価格画面からプランを選択する。&lt;br /&gt;
#: プランはスタンダード、プラス、コンプリートの3つのティアがあり、それぞれ1ヶ月、1年、2年の契約期間を選択できる。&lt;br /&gt;
#: 最もコストパフォーマンスが良いのは2年プランである。(3年プランは廃止されている)&lt;br /&gt;
#: プランを選択後、アカウントの作成と支払い方法の選択をする。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;NordVPNはパナマ所在の企業であるため、クレジットカード会社が海外購入として制限を掛け、否決される可能性がある。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;PayPalまたは暗号通貨 (ビットコイン、イーサリアム、ライトコイン) での支払いを推奨する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、[消費税適用外]項目から[日本]を選択して、[続ける]ボタンを押下する。&lt;br /&gt;
# ここでは、PayPalで決済するため、[Pay with PayPal]を選択して支払いを進める。&amp;lt;br&amp;gt;支払いが完了すると、支払い受付画面に移動する。&lt;br /&gt;
# Nord VPNからE-mailが3通届くので、アカウントを有効化するために&amp;quot;NordVPN account activation&amp;quot;という件名のメールを開く。&lt;br /&gt;
# [Set Password and Activate Account]ボタンを押下すると、Nord VPNのWebサイトへ移動するので、パスワード設定とアカウントの有効化を行う。&amp;lt;br&amp;gt;ここで入力するパスワードは、VPN接続する時のパスワードとなる。&lt;br /&gt;
# パスワードを設定すると、自動的にNord VPNソフトウェアのダウンロードが開始される。&amp;lt;br&amp;gt;または、[https://nordvpn.com/ja/download/ Nord VPNの公式Webサイト]でも個別にダウンロードできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアのインストール ==&lt;br /&gt;
===== RHEL =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wget -qnc https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo dnf update&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== SUSE =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo rpm -v --import https://repo.nordvpn.com/gpg/nordvpn_public.asc&lt;br /&gt;
 sudo zypper install https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo zypper addrepo /etc/yum.repos.d/nordvpn.repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== LinuxにおけるNord VPNコマンド =====&lt;br /&gt;
 nordvpn login                  - ログイン&lt;br /&gt;
 nordvpn login --token [トークン] - トークンを使用してログイン (GUI無し環境用)&lt;br /&gt;
 nordvpn connect or nordvpn c   - VPNに接続する。特定のサーバに接続する場合は nordvpn connect &amp;lt;country_code server_number&amp;gt; (例: nordvpn connect uk715)&lt;br /&gt;
 nordvpn disconnect or nordvpn d - VPNから切断する&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn set or nordvpn s - 設定オプション:&lt;br /&gt;
 nordvpn set threatprotectionlite on or off - Threat Protection Lite (DNSフィルタリング・広告ブロック) の有効化/無効化 (旧: cybersec)&lt;br /&gt;
 nordvpn set killswitch on or off            - Kill Switchの有効化/無効化&lt;br /&gt;
 nordvpn set autoconnect on or off           - 自動接続の有効化/無効化。特定サーバの自動接続: nordvpn set autoconnect on us2435&lt;br /&gt;
 nordvpn set dns 1.1.1.1 1.0.0.1             - カスタムDNSの設定 (1つまたは2つ指定可能)&lt;br /&gt;
 nordvpn set technology nordlynx or openvpn   - VPNプロトコルの切り替え&lt;br /&gt;
 nordvpn set obfuscate on or off              - 難読化サーバの有効化/無効化&lt;br /&gt;
 nordvpn set firewall on or off               - ファイアウォールの有効化/無効化&lt;br /&gt;
 nordvpn set ipv6 on or off                   - IPv6サポートの有効化/無効化&lt;br /&gt;
 nordvpn set lan_discovery on or off          - LANデバイス検出の有効化/無効化&lt;br /&gt;
 nordvpn set post_quantum_vpn on or off       - ポスト量子暗号の有効化/無効化&lt;br /&gt;
 nordvpn set notify on or off                 - 通知の有効化/無効化&lt;br /&gt;
 nordvpn set tray on or off                   - システムトレイアイコンの有効化/無効化&lt;br /&gt;
 nordvpn set defaults                         - デフォルト設定にリセット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn allowlist add port 22                          - ポート22をVPN例外リストに追加 (旧: whitelist)&lt;br /&gt;
 nordvpn allowlist add port 22 protocol TCP             - プロトコル指定でポートを追加&lt;br /&gt;
 nordvpn allowlist remove port 22                       - ポート22のルールを削除&lt;br /&gt;
 nordvpn allowlist add subnet 192.168.0.0/16            - サブネットをVPN例外リストに追加&lt;br /&gt;
 nordvpn allowlist remove subnet 192.168.0.0/16         - サブネットのルールを削除&lt;br /&gt;
 nordvpn allowlist remove all                           - VPN例外リストの全ルールを削除&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn settings  - 現在の設定を表示&lt;br /&gt;
 nordvpn status    - 接続状態を表示&lt;br /&gt;
 nordvpn account   - アカウント情報を表示&lt;br /&gt;
 nordvpn countries - 利用可能な国一覧を表示&lt;br /&gt;
 nordvpn cities    - 利用可能な都市一覧を表示&lt;br /&gt;
 nordvpn groups    - 利用可能なサーバグループ一覧を表示&lt;br /&gt;
 nordvpn version   - アプリケーションバージョンを表示&lt;br /&gt;
 nordvpn logout    - ログアウト&lt;br /&gt;
 nordvpn help or nordvpn h - コマンド一覧またはヘルプを表示&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;man nordvpn&amp;lt;/code&amp;gt;コマンドを使用して、コマンドの全リストを見ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windows =====&lt;br /&gt;
Nord VPNソフトウェアのインストール手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# 上記セクションでダウンロードしたNordVPNSetup.exeを実行する。&lt;br /&gt;
# インストール先を選択するダイアログが表示されるので、必要であればフォルダを変更して[Next]ボタンを押下する。&lt;br /&gt;
# [Install]ボタンを押下してインストールを始める。&lt;br /&gt;
# [Finish]ボタンを押下してインストールを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアを起動手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNソフトウェアの起動後、ログイン画面が表示されるので、Nord VPNで登録したメールアドレスとパスワードを入力して[Sign In]ボタンを押下する。&lt;br /&gt;
# ログインに成功すると、VPNサーバを選択する画面が表示される。&amp;lt;br&amp;gt;メイン画面下の[Quick connect]ボタンを押下すると、近距離にあるVPNサーバが選択される。(日本国内から接続すれば、日本のVPNサーバが選択される)&lt;br /&gt;
# 接続したい国があれば、世界地図の上から選択する事もできる。&amp;lt;br&amp;gt;例えば、ブラジルのVPNサーバに接続する場合、ブラジルを選択してから[Quick connect]ボタンを押下する。&amp;lt;br&amp;gt;あるいは、メイン画面左から接続したい国を選択して接続することもできる。&lt;br /&gt;
# 接続が成功すると、国のアイコンが緑色に変化する。また、接続状態も[UNCONECTED]から[PROTECTED]に変化して[Connected to Brazil]と表示される。&lt;br /&gt;
# 切断する場合は、[Disconnect]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network Managerを使用したNord VPNの接続 ==&lt;br /&gt;
# Nord VPNの公式Webサイトから、[https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip OpenVPN構成ファイルパッケージ]をダウンロードして解凍する。&lt;br /&gt;
# Network Managerの設定画面を起動する。(GNOMEの場合は、[VPNオフ]を選択後、ドロップダウンから[VPN設定]を選択する)&lt;br /&gt;
# 設定画面下にある[+]ボタンを押下する。(GNOMEの場合は、 [VPN]項目横にある[+]ボタンを押下する)&lt;br /&gt;
# 接続タイプは、[VPN接続をインポート...]を選択する。(GNOMEの場合は、[ファイルからインポート...]を選択する)&lt;br /&gt;
# 上記でダウンロードしたファイルから1つを選択して、[開く]ボタンを押下する。&lt;br /&gt;
# ポップアップウィンドウにNord VPNで取得したのユーザ名とパスワードを入力して、[追加]ボタンを押下する。&lt;br /&gt;
# 追加したNord VPNサービスの資格情報は、Nordアカウントダッシュボードで確認できる。右側のボタンを使用して認証情報をコピーします。&lt;br /&gt;
# 最後に、Network Managerの設定画面から、VPNオプションの下のスライダーを押下して、Nord VPNサーバに接続する。&amp;lt;br&amp;gt;VPN接続が開始されると、スライダーは緑色に変化する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアの設定 ==&lt;br /&gt;
Nord VPNソフトウェアのメイン画面右上にある歯車のアイコンを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定項目は、[General]、[Auto Connect]、[Advanced]がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== General =====&lt;br /&gt;
Nord VPNの[General]項目において、重要な項目は以下の2つである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Start NordVPN on startup&lt;br /&gt;
* Internet Kill Switch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Start NordVPN on startup]項目は、初期設定で有効化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
OS起動時にNordVPNを動作させるため、[オン]にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Internet Kill Switch]項目は、VPNを経由しない通信をすべて遮断する。匿名性を向上させるため、[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
注意点として、Nord VPNに接続していない状態では、一切ネットワーク接続できなくなる点である。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNを切断してVPN非経由でインターネット接続する場合は、[Internet Kill Switch]項目を[オフ]に設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Auto Connect =====&lt;br /&gt;
Nord VPNの[Auto Connect]項目では、自動接続設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNクライアントを起動した際、自動的にVPN接続する場合は、[Connect when app starts]項目を[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、外出先でWi-Fiに接続する可能性がある場合は、[Connect on insecure wireless]項目を[オン]に設定するとよい。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動接続する国を選択したい場合は、[Auto connect to]項目で選択して、更に細かく指定する場合は[Preferred region]項目で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
通常は、[Preferred region]項目は[Automatically pick best]に設定することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Double VPNで接続する ==&lt;br /&gt;
NordVPNのメリットの1つに、匿名性を高めるDouble VPNが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Double VPNを利用するとVPNサーバを2つ経由する。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザが利用するISPには、1つ目のVPNサーバと通信している記録が残るが、最終的な接続先から見ると2つ目のVPNサーバから接続している記録が残る。&amp;lt;br&amp;gt;&lt;br /&gt;
そして1つ目と2つ目のVPNサーバ間は通信を中継しているだけであるため、VPNサーバ間の通信記録にユーザの情報は残らない。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため極めて高い匿名性が確保される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
極めて高い匿名性を提供するDouble VPNであるが、利用方法は簡単である。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNのソフトウェアを起動する。&amp;lt;br&amp;gt;メイン画面左にある[Double VPN]を選択すると、自動的にDouble VPNで接続できる。&lt;br /&gt;
# 接続するVPNサーバを指定する場合は、[Double VPN]の右側にある[...]を選択する。&lt;br /&gt;
# [Double VPN]画面が開くので、[Country:]プルダウンと[Server:]プルダウンを選択する。&amp;lt;br&amp;gt;初期設定では、最適な国とサーバが自動的に選択される。&lt;br /&gt;
# [Country:]プルダウンでは1番目のサーバを選択して、[Server:]プルダウンでは2番目のサーバを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ISPからTorの使用を隠蔽でき、Torの入口ノードにユーザの実IPアドレスが公開されない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNにはOnion Over VPNという組み込み機能があり、Tor over VPNを自動的に実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を使用することにより、Torブラウザをインストールすることなく.onionサイトにアクセスすることが可能となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Onion Over VPN対応サーバの所在地はオランダおよびスイスであり、プロトコルはOpenVPNのみ対応している。(NordLynxは不可)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Onion Over VPN機能を使用する方法 ====&lt;br /&gt;
NordVPNアプリのOnion Over VPN機能を使用する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# NordVPNのソフトウェアを起動する。&lt;br /&gt;
# サーバーリスト内の[Specialty servers]を選択する。&lt;br /&gt;
# [Onion Over VPN]を選択して接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Onion Over VPN機能をLinux CLIから使用する方法 ====&lt;br /&gt;
以下に示すコマンドを実行することにより、Onion Over VPNに接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect onion_over_vpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 通常VPN接続にTorブラウザを組み合わせる方法 ====&lt;br /&gt;
Onion Over VPN機能を使用せず、NordVPNの任意のサーバに接続した後にTorブラウザを起動する方法でもTor over VPNを実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# NordVPNのソフトウェア または NetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&lt;br /&gt;
#: Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、ダブルエンクリプションと複数のサーバホップにより、インターネット速度が大幅に低下する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPN over Torとは、VPNサーバへの接続にTorネットワークを使用する構成である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPアドレスをVPNプロバイダに公開することなく、VPNに接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、NordVPNはVPN over Torを公式にはサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNおよびTor Projectともに一般ユーザへの使用は非推奨としており、設定誤りによるセキュリティリスクにも注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術的には、OpenVPN設定ファイルを手動編集することでVPN over Torを実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、速度の大幅な低下が発生するため、実用上の使用は困難を伴う場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 手動設定による接続手順 ====&lt;br /&gt;
&amp;lt;u&amp;gt;以下に示す手順は公式サポート対象外であり、設定誤りのリスクがある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、十分に理解した上で実施すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Torブラウザをインストールして起動して、Torネットワークへの接続を確立する。&lt;br /&gt;
# NordVPNの[https://nordvpn.com/ovpn/ OpenVPN設定ファイル]をダウンロードする。&lt;br /&gt;
# ダウンロードしたOpenVPN設定ファイル (.ovpn拡張子) ファイルをテキストエディタで開いて、以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/pre&amp;gt;&lt;br /&gt;
# 編集した設定ファイルを使用して、OpenVPNクライアントから接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_ExpressVPN&amp;diff=14599</id>
		<title>VPN - ExpressVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_ExpressVPN&amp;diff=14599"/>
		<updated>2026-03-24T16:55:49Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == ExpressVPNは、英領バージン諸島 (BVI) に登録されたVPNサービスプロバイダである。&amp;lt;br&amp;gt; 105カ国以上にサーバを展開しており、AES-256暗号化、独自プロトコルのLightway、TrustedServer技術を採用している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Windows、MacOS、Linux、Android、iOS、ルーター等に対応しており、最大8台のデバイスを同時接続することができる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 2009年に設立され、2021…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
ExpressVPNは、英領バージン諸島 (BVI) に登録されたVPNサービスプロバイダである。&amp;lt;br&amp;gt;&lt;br /&gt;
105カ国以上にサーバを展開しており、AES-256暗号化、独自プロトコルのLightway、TrustedServer技術を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linux、Android、iOS、ルーター等に対応しており、最大8台のデバイスを同時接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2009年に設立され、2021年にKape Technologiesが約9.36億ドルで買収した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPNのメリットとデメリット&lt;br /&gt;
|-&lt;br /&gt;
! メリット !! デメリット&lt;br /&gt;
|-&lt;br /&gt;
| 高速通信と広いサーバネットワーク(105カ国以上) || 高価格帯 (競合他社と比較して割高)&lt;br /&gt;
|-&lt;br /&gt;
| 業界最多水準の第三者監査実績(19〜23件) || Kape Technologies買収による組織的信頼性への懸念&lt;br /&gt;
|-&lt;br /&gt;
| TrustedServer(RAMオンリー)技術によるデータ保護 || Project Raven問題 (元CIOの監視プログラム関与)&lt;br /&gt;
|-&lt;br /&gt;
| 30日間返金保証 ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ExpressVPNの特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPNの主な技術的特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TrustedServer技術 || 全サーバがRAMのみで動作し、再起動時に全データが消去される仕組みである。&amp;lt;br&amp;gt;ディスクにデータが書き込まれないため、サーバが押収されてもユーザデータが残らない。&lt;br /&gt;
|-&lt;br /&gt;
| Lightwayプロトコル || ExpressVPNが独自開発したVPNプロトコルである。&amp;lt;br&amp;gt;wolfSSLをベースとした高速・軽量・安全な接続を実現している。&lt;br /&gt;
|-&lt;br /&gt;
| AES-256暗号化 || 軍事レベルの暗号化技術を採用している。&lt;br /&gt;
|-&lt;br /&gt;
| 幅広いデバイス対応 || Windows、MacOS、Linux、Android、iOS、ルーター等、主要なプラットフォームに対応している。&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || 業界最多水準の独立した監査を継続して受けている。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ExpressVPNの料金は、月額6.67ドルからである。(2026年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
ExpressVPNはノーログVPNを標榜しており、英領バージン諸島の法制度とTrustedServer技術を根拠として、データログを保存または共有していないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
ExpressVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アクティビティログ&lt;br /&gt;
** ブラウジング履歴&lt;br /&gt;
** トラフィック宛先&lt;br /&gt;
** データ内容&lt;br /&gt;
** DNSクエリ&lt;br /&gt;
* コネクションログ&lt;br /&gt;
** ユーザのIPアドレス&lt;br /&gt;
** 発信VPN IPアドレス&lt;br /&gt;
** 接続タイムスタンプ&lt;br /&gt;
** セッション継続時間&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、アカウント管理に必要な最小限の情報 (メールアドレス、支払い情報) のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
TrustedServer技術により、全サーバがRAMのみで動作し、再起動時に全データが消去されるため、技術的にもログが残らない仕組みとなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
ExpressVPNのノーログポリシーは、実際の捜査機関との対応においても有効性が確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2017年トルコ・ロシア大使暗殺事件&lt;br /&gt;
*: 2016年12月、ロシア駐トルコ大使アンドレイ・カルロフが暗殺される事件が発生した。&lt;br /&gt;
*: 暗殺者がExpressVPNを使用していたとされ、トルコ当局がExpressVPNサーバを物理的に押収した。&lt;br /&gt;
*: 捜査官は指定IPアドレスを使用していたユーザの接続ログを求めたが、ExpressVPNは「接続ログを保持していない」と回答した。&lt;br /&gt;
*: トルコ当局はログが存在しないことを確認し、ノーログポリシーが物理的押収においても機能していることが実証された。&lt;br /&gt;
*: この事件以降、ExpressVPNはトルコ国内に物理サーバを設置せず、オランダのバーチャルサーバを提供している。&lt;br /&gt;
* 法執行機関からの要求と対応実績&lt;br /&gt;
*: 2024年: 333件の政府・法執行機関からの法的要求を受けたが、ユーザ関連データは一切提供しなかった。&lt;br /&gt;
*: 2025年上半期: 374件の正式な法執行機関要求を受けたが、一切のデータ提供を行わなかった。&lt;br /&gt;
*: 2024年のワラント (令状): 3件受領したが、データ開示なし。2025年上半期はワラント0件であった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者セキュリティ監査 ====&lt;br /&gt;
ExpressVPNは、業界最多水準の独立した第三者監査を継続して受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPN 第三者セキュリティ監査実績&lt;br /&gt;
! 年月 !! 監査機関 !! 対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2019年6月 || PwC Switzerland || プライバシーポリシー、TrustedServer || ポリシー準拠を確認&lt;br /&gt;
|-&lt;br /&gt;
| 2022年 || KPMG || ノーログポリシー (第1次) || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年11月 || Cure53 || Aircoveルーター (第2次) || セキュリティ監査完了&lt;br /&gt;
|-&lt;br /&gt;
| 2025年2月 || KPMG || TrustedServer、ノーログポリシー (第2次) || 技術的保護に問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2025年6月 || KPMG || ノーログポリシー (第3次) || 合理的確証を提供&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Lightwayプロトコルに対するCure53の監査では、5件の低度な問題と4件の情報通知が確認されたが、重大・高度・中度の問題は検出されなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全ての監査はISAE (UK) 3000 Type 1に準拠している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、2025年にISO/IEC 27001、ISO 9001、ISO 18295-1 &amp;amp; 18295-2を取得している。&amp;lt;br&amp;gt;&lt;br /&gt;
業界で最も多くの独立監査を実施しており、その件数は19〜23件に及ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する情報 ====&lt;br /&gt;
ExpressVPNの拠点である英領バージン諸島 (BVI) は、VPNプロバイダにとってプライバシー上有利な管轄法域とされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* データ保持に関する法律がない。&lt;br /&gt;
* 5 Eyes、9 Eyes、14 Eyes監視協定のいずれにも加盟していない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの条件により、政府からの強制的なデータ開示命令を受けるリスクが低い環境となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || 英領バージン諸島で設立&lt;br /&gt;
|-&lt;br /&gt;
| 2019年12月 || Daniel GerickeをCIOとして採用&lt;br /&gt;
|-&lt;br /&gt;
| 2021年9月 || Kape Technologiesが約9.36億ドルで買収を発表&lt;br /&gt;
|-&lt;br /&gt;
| 2021年9月 || Daniel GerickeのUAE秘密監視プログラム「Project Raven」への関与が発覚。$335,000の罰金&lt;br /&gt;
|-&lt;br /&gt;
| 2023年7月 || Daniel GerickeがExpressVPNを離職&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Kape Technologies問題について、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* かつて、Crossriderとして知られており、2018年に名称変更した。&lt;br /&gt;
* カリフォルニア大学バークレー校とGoogleの共同研究 (2015年) において、広告注入ツールの主要関連企業として特定された。&lt;br /&gt;
* セキュリティコミュニティから、&amp;quot;マルウェア開発者がVPNを買収した&amp;quot;という懸念が提起された。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Daniel Gericke / Project Raven問題について、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* GerickeはUAE政府の秘密監視プログラム &amp;quot;Project Raven&amp;quot; に関与していた。&lt;br /&gt;
* 米国人、活動家、各国首脳のハッキングを含む作戦に参加していた。&lt;br /&gt;
* ゼロクリックエクスプロイトをKarmaというハッキングシステムに組み込んだ。&lt;br /&gt;
* $335,000の罰金を支払い、米国安全保障クリアランスを生涯剥奪された。&lt;br /&gt;
* ExpressVPNはGerickeの過去の「主要な事実」を事前に認識していたと主張している。&lt;br /&gt;
* 40人以上のExpressVPN従業員が内部で抗議した。&lt;br /&gt;
* Edward SnowdenがExpressVPNの使用中止を勧告した。&lt;br /&gt;
* Gerickeは2023年7月に離職した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 最新動向 (2024年〜2026年) ====&lt;br /&gt;
* 2025年4月&lt;br /&gt;
*: Windows版アプリの脆弱性 (RDPトラフィックがVPNトンネルを迂回するバグ) が報告され、バージョン12.101.0.45で修正された。&lt;br /&gt;
* 透明性レポート&lt;br /&gt;
*: 半年ごとに発行を継続している。(2024年下半期: 333件の政府要求、2025年上半期: 374件)&lt;br /&gt;
* Bug Bountyプログラム&lt;br /&gt;
*: 2025年Q2は82件応募があり、5件が有効な脆弱性として確認された。&lt;br /&gt;
* ISO認証&lt;br /&gt;
*: ISO/IEC 27001、ISO 9001、ISO 18295-1 &amp;amp; 18295-2を取得した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
ExpressVPNのノーログポリシーの技術的実装は、サーバ押収事件と複数の第三者監査によって裏付けられており、高い信頼性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、Kape Technologies買収やProject Raven問題により、組織としての信頼性には相当な懸念が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Edward Snowden等信頼できるセキュリティ専門家がExpressVPNの利用を推奨していない点も留意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術は信頼できるが、組織への信頼は分かれているというのが現状の評価である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ExpressVPNの契約方法 ==&lt;br /&gt;
# [https://www.expressvpn.com ExpressVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、6ヶ月、12ヶ月のいずれかのプランを選択する。&lt;br /&gt;
# メールアドレスを入力して、アカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、PayPal、Bitcoin、その他の暗号通貨が使用できる。&lt;br /&gt;
# 支払い完了後、ソフトウェアをダウンロードしてインストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この方式では、ユーザのトラフィックはまずExpressVPNサーバーを経由し、その後Torネットワークに入る。&amp;lt;br&amp;gt;&lt;br /&gt;
ISP (インターネットサービスプロバイダ) からはTorの使用が隠蔽され、Torの入口ノードからはユーザの実際のIPアドレスが隠蔽される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ExpressVPNアプリを起動して、VPNサーバーに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor over VPN方式のメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ISPからTorの使用を隠すことができる。&lt;br /&gt;
* Torの入口ノードにユーザの実際のIPアドレスが公開されない。&lt;br /&gt;
* 設定が簡単であり、特別な設定は不要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor over VPN方式のデメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Torの出口ノードからはトラフィックが見える可能性がある。(HTTPS通信の場合は暗号化されている)&lt;br /&gt;
* VPNプロバイダ (ExpressVPN) は、ユーザの実際のIPアドレスを知ることができる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用する方式を、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExpressVPNは、VPN over Torの構成を公式にサポートしておらず、非推奨としている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExpressVPNがVPN over Torを非推奨とする理由を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Torの出口ノードの代わりにVPNプロバイダがトラフィックを見ることになるため、匿名性の向上がない。&lt;br /&gt;
* 信頼不要であるTorの設計に、VPNプロバイダという信頼要件を再導入してしまう。&lt;br /&gt;
* Torの速度低下というデメリットのみが残り、セキュリティ上のメリットがない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExpressVPNでTorを利用する場合は、上記のTor over VPN方式を使用すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Surfshark&amp;diff=14598</id>
		<title>VPN - Surfshark</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Surfshark&amp;diff=14598"/>
		<updated>2026-03-24T16:06:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Surfsharkは、2018年にリトアニアで設立されたVPNサービスである。(現在の法人所在地はオランダ)&amp;lt;br&amp;gt; 運営会社はSurfshark B.V.であり、2022年にNord Security傘下に入りCyberspace B.V.として統合されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 100カ国以上に3,200以上のサーバを展開しており、AES-256-GCM暗号化、WireGuard / OpenVPN / IKEv2プロトコルに対応している。&amp;lt;br&amp;gt; デバイスの同時接続数…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Surfsharkは、2018年にリトアニアで設立されたVPNサービスである。(現在の法人所在地はオランダ)&amp;lt;br&amp;gt;&lt;br /&gt;
運営会社はSurfshark B.V.であり、2022年にNord Security傘下に入りCyberspace B.V.として統合されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
100カ国以上に3,200以上のサーバを展開しており、AES-256-GCM暗号化、WireGuard / OpenVPN / IKEv2プロトコルに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
デバイスの同時接続数が無制限であることも大きな特徴の1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応OSは、Windows、MacOS、Linux、Android、iOS、Amazon Fire TVである。&amp;lt;br&amp;gt;&lt;br /&gt;
料金は、月額1.99ドルからである。(2026年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全サーバがRAM-only構成であり (2020年に完全移行)、Deloitte (Big Four) による独立監査でノーログポリシーが検証済みである。(2023年および2025年)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Surfsharkのメリットとデメリット&lt;br /&gt;
|-&lt;br /&gt;
! メリット !! デメリット&lt;br /&gt;
|-&lt;br /&gt;
| コストパフォーマンスが高い。 || 設立が比較的新しい。(2018年)&lt;br /&gt;
|-&lt;br /&gt;
| デバイス接続台数が無制限である。 || Nine Eyes加盟国(オランダ)に所在している。&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバを採用している。 || Nord Security傘下であり、独立性への懸念がある。&lt;br /&gt;
|-&lt;br /&gt;
| 第三者機関による監査が実施済みである。 || 一部のサーバでCAPTCHAが頻発するとの報告がある。&lt;br /&gt;
|-&lt;br /&gt;
| 100カ国以上にサーバが展開されている。 || 接続が不安定になるとの報告がある。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Surfsharkの主な特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || Deloitteによる第三者監査でノーログポリシーが検証されている。&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバ || 全3,200以上のサーバがRAM (揮発性メモリ) のみで動作する。&amp;lt;br&amp;gt;再起動時にデータが物理的に消去される。&lt;br /&gt;
|-&lt;br /&gt;
| 無制限デバイス接続 || 1つのアカウントで接続台数の制限なく使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| AES-256-GCM暗号化 || 米国政府および軍事機関でも採用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
|-&lt;br /&gt;
| MultiHop機能 || 2つのVPNサーバを経由する二重VPN接続が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
SurfsharkはノーログVPNを標榜しており、RAM-onlyサーバおよびDeloitteによる第三者監査を根拠として、ユーザデータを記録・保存しないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
Surfsharkの公式プライバシーポリシーでは、以下に示すデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* IPアドレス (ユーザの本来のIPアドレス)&lt;br /&gt;
* 閲覧履歴およびDNSクエリ&lt;br /&gt;
* セッション情報 (接続時刻、切断時刻、セッション継続時間)&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
* 通信プロトコルおよびポート番号&lt;br /&gt;
* 接続先サーバのIPアドレス&lt;br /&gt;
* ネットワークトラフィック&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集・保持されるデータは、以下に示す最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アカウント情報 (メールアドレス、暗号化されたパスワード)&lt;br /&gt;
* 課金および購入履歴&lt;br /&gt;
* 一時的な接続メタデータ (ユーザID、IPアドレス、接続タイムスタンプ) --&amp;gt; セッション終了後15分以内に自動削除&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、アカウントデータはサービス利用期間中および最後のログインから2年間保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
Surfsharkは、透明性の確保とセキュリティの改善のために、定期的に第三者機関による独立した監査を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Surfshark セキュリティ監査実績&lt;br /&gt;
! 年月 !! 監査機関 !! 対象 !! 基準 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2023年 || Deloitte || ノーログポリシー || ISAE 3000 || 合格&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Cure53 || サーバインフラ / ブラウザ拡張機能 || - || 深刻な問題なし&amp;lt;br&amp;gt;堅牢と評価&lt;br /&gt;
|-&lt;br /&gt;
| 2025年4月 || SecuRing || Webアプリ / デスクトップアプリ / モバイルアプリ / ブラウザプラグイン || - || 重大な脆弱性なし&lt;br /&gt;
|-&lt;br /&gt;
| 2025年6月 || Deloitte || ノーログポリシー (2回目) || ISAE 3000 || 合格&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全ての監査報告書はSurfsharkのTrust Centerで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
Surfsharkのノーログポリシーに関する捜査機関への対応状況は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 令状カナリー (2025年12月15日時点)&lt;br /&gt;
*: 国家安全保障文書: 0件&lt;br /&gt;
*: 緘黙命令: 0件&lt;br /&gt;
*: 政府機関からの令状: 0件&lt;br /&gt;
* 2024年4月〜6月の政府機関からの問い合わせ&lt;br /&gt;
*: 政府機関から45件の問い合わせを受けたが、いずれもユーザデータの開示には至っていない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全期間を通じて、ユーザデータの捜査機関への提出事例はゼロである。&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログ + RAM-onlyの構成により、要求があっても提供できるデータが物理的に存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、2024年8月に令状カナリーページの更新で一時的に懸念が発生した。&amp;lt;br&amp;gt;&lt;br /&gt;
Surfsharkはシステム不具合と説明しており、その後、透明性レポート制度に移行している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
裁判所でノーログポリシーが正式に検証された事例は確認されていない。(監査による検証のみ)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
Surfsharkは、ユーザのプライバシーを保護するために、以下に示す技術的な仕組みを採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 技術的なセキュリティ対策&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバ || 全3,200以上のサーバがRAMのみで動作する。(2020年に完全移行)&amp;lt;br&amp;gt;電源オフまたは再起動時にデータが物理的に消去される。&amp;lt;br&amp;gt;2024年に全サーバを10Gbps速度にアップグレードしている。&lt;br /&gt;
|-&lt;br /&gt;
| プロトコルのカスタマイズ || WireGuardとOpenVPNをカスタマイズして、セッション後のファイル作成を排除している。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号化 || AES-256-GCMを採用しており、米国政府および軍事機関でも採用されている暗号化技術である。&lt;br /&gt;
|-&lt;br /&gt;
| セッションキー || セッション中のみメモリに存在しており、セッション終了時に破棄される。&lt;br /&gt;
|-&lt;br /&gt;
| Port Shadow攻撃への耐性 || Port Shadow攻撃への耐性が確認済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
Surfshark B.V.はオランダに本社を置いている。(2021年にイギリス領バージン諸島から移転)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
オランダは9 Eyes情報共有同盟に所属しているが、オランダにはVPNプロバイダに対する強制的なデータ保持義務は存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
また、EU GDPRに準拠しており、&amp;lt;u&amp;gt;忘れられる権利&amp;lt;/u&amp;gt; が全ユーザに適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2022年にNord Security傘下に入りCyberspace B.V.として統合されている。&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPN (パナマ本社) と同じ親会社であるが、サービスは独立して運営されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord Security傘下入り後のデータ共有の証拠は報告されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログVPN 比較&lt;br /&gt;
! VPN !! ノーログ監査 !! 監査企業 !! サーバ構成 !! 設立年 !! 管轄法域 !! 評価傾向&lt;br /&gt;
|-&lt;br /&gt;
| Surfshark || あり (2回) || Deloitte, Cure53 || RAM-only || 2018年 || オランダ (9 Eyes) || コスパ優秀だが信頼度はやや低い&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || あり (複数回) || Cure53, X41 D-Sec, Assured Security等 || RAM-only || 2009年 || スウェーデン (14 Eyes) || 最高のプライバシー評価&lt;br /&gt;
|-&lt;br /&gt;
| ProtonVPN || あり || 複数実施 || 非RAM-only || 2014年 || スイス || 法的信頼度が高い&lt;br /&gt;
|-&lt;br /&gt;
| ExpressVPN || あり (限定的) || - || RAM-only || 2009年 || イギリス領バージン諸島 || サーバ数多だが透明度への批判あり&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
Surfsharkのノーログポリシーに関する留意点を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 15分以内に自動削除という実装&lt;br /&gt;
*: 完全なノーログではなく、接続メタデータについてはセッション終了後15分以内に自動削除される仕組みである。&lt;br /&gt;
*: 完全にゼロログの構成ではないことに注意する。&lt;br /&gt;
* 監査はスナップショットである。&lt;br /&gt;
*: 監査は特定時点の状態を評価したものであり、継続的な遵守を保証するものではない。&lt;br /&gt;
* 実地検証の事例がない。&lt;br /&gt;
*: 裁判等でノーログポリシーが公式に検証された事例はまだない。(Mullvadは2023年に家宅捜索で実証済み)&lt;br /&gt;
* 企業統治の透明性&lt;br /&gt;
*: Nord Security傘下の企業統治について、出資構造が完全に透明化されていない。&lt;br /&gt;
* 設立年が比較的新しい。&lt;br /&gt;
*: 2018年設立であり、Mullvad (2009年) や ProtonVPN (2014年) と比較して実績が浅い。&lt;br /&gt;
* CAPTCHAの問題&lt;br /&gt;
*: GoogleをはじめとするサービスがSurfsharkの一部サーバをブロックリストに含めており、CAPTCHA認証を頻繁に求められるとの報告がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Surfsharkの契約方法 ==&lt;br /&gt;
# [https://surfshark.com/pricing Surfsharkの公式Webサイト]にアクセスして、[Surfsharkを入手する]ボタンを押下する。&lt;br /&gt;
# プランを選択する。&lt;br /&gt;
#: 2026年時点で利用可能なプランは以下の通りである。&lt;br /&gt;
#* Surfshark Starter&lt;br /&gt;
#*: 基本的なVPN機能とAlternative ID機能を含むプランである。&lt;br /&gt;
#*: 2年契約で月額約1.99ドルから利用可能である。&lt;br /&gt;
#* Surfshark One&lt;br /&gt;
#*: VPN機能に加えて、複数のセキュリティツールを統合したサイバーセキュリティバンドルである。&lt;br /&gt;
#* Surfshark One+&lt;br /&gt;
#*: Incogni (データ削除ツール) を含む最上位のプランである。&lt;br /&gt;
# メールアドレスを入力して、パスワードを設定する。&amp;lt;br&amp;gt;または、GoogleアカウントもしくはAppleアカウントで連携することも可能である。&lt;br /&gt;
# 支払い方法を選択する。&lt;br /&gt;
#: 以下に示す支払い方法が利用可能である。&lt;br /&gt;
#* クレジットカード (VISA、MasterCard、American Express、DISCOVER)&lt;br /&gt;
#* PayPal&lt;br /&gt;
#* Google Pay / Apple Pay / Amazon Pay&lt;br /&gt;
#* 暗号通貨 (ビットコイン、イーサリアム、リップル)&lt;br /&gt;
# 支払いを完了すると、アカウントが即座に有効化される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全プラン共通で、デバイスの同時接続台数は無制限であり、30日間の返金保証が付与されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、返金を受けるには単なる解約だけでは不十分であり、必ずカスタマーサポート (ライブチャット推奨) へ返金リクエストを提出する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
App StoreやAmazon等の小売店経由で購入した場合は、返金窓口は購入元となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;JCBカードには対応していないため注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPN over Torとは、VPNサーバへの接続にTorネットワークを使用する構成である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPアドレスをVPNプロバイダに公開することなく、VPNに接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、SurfsharkはVPN over Torに対応していない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
SurfsharkはSOCKS5プロキシサービスを提供しておらず、OpenVPN設定ファイルを介したTor経由の接続も公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ISPからTorの使用を隠蔽でき、Torの入口ノードにユーザの実IPアドレスが公開されない。&amp;lt;br&amp;gt;&lt;br /&gt;
Surfsharkのソフトウェア または NetworkManager等でVPNに接続した後、Torブラウザを起動するだけで実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# SurfsharkのソフトウェアまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&lt;br /&gt;
#: Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、ダブルエンクリプションと複数のサーバホップにより、インターネット速度が大幅に低下する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SurfsharkにはMultiHop機能が搭載されており、2つのVPNサーバを経由する二重VPN接続も可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
MultiHopを使用することにより、Tor出口ノードへのルーティングに類似したプライバシー保護効果を得ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_PrivateVPN&amp;diff=14597</id>
		<title>VPN - PrivateVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_PrivateVPN&amp;diff=14597"/>
		<updated>2026-03-24T15:30:04Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* VPN over Tor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivateVPNは、200以上のサーバからなる小規模なネットワークを運営しており、これらは63カ国以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、ラグフリーストリーミングのための高速な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
256ビットAES暗号化、DNSリークからの保護、キルスイッチが用意されており、その厳格なノーログポリシーによって、ユーザのプライバシーを保護する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、PrivateVPNの設定に問題がある場合、ライブチャットと電子メールサポートを利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料のリモートヘルプとインストールも利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは、現在、Linux向けのCLIソフトウェアをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
高速で安定した接続と、地理的制限のあるコンテンツの確実なブロック解除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxの他にも、Windows、MacOS、Android、iOS、Amazon Fire TV用のPrivateVPNソフトウェアが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、個別の無線ルータで動作するように手動で設定することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、PrivateVPNは2009年にMartin Muller氏によりスウェーデンで設立された。(運営会社: Privat Kommunikation Sverige AB)&amp;lt;br&amp;gt;&lt;br /&gt;
2022年6月にWebホスティング企業であるMiss Groupに買収されており、創業者は離任している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの長所&lt;br /&gt;
** セットアップガイドとカスタマーサポートでユーザフレンドリーである。&lt;br /&gt;
** ストリーミングとトレント用の高速サーバーが存在する。&lt;br /&gt;
** 人気のあるストリーミングプラットフォームの一貫したブロック解除ができる。&lt;br /&gt;
** 厳格なノーログポリシーによるオンラインの匿名性。&lt;br /&gt;
** 30日間返金保証。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの短所&lt;br /&gt;
** サーバのネットワークが小さい。(全部で200程度しかない)&lt;br /&gt;
** ライブチャットが24時間利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: スウェーデンに会社があり、スウェーデンの個人情報保護法では、政府によって押収されるようなトラフィックログを保存することはない。&lt;br /&gt;
* 無制限の帯域幅と速度&lt;br /&gt;
*: 他のVPNで見られるような、ビデオのバッファリング、低速なダウンロード、ルーティングホップによるタイムアウトは無い。&lt;br /&gt;
* 無料リモートヘルプとインストール&lt;br /&gt;
*: サービスに関する問題やヘルプが必要な場合、リモートサポートは無料で行うことができる。&lt;br /&gt;
* 10台同時接続&lt;br /&gt;
*: 最大10台のデバイスを同時に接続できるVPNであり、全て固有のIPアドレスで接続できる。&lt;br /&gt;
* ポートフォワード&lt;br /&gt;
*: Torrentに不可欠なオープンポートを少なくとも1つ提供している。&lt;br /&gt;
* AES-256による2048ビットの暗号化&lt;br /&gt;
*: 軍事でも使用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PrivateVPNの料金は、月額2.00ドルからである。(2025年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
PrivateVPNはノーログVPNを標榜しており、スウェーデンの強力なプライバシー法を根拠として、データログを保存または共有する法的義務がないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivateVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジング履歴およびトラフィック宛先&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* IPアドレス (割り当てIP、接続IP両方)&lt;br /&gt;
* データコンテンツ&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、ログインメールアドレス、パスワード、支払い方法情報等のアカウント管理に必要な最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去の捜査機関へのデータ提供 ====&lt;br /&gt;
2025年時点の公開情報において、PrivateVPNが法執行機関にユーザデータを提供した具体的な事例、裁判記録、またはリークは確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは &amp;quot;ノーログポリシーを採用しているため、有事の場合でも提出できるデータが存在しない&amp;quot; という立場をとっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、この主張は第三者監査によって検証されていないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivateVPNは、独立した外部監査を一度も受けていない。&amp;lt;br&amp;gt;&lt;br /&gt;
これは業界内での重大な弱点と見なされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
競合他社との比較として、NordVPNはDeloitteによる監査 (2024年)、IPVanishはSchellman Compliance LLCによる監査 (2025年) を受けており、&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーの検証において、PrivateVPNは遅れをとっている状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する懸念 ====&lt;br /&gt;
PrivateVPNの拠点であるスウェーデンは、14 Eyes監視協定に加盟している。&amp;lt;br&amp;gt;&lt;br /&gt;
14 Eyes構成国間では、情報機関が収集した情報を共有する枠組みが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、スウェーデンのプライバシー法により、ノーログポリシーを採用しているVPNプロバイダに対するデータ保持義務は課されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、ノーログポリシーが正しく実装されている場合、14 Eyesの影響は限定的であると考えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || Martin Muller氏によりスウェーデンで設立 (運営会社: Privat Kommunikation Sverige AB)&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || Webホスティング企業のMiss Groupが買収。創業者Martin Muller氏は離任&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Miss Group傘下で運営。Miss GroupはPerwyn (プライベートエクイティ企業) が支援&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門家の評価 ====&lt;br /&gt;
2025年から2026年時点における専門家の評価は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの専門家評価&lt;br /&gt;
! 評価サイト !! スコア !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VPNMentor || 9.2/10 (193中7位) || ストリーミング性能、価格を評価&lt;br /&gt;
|-&lt;br /&gt;
| Trustpilot || 4.9/5 || 高い顧客満足度&lt;br /&gt;
|-&lt;br /&gt;
| TechRadar || 非推奨 || 投資不足による遅れを指摘&lt;br /&gt;
|-&lt;br /&gt;
| TheBestVPN || 30中22位 || 非推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な強みとして、価格競争力 (月額 $2.00から)、ストリーミング性能、基本的なプライバシー保護が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、主な弱みとして、第三者監査の欠落、限定されたサーバネットワーク、Linuxアプリの未提供、スプリットトンネリングおよび二重VPN機能の未対応が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
# [https://privatevpn.com/prices/comparitech PrivateVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、3ヶ月、3年のいずれかのプランを選択する。&lt;br /&gt;
# E-mailアドレスおよびパスワードを入力してログイン、または、PrivateVPNのアカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、Paypal、Bitcoinが使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PrivateVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ネットワークマネージャトンネルを使用する場合 (推奨) ==&lt;br /&gt;
まず、以下に示す2つのファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
* 証明書ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ca.crt&lt;br /&gt;
* 鍵ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ta.key&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[OpenVPN]を選択して、[Create]ボタンを押下する。&lt;br /&gt;
# 以下に示す情報を入力する。&amp;lt;br&amp;gt;もし、Linuxの起動時にVPNを自動的に接続する場合は、[自動的に接続する]を選択する。&lt;br /&gt;
#* 接続名&lt;br /&gt;
#*: PrivateVPN&lt;br /&gt;
#* ゲートウェイ&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#* タイプ&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* パスワード&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
#* CA証明書&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [LZOデータ圧縮を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [仮想デバイスの種類を設定]チェックボックスにチェックを入力して、[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [セキュリティタブ]を選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [相手（サーバ）の証明書使用状況の署名を確認する]チェックボックスにチェックを入力して、プルダウンから[サーバ]を選択する。&lt;br /&gt;
#*: [追加のTLS認証を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [キーファイル]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction]プルダウンから[1]を選択する。&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[VPN接続] - [PrivateVPN]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストから[OpenVPN]を選択して[作成]ボタンを押下する。&lt;br /&gt;
# [新しい接続]画面が開くので、以下に示す情報を入力する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意でよい。&lt;br /&gt;
#*: 例. PrivateVPN&lt;br /&gt;
#* [ゲートウェイ]&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#*: 例. スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: パスワードを選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [Use Compression]チェックボックスにチェックを入力して、プルダウンから[LZO]を選択する。&lt;br /&gt;
#*: [Set virtual device type:]チェックボックスにチェックを入力して、プルダウンから[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [Security]タブを選択する。&lt;br /&gt;
#*: [Cipher:]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC Authentication:]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS Settings]タブを選択する。&lt;br /&gt;
#*: [Verify peer（server） certificate usage signature]チェックボックスにチェックを入力して、プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [Key File:]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction:]プルダウンから[Client(1)]を選択する。&lt;br /&gt;
# [OK]ボタンを押下して、[OpenVPN Advanced Options]画面を閉じる。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。(この設定は不要の可能性あり)&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、PrivateVPNのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivateVPN CLIを使用する場合 ==&lt;br /&gt;
# [https://privatevpn.com/client/install.sh PrivateVPNの公式Webサイト]から、CLIソフトウェアのインストーラをダウンロードする。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;コマンド等を使用してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://privatevpn.com/client/install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたインストーラに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# スーパーユーザ権限でインストーラを実行する。&amp;lt;br&amp;gt;スーパーユーザ権限で実行する理由は、OpenVPNの接続時において、トンネルインターフェイスを作成するためである。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# /etc/openvpn/privatvpn.confファイルを編集して、接続先のVPNサーバを変更することができる。&amp;lt;br&amp;gt;サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
# WireGuardの接続に必要なツールをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にアクセスして、ログインする。&lt;br /&gt;
# [https://privatevpn.com/control-panel PrivateVPNのコントロールパネル]にアクセスする。&lt;br /&gt;
# コントロールパネル画面左にある[WireGuard Config]から、使用するVPNサーバを選択するため、[Generate Config]ボタンを押下する。&lt;br /&gt;
# コントロールパネルにWireGuardの設定が生成および表示されるので、ダウンロードアイコンを押下する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# WireGuardを使用してVPNネットワークに接続する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick up &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 正常にVPNネットワークに接続しているかどうかを確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg show&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# VPNネットワークを切断する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick down &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にする手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6を無効にするため、/etc/sysctl.confファイルに以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo vi /etc/sysctl.d/00-ipv6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /etc/sysctl.d/00-ipv6.confファイル&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.all.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.default.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.lo.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記の設定を反映する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&lt;br /&gt;
#: https://www.whatismyip.com/&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;は、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torブラウザのプロキシ設定 ==&lt;br /&gt;
==== SOCKS5プロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: SOCKS 5&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTP / HTTPSプロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: HTTP / HTTPS&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 8080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これを、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPをPrivateVPNに公開することなく、PrivateVPNに接続することを意味する。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、Torネットワークに接続する。&lt;br /&gt;
# Torブラウザで任意のWebサイトを開いて、Torブラウザのアドレスバーの左側にある鍵アイコンを選択する。&lt;br /&gt;
# &amp;quot;ガードノード(エントリーノード)&amp;quot;、&amp;quot;中間&amp;quot;、&amp;quot;出口ノード&amp;quot;を含むTorネットワークの現在の回線情報が表示される。&amp;lt;br&amp;gt;この時、ガードノード(エントリーノード)のIPアドレスをコピーする。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;最初のノードは、ガードノード(エントリーノード)と呼ばれており、これは頻繁に変更されない。&amp;lt;br&amp;gt;ただし、暫く時間が経って変更された場合、または、Torブラウザをアップデートした場合は、ガードノード(エントリーノード)のIPアドレスが変更されるため、&amp;lt;br&amp;gt;都度、OpenVPN設定ファイル内の値を変更する必要がある。&lt;br /&gt;
#  [https://privatevpn.com/client/PrivateVPN-TUN.zip PrivateVPNの公式Webサイト]にアクセスして、PrivateVPNのOpenVPN設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;TorブラウザはTCPプロトコル(443番ポート)のみで動作するため、TCPディレクトリからPrivatVPN-&amp;lt;国名&amp;gt;-&amp;lt;都市名&amp;gt;-TUN-443.ovpnを使用する必要がある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 使用するOpenVPN設定ファイルを開いて、以下に示す内容を追記する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # Windowsの場合&lt;br /&gt;
 # tor options&lt;br /&gt;
 socks-proxy 127.0.0.1 9150&lt;br /&gt;
 route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 net_gateway&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # Linuxの場合&lt;br /&gt;
 # tor options&lt;br /&gt;
 socks-proxy 127.0.0.1 9150&lt;br /&gt;
 route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 &amp;lt;自宅のデフォルトゲートウェイのIPアドレス&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torネットワーク経由でPrivateVPNのOpenVPNサーバに接続する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;上記で編集したOpenVPN設定ファイルをOpenVPNクライアントにインポートして接続する。&amp;lt;br&amp;gt;Torブラウザが起動していることを確認して、問題なく動作しているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivateVPN CLIまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentとの連携 ==&lt;br /&gt;
# まず、PrivateVPNサーバに接続する。&amp;lt;br&amp;gt;この時、[Port forwarding]項目に記載されているポート番号をコピーする。&lt;br /&gt;
# 次に、qBittorrentを起動して、[設定] - 画面左の[接続] - [受信接続に使用するポート]において、上記でコピーしたポート番号を入力する。&lt;br /&gt;
# 最後に、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&amp;lt;br&amp;gt;[設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* PrivateVPNソフトウェアからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* NetworkManagerからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* PrivateVPNソフトウェアからWireGuardで接続している場合&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPNのログ ==&lt;br /&gt;
VPN接続に問題がある場合は、接続ログを送信することにより、問題を迅速に特定して、適切な解決策を得られる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Manager ====&lt;br /&gt;
# VPN接続のログを表示して、生成されたログをコピーする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog &amp;gt; &amp;lt;任意のログファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/chat PrivateVPNの公式Webサイトにあるチャット]にアクセスして、チャットボックスから[Send us a message]ボタンを押下する。&lt;br /&gt;
# 上記で取得したVPN接続のログをチャットに貼り付けて、ユーザのEメールアドレスを入力する。&lt;br /&gt;
# [send]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Mullvad&amp;diff=14596</id>
		<title>VPN - Mullvad</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Mullvad&amp;diff=14596"/>
		<updated>2026-03-24T15:10:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Mullvadは、AirVPNと同様に、プライバシーと技術に非常に強い焦点を当てている、スウェーデンに拠点を置くログなしのVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
プライバシーと技術に非常に強い関心を寄せており、他のプラットフォームのユーザが利用できる完全なオープンソースのGUI Linux VPNクライアントを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
(14日間の返金保証も付いている)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの機能には、完全なDNS保護(IPv6サポート付き)、キルスイッチ、ポートフォワーディングが含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
Torを介したVPNは、手動設定によりサポートされている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DEB形式とRPM形式のインストールファイルは、Mullvadの公式Webサイトからダウンロードできる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ビルド手順を含むソースコードは、[https://github.com/mullvad/mullvadvpn-app MullvadのGitHub]から入手可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linux、Android、iOSに対応しており、最大5台のデバイスを同時に接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadは、以下に示す特徴がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mullvad VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 匿名アカウント || 個人情報 (Eメールさえも) を求めず、現金や暗号通貨による匿名での支払いを推奨している。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログ || ユーザのプライバシーを守るために、Mullvadはユーザの行動を記録しない。&amp;lt;br&amp;gt;Mullvadの長期的な目標は、支払いの詳細も保存しないことである。&lt;br /&gt;
|-&lt;br /&gt;
| 外部監査 || Mullvadは、透明性を提供し、セキュリティの慣行を改善するために、&amp;lt;br&amp;gt;Mullvadのソフトウェアとインフラストラクチャの独立した監査を要求する。&lt;br /&gt;
|-&lt;br /&gt;
| 安全な司法権 || スウェーデンに拠点を置くVPNプロバイダとして、&amp;lt;br&amp;gt;Mullvadに関連する法律は、Mullvadの場所とユーザのプライバシーにとって安全な場所となっている。&lt;br /&gt;
|-&lt;br /&gt;
| 内蔵キルスイッチ || Mullvadがオンの状態で接続に問題が発生した場合、&amp;lt;br&amp;gt;内蔵のキルスイッチが自動的に全てのネットワークトラフィックを停止する。&lt;br /&gt;
|-&lt;br /&gt;
| 有料レビューは存在しない || Mullvadは、有料レビューやアフィリエイトを排除している。&lt;br /&gt;
|-&lt;br /&gt;
| 自社サポートチーム || Mullvadは、ユーザの問題を外部に委託することはない。&amp;lt;br&amp;gt;専任のサポートチームが開発者とともに回答する。&lt;br /&gt;
|-&lt;br /&gt;
| アーリーアダプタ || VPNサービスの標準とされている多くの技術やセキュリティ機能を、常に先駆けて導入している。&lt;br /&gt;
|-&lt;br /&gt;
| 簡単設定 || 初めて使用するユーザでも安心して使用できるように、ソフトウェアの設定は簡単である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デメリットとしては、以下のことが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* サーバの種類が少ない。&lt;br /&gt;
* 無料トライアルが非常に限定的である。&lt;br /&gt;
* 競合他社に比べ少し高価である。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadのノーログポリシーと信頼性 ==&lt;br /&gt;
==== ノーログポリシーの技術的実装 ====&lt;br /&gt;
Mullvadは、ユーザのプライバシーを保護するために、以下に示す技術的な仕組みを採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* RAMオンリーサーバー&lt;br /&gt;
*: 2024年9月に全サーバーで完全移行した。&lt;br /&gt;
*: 揮発性メモリのみで動作し、電源オフでデータが消滅する。&lt;br /&gt;
*: ディスクにデータが残らない仕組みである。&lt;br /&gt;
* 匿名アカウント制&lt;br /&gt;
*: 16桁のランダムなアカウント番号のみで利用できる。&lt;br /&gt;
*: メールアドレス、名前、パスワードは一切不要である。&lt;br /&gt;
* 匿名支払い対応&lt;br /&gt;
*: 現金 (10通貨対応)、Monero、Bitcoin、Bitcoin Cash等による匿名支払いが可能である。&lt;br /&gt;
*: 暗号通貨での支払いは10%割引が適用される。&lt;br /&gt;
* オープンソース&lt;br /&gt;
*: VPNクライアントソフトウェアはGPLv3ライセンスで全コードが公開されている (GitHub)。&lt;br /&gt;
*: バックドアやセキュリティ脆弱性がないことを誰でも検証できる。&lt;br /&gt;
* ワラント・カナリー&lt;br /&gt;
*: 定期的に更新されるページで、秘密の捜査令状が存在しないことを示唆する仕組みを採用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者セキュリティ監査 ====&lt;br /&gt;
Mullvadは、透明性の確保とセキュリティの改善のために、定期的に第三者機関による独立した監査を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mullvad セキュリティ監査実績&lt;br /&gt;
! 年月 !! 監査機関 !! 対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2020年 || Cure53 || インフラ || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2023年 || Cure53 || インフラ || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年6月 || Cure53 || インフラ (4回目) || ユーザの匿名性を損なう問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年10月-11月 || X41 D-Sec || 全プラットフォーム || 脆弱性6件 (重大なし)。良好なセキュリティレベルと評価&lt;br /&gt;
|-&lt;br /&gt;
| 2025年3月 || NCC Group || Androidアプリ || 修正不要で全基準クリア&lt;br /&gt;
|-&lt;br /&gt;
| 2025年8月 || Assured Security || Webアプリ || 重大・高度・中度の脆弱性なし。ノーログ再確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全ての監査報告書は、Mullvad公式Webサイトで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
Mullvadのノーログポリシーは、実際の捜査機関との対応においても有効性が確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年4月18日の家宅捜索&lt;br /&gt;
*: ドイツの恐喝事件に関連した国際司法共助要請を受けたスウェーデン警察国家作戦部門 (NOA) が、6名以上でゴーテンボルグのMullvadオフィスを家宅捜索した。&lt;br /&gt;
*: 目的は、顧客データを含むコンピュータの押収であった。&lt;br /&gt;
*: 結果として、警察は何も押収できなかった。&lt;br /&gt;
*: Mullvadがノーログの仕組みを実地で説明し、検事と協議の上、捜査官は手ぶらで帰った。&lt;br /&gt;
*: Mullvadの弁護士は、&amp;quot;見つかると期待する理由がないものを押収することはスウェーデン法に違反する&amp;quot; と主張した。&lt;br /&gt;
*: これは、創業14年間で初めての捜査令状であった。&lt;br /&gt;
* ユーザデータ提供実績&lt;br /&gt;
*: 2024年〜2026年を含む全期間を通じて、ユーザデータの捜査機関への提出事例はゼロである。&lt;br /&gt;
* Mullvadの公式方針&lt;br /&gt;
*: 政府がユーザを秘密裏に監視するよう強制することに成功した場合、その司法管轄区域でのサービス停止を宣言している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 最新動向 (2024年〜2026年) ====&lt;br /&gt;
* OpenVPN廃止&lt;br /&gt;
*: 2026年1月15日にOpenVPNサポートを完全廃止した。&lt;br /&gt;
*: 全ユーザをWireGuardに統一した。廃止時点で利用者の93%以上が既にWireGuardを使用していた。&lt;br /&gt;
* DAITA (Defense Against AI-guided Traffic Analysis)&lt;br /&gt;
*: AIによるトラフィック分析に対抗する防御機能である。&lt;br /&gt;
*: パケットサイズの統一、ダミートラフィックの挿入、トラフィックパターンの歪曲を行う。&lt;br /&gt;
*: 2025年3月にv2をリリースした。Windows、Linux、macOS、iOS、Androidに対応している。&lt;br /&gt;
* Mullvad Browser&lt;br /&gt;
*: Tor Projectとの共同開発ブラウザである。&lt;br /&gt;
*: Tor Browserのプライバシー強化技術を搭載しつつ、Tor Networkは使用しない。&lt;br /&gt;
*: VPN契約不要で無料利用可能であり、オープンソースである。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
* スウェーデン会計法により、決済記録は会計年度終了から7年間の保持が義務付けられている。これはVPN活動ログではなく、あくまで会計上の記録である。&lt;br /&gt;
* 従来型の定期的な透明性レポートは未発行である。重大事件のみ公式ブログで公開されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadの契約 ==&lt;br /&gt;
Mullvadの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://mullvad.net/ja/ Mullvadの公式Webサイト]へアクセスして、ページ右上にある[使用開始]を選択する。&lt;br /&gt;
# [Mullvadの使用開始手順]ページが開くので、アカウント番号を生成および取得する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;アカウント番号は、ユーザが大切に保管すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# クレジットカード、PayPal、ビットコイン等のいずれかを選択して、金額を支払う。&lt;br /&gt;
# [https://mullvad.net/ja/download/linux/ Mullvadの公式Webサイト]にアクセスして、Mullvadソフトウェアをダウンロードする。&amp;lt;br&amp;gt;Mullvadソフトウェアは、Windows、macOS、Linux、Android、iOSに対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadでは、1ヶ月5ユーロの料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvad GUIのインストール ==&lt;br /&gt;
==== Mullvad GUIの概要 ====&lt;br /&gt;
Systemdを搭載したLinux (x64) ディストリビューションの多くで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Linuxカーネル 4.19以降が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPGキーの署名 (RPMファイルから直接インストールする場合) ====&lt;br /&gt;
署名キーをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadの署名キーのフィンガープリントは、&amp;lt;code&amp;gt;A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF&amp;lt;/code&amp;gt;であり、&amp;lt;br&amp;gt;&lt;br /&gt;
これは、キーサーバまたはMullvadの公式webサイトから直接ダウンロードすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
 wget https://mullvad.net/media/mullvad-code-signing.asc&lt;br /&gt;
 gpg --import mullvad-code-signing.asc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
署名鍵の信頼設定&lt;br /&gt;
署名キーをダウンロードしたら、信頼レベルを&amp;lt;code&amp;gt;ultimate&amp;lt;/code&amp;gt;に設定して、署名キーにより署名された全ての鍵を自動的に検証できるようにする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この設定は省略可能であるが、省略する場合は、各ファイルの検証時にその鍵が信頼できる署名で認証されていないことを示す警告が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GnuPGを実行して、鍵の編集を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 gpg --edit-key A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 gpg (GnuPG) 2.1.13; Copyright (C) 2016 Free Software Foundation, Inc.&lt;br /&gt;
 This is free software: you are free to change and redistribute it.&lt;br /&gt;
 There is NO WARRANTY, to the extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
 pub  rsa4096/D5A1D4F266DE8DDF&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: SC &lt;br /&gt;
      trust: unknown       validity: unknown&lt;br /&gt;
 sub  rsa4096/C187D22C089EF64E&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: E  &lt;br /&gt;
 sub  rsa4096/A26581F219C8314C&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: S  &lt;br /&gt;
 [ unknown] (1). Mullvad (code signing) &amp;lt;admin@mullvad.net&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
鍵の信頼設定を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 gpg&amp;gt; trust&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 pub  rsa4096/D5A1D4F266DE8DDF&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: SC&lt;br /&gt;
      trust: unknown       validity: unknown&lt;br /&gt;
 sub  rsa4096/C187D22C089EF64E&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: E &lt;br /&gt;
 sub  rsa4096/A26581F219C8314C&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: S &lt;br /&gt;
 [ unknown] (1). Mullvad (code signing) &amp;lt;admin@mullvad.net&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Please decide how far you trust this user to correctly verify other users&#039; keys&lt;br /&gt;
 (by looking at passports, checking fingerprints from different sources, etc.)&lt;br /&gt;
 &lt;br /&gt;
   1 = I don&#039;t know or won&#039;t say&lt;br /&gt;
   2 = I do NOT trust&lt;br /&gt;
   3 = I trust marginally&lt;br /&gt;
   4 = I trust fully&lt;br /&gt;
   5 = I trust ultimately&lt;br /&gt;
   m = back to the main menu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
信頼レベルを&amp;lt;code&amp;gt;Ultimate&amp;lt;/code&amp;gt;に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 Your decision? 5&lt;br /&gt;
 Do you really want to set this key to ultimate trust? (y/N) y&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 pub  rsa4096/D5A1D4F266DE8DDF      created: 2016-10-27  expires: never       usage: SC&lt;br /&gt;
      trust: ultimate      validity: unknown&lt;br /&gt;
 sub  rsa4096/C187D22C089EF64E&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: E &lt;br /&gt;
 sub  rsa4096/A26581F219C8314C&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: S &lt;br /&gt;
 [ unknown] (1). Mullvad (code signing) &amp;lt;admin@mullvad.net&amp;gt;&lt;br /&gt;
 Please note that the shown key validity is not necessarily correct&lt;br /&gt;
 unless you restart the program.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GnuPGを終了する。&amp;lt;br&amp;gt;&lt;br /&gt;
 gpg&amp;gt; q&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadソフトウェアのインストール ====&lt;br /&gt;
===== RPMファイルから直接インストールする場合 =====&lt;br /&gt;
[https://mullvad.net/ja/download/linux/ Mullvadの公式Webサイト]から、Mullvad GUIをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install ./MullvadVPN-&amp;lt;バージョン&amp;gt;_x86_64.rpm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RPMファイルを展開して手動でインストールする場合 (SUSE推奨) =====&lt;br /&gt;
[https://mullvad.net/ja/download/linux/ Mullvadの公式Webサイト]から、Mullvad GUIをダウンロードする。&lt;br /&gt;
ダウンロードしたRPMファイルを展開する。&lt;br /&gt;
 rpm2cpio MullvadVPN-&amp;lt;バージョン&amp;gt;_x86_64.rpm | cpio -id &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
展開したディレクトリを任意のインストールディレクトリに配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mv MullvadVPN-&amp;lt;バージョン&amp;gt;_x86_64 Mullvad_VPN&lt;br /&gt;
 mv Mullvad_VPN &amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアのmullvad-problem-report実行ファイルのシンボリックリンクを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;&lt;br /&gt;
 ln -sf /&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/&#039;Mullvad VPN&#039;/resources/mullvad-problem-report \&lt;br /&gt;
        /&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin/mullvad-problem-report&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアのデーモンファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/systemd/system/mullvad-daemon.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/systemd/system/mullvad-daemon.serviceファイル&lt;br /&gt;
 &lt;br /&gt;
 # Systemd service unit file for the Mullvad VPN daemon&lt;br /&gt;
 # testing if new changes are added&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Mullvad VPN daemon&lt;br /&gt;
 Before=network-online.target&lt;br /&gt;
 After=mullvad-early-boot-blocking.service NetworkManager.service systemd-resolved.service&lt;br /&gt;
 &lt;br /&gt;
 StartLimitBurst=5&lt;br /&gt;
 StartLimitIntervalSec=20&lt;br /&gt;
 RequiresMountsFor=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/Mullvad\x20VPN/resources/&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=1&lt;br /&gt;
 ExecStart=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin/mullvad-daemon -v --disable-stdout-timestamps&lt;br /&gt;
 Environment=&amp;quot;MULLVAD_RESOURCE_DIR=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/Mullvad VPN/resources/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/systemd/system/mullvad-early-boot-blocking.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/systemd/system/mullvad-early-boot-blocking.serviceファイル&lt;br /&gt;
 &lt;br /&gt;
 # Systemd service unit file to block all traffic during early boot.&lt;br /&gt;
 # This is required since almost no distributions use a `network-pre.target`,&lt;br /&gt;
 # which implies it&#039;s difficult to ensure that the daemon will start and block&lt;br /&gt;
 # traffic before any network configuration will be applied.&lt;br /&gt;
 #&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Mullvad early boot network blocker&lt;br /&gt;
 DefaultDependencies=no&lt;br /&gt;
 Before=basic.target mullvad-daemon.service&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=oneshot&lt;br /&gt;
 ExecStart=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin/mullvad-daemon --initialize-early-boot-firewall&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=mullvad-daemon.service&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デーモンファイルを再読み込みする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアのデスクトップエントリファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.local/share/applications/Mullvad_VPN.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.local/share/applications/Mullvad_VPN.desktopファイル&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Name=Mullvad VPN&lt;br /&gt;
 Comment=Mullvad VPN client&lt;br /&gt;
 Exec=&amp;quot;/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/Mullvad VPN/mullvad-vpn&amp;quot; %U&lt;br /&gt;
 Icon=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/share/icons/hicolor/128x128/apps/mullvad-vpn.png&lt;br /&gt;
 Categories=Network;&lt;br /&gt;
 Keywords=internet;security;vpn;&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 StartupWMClass=Mullvad VPN&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
~/.profileファイル等に、環境変数&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.profile&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.profileファイル&lt;br /&gt;
 &lt;br /&gt;
 export PATH=&amp;quot;/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin:$PATH&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアが正常に起動するかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
まず、Mullvadソフトウェアのデーモンを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl start mullvad-daemon.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、Mullvadソフトウェアを起動して、任意のMullvadのVPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadソフトウェアのアンインストール ====&lt;br /&gt;
===== RPMファイルから直接インストールしている場合 =====&lt;br /&gt;
Mullvad GUIをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper remove mullvad-vpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RPMファイルを展開して手動でインストールしている場合 =====&lt;br /&gt;
Mullvadソフトウェアおよび設定ファイル等を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo rm -r /etc/mullvad-vpn /etc/resolv.conf.mullvadbackup /etc/systemd/system/mullvad-daemon.service \&lt;br /&gt;
            /&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt; \&lt;br /&gt;
            ~/.local/share/applications/Mullvad_VPN.deskop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mullvad-daemonが起動しない場合 ====&lt;br /&gt;
まず、mullvad-daemonを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl start mullvad-daemon&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
mullvad-daemonが起動しない場合、mullvad-daemonファイルに&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;オプションを付加して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo /opt/&#039;Mullvad VPN&#039;/resources/mullvad-daemon -v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mullvad-daemon.serviceが見つからない場合 ====&lt;br /&gt;
これは、/optディレクトリを独自のパーティションにインストールした場合に発生する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この場合、/opt/Mullvad VPN/resources/mullvad-daemon.serviceファイルを、/etc/systemd/systemディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # シンボリックリンクを削除する&lt;br /&gt;
 sudo rm /etc/systemd/systemmullvad-daemon.service&lt;br /&gt;
 &lt;br /&gt;
 # mullvad-daemon.serviceファイルをコピーする&lt;br /&gt;
 sudo cp /opt/&#039;Mullvad VPN&#039;/resources/mullvad-daemon.service /etc/systemd/system&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadの使用手順 : NetworkManagerを使用する場合 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Mullvadは2026年1月15日にOpenVPNサポートを廃止して、WireGuardに完全移行した。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順は、OpenVPN廃止以前の情報であり、現在はMullvadソフトウェアからWireGuardで接続することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvad(OpenVPN)を設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOME / KDE 共通&lt;br /&gt;
# [https://mullvad.net/account/#/openvpn-config/?platform=android Mullvadの公式Webサイト]にアクセスして、ログインする。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;プラットフォームは、&amp;quot;Android&amp;quot;を選択する必要があることに注意する。&amp;lt;/u&amp;gt;&lt;br /&gt;
# [OpenVPN 設定ファイルジェネレーター]ページが開くので、プラットフォーム、使用するサーバがある国名および都市名、ポートを選択する。&lt;br /&gt;
# [zipアーカイブをダウンロード]を選択して、OpenVPNファイルをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;unzip config.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルは、以下に示すファイルを含む。&amp;lt;br&amp;gt;接続先の国を変更する場合、再度、アカウントページで使用する場所を設定して、新しいOpenVPNの設定ファイルをダウンロードする必要がある。&lt;br /&gt;
#* mullvad_&amp;lt;接続先コード名&amp;gt;.ovpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/pre&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、国-場所-サーバアドレスである。&amp;lt;br&amp;gt;例. UnitedStates.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#*: 例. &amp;lt;接続先コード名&amp;gt;.mullvad.net&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Mullvadアカウント番号を（スペースなしで）入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;　と入力する。&lt;br /&gt;
#*: ［このユーザにのみパスワードを保存する(暗号化済み）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;　とラベル付けされていることを確認する。&lt;br /&gt;
#* [ユーザ証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;client.crt&amp;lt;/code&amp;gt;　とラベル付けされていることを確認する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で追加したMullvadのOpenVPN設定が作成されて、MullvadのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなMullvadに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. mullvad_&amp;lt;接続先コード名&amp;gt;.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にMullvadのVPN接続が表示されるので、MullvadのVPN接続を選択する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#*: 例. &amp;lt;接続先コード名&amp;gt;.mullvad.net&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Mullvadアカウント番号を（スペースなしで）入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;と入力する。&lt;br /&gt;
#*: ［このユーザにのみパスワードを保存する(暗号化済み）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、MullvadのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、接続に問題がある場合、&amp;lt;u&amp;gt;/etc/NetworkManager/NetworkManager.conf&amp;lt;/u&amp;gt; ファイルを開いて、&amp;lt;code&amp;gt;dns=dnsmasq&amp;lt;/code&amp;gt;　の行をコメントする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/NetworkManager/NetworkManager.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/NetworkManager/NetworkManager.confファイル&lt;br /&gt;
 &lt;br /&gt;
 # 編集前&lt;br /&gt;
 dns=dnsmasq&lt;br /&gt;
 &lt;br /&gt;
 # 編集後&lt;br /&gt;
 #dns=dnsmasq&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Network Managerを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systtemctl restart network-manager&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadのコマンド ==&lt;br /&gt;
ターミナルを起動して、&amp;lt;code&amp;gt;mullvad&amp;lt;/code&amp;gt; コマンドを実行することにより、サブコマンドの全リストとその使用法が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadの一般的なコマンドを、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadアカウントの指定 ====&lt;br /&gt;
また、&amp;lt;code&amp;gt;mullvad account&amp;lt;/code&amp;gt; コマンドを実行することにより、他のアカウント関連コマンドの一覧が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad account &amp;lt;Mullvadアカウント&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アカウント情報の表示 ====&lt;br /&gt;
ユーザのアカウント番号とアカウントの有効期限が表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad account get&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバロケーションの一覧表示 ====&lt;br /&gt;
利用可能な国および都市のリストを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad relay list&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続先の選択 ====&lt;br /&gt;
 mullvad relay set location &amp;lt;国名&amp;gt; &amp;lt;都市名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 例. スウェーデン（se）のマルメ市（mma）にあるサーバに接続&lt;br /&gt;
 mullvad relay set location se mma&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 特定のサーバの選択する ====&lt;br /&gt;
 mullvad relay set location &amp;lt;国名&amp;gt; &amp;lt;都市名&amp;gt; &amp;lt;都市のグループに所属するサーバ名&amp;gt;&lt;br /&gt;
 または&lt;br /&gt;
 mullvad relay set hostname &amp;lt;都市のグループに所属するサーバ名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 例.  スウェーデン（se）のマルメ市（mma）にあるse-mma-001サーバに接続&lt;br /&gt;
 mullvad relay set location se mma se-mma-001&lt;br /&gt;
 または&lt;br /&gt;
 mullvad relay set hostname se-mma-001&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPNに接続 ====&lt;br /&gt;
選択したサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPNの切断 ====&lt;br /&gt;
 mullvad disconnect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバリストの強制更新 ====&lt;br /&gt;
 mullvad relay update&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続状態の確認 ====&lt;br /&gt;
 mullvad status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PCの起動時に自動接続する ====&lt;br /&gt;
PCの起動時にMullvadを起動および接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad auto-connect set on&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動接続の設定を無効にする。&amp;lt;Br&amp;gt;&lt;br /&gt;
 mullvad auto-connect set off&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== LANアクセスを有効にする ====&lt;br /&gt;
 mullvad lan set allow&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 問題を報告する ====&lt;br /&gt;
まず、匿名化されたログファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvad社に送信する前に、ログファイルを見ることができるオプションがある。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad-problem-report collect --output report.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、ログファイルを送信する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad-problem-report send --report report.log --email your@email.address --message &amp;quot;Write a description of your problem.&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
任意ではあるが、問題の詳細を記入されることを強く推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、メールアドレスの記入は必要無いが、Mullvad社からの返信を希望する場合は、メールアドレスの記入が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スプリットトンネリング (Linuxのみ) ====&lt;br /&gt;
スプリットトンネリングは、一部のソフトウェアをVPNから除外して、通常のインターネット接続を使用するものである。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、例えば、VPNサービスをブロックしている一部のWebサイトにアクセスできるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* mullvad-excludeを使用する場合&lt;br /&gt;
*: Mullvadから除外された新しいプロセスを開始する場合、以下のコマンドを実行する。&lt;br /&gt;
*: &amp;lt;pre&amp;gt;mullvad-exclude &amp;lt;プログラム名&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* mullvad split-tunnelを使用する場合&lt;br /&gt;
*: これは、プログラムのPID(プロセスID)を使用して動作する。&lt;br /&gt;
*: 実行中のプログラムのPIDを調べる場合、&amp;lt;code&amp;gt;pgrep&amp;lt;/code&amp;gt; コマンドを実行する。&lt;br /&gt;
** 既に実行中のプロセスをMullvadから除外する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid add &amp;lt;PID&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** 現在除外されている全てのPIDの一覧を表示する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid list&amp;lt;/pre&amp;gt;&lt;br /&gt;
** 以前に除外したプロセスを復元する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid delete &amp;lt;PID&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** 以前に除外したプロセスを全て復元する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid clear&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 広告、トラッカー、マルウェアをブロックする ====&lt;br /&gt;
広告、トラッカー、マルウェアのDNSフィルタリングを有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ヘルプを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default --help&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全てのフィルタを有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
いくつかのフィルターのみを有効にする場合、引数のいくつかを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default --block-ads --block-malware --block-trackers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フィルタリングをリセットする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムDNSサーバを使用する ====&lt;br /&gt;
カスタムDNSサーバを設定すると、広告、トラッカー、マルウェアのブロックが上書きできる。&amp;lt;br&amp;gt;&lt;br /&gt;
パブリックDNSサーバは、WireGuardプロトコルを使用している場合のみ使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムDNSサーバを設定するには、1.1.1.1(Cloudfrare)を使用するサーバIPに置き換える。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set custom 1.1.1.1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムDNSサーバの設定をリセットする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadの設定のリセット ====&lt;br /&gt;
これは、全ての設定を工場出荷時の状態に戻して、ソフトウェアのログとキャッシュファイルを削除する。そして、VPNを切断して、ログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
また、リセットする前に、確認画面が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad factory-reset&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Mullvadは2026年1月15日にOpenVPNサポートを廃止した。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順はOpenVPN廃止以前の情報であり、現在は使用できない可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
他のソフトウェアがTorブラウザのプロキシ経由でインターネットに接続できるように連携する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、&amp;lt;u&amp;gt;Tor経由でMullvadに接続するTor経由のVPN&amp;lt;/u&amp;gt;であり、Mullvadは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、MullvadのSOCKS5プロキシを使用するように設定されていないソフトウェアは、VPNやTorを全く使用せずに直接インターネットに接続される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenVPNをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# TorブラウザのインストールディレクトリにあるTor/TorBrowser/Data/Tor/torrc-defaultsファイルを開いて、&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;CookieAuthentication 1&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;CookieAuthentication 0&amp;lt;/code&amp;gt; に編集する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 cd /&amp;lt;Torブラウザのインストールディレクトリ&amp;gt;/Tor/TorBrowser/Data/Tor&lt;br /&gt;
 &lt;br /&gt;
 vi torrc-defaults&lt;br /&gt;
 &lt;br /&gt;
 # 編集前&lt;br /&gt;
 CookieAuthentication 1&lt;br /&gt;
 &lt;br /&gt;
 # 編集後&lt;br /&gt;
 CookieAuthentication 0&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# MullvadのOpenVPN設定ファイルを[https://mullvad.net/account/#/openvpn-config/?platform=linux Mullvadの公式Webサイト]からダウンロードする。&amp;lt;br&amp;gt;この時、プラットフォームはLinux、ポートはTCP 443番を選択する。&amp;lt;br&amp;gt;これは、TorはTCPでのみ動作するためである。&lt;br /&gt;
# ダウンロードしたファイルを解凍して、OpenVPN設定ファイルに以下に示す内容を追記する。&amp;lt;br&amp;gt;この時、OpenVPN設定ファイルをmullvad_tor.confのような一意の名前に変更することを推奨する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;vi mullvad_XX.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 route-nopull&lt;br /&gt;
 route 10.8.0.1 255.255.255.255&lt;br /&gt;
 socks-proxy 127.0.0.1 9150&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# ダウンロードしたMullvadのOpenVPN設定ファイルにある &amp;lt;u&amp;gt;update-resolv-conf&amp;lt;/u&amp;gt; ファイルを、&amp;lt;u&amp;gt;/etc/openvpn&amp;lt;/u&amp;gt; ディレクトリにコピーする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo cp update-resolv-conf /etc/openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torブラウザを起動する。&lt;br /&gt;
# 上記で編集したOpenVPN設定ファイルを使用して、OpenVPNを&amp;lt;u&amp;gt;コマンドから&amp;lt;/u&amp;gt;起動する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 sudo openvpn --config &amp;lt;OpenVPNの設定ファイル&amp;gt;&lt;br /&gt;
 # 例. &amp;lt;code&amp;gt;sudo openvpn --config mullvad_sg_sin_tor.conf&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://mullvad.net/guides/socks5-proxy/ SOCKS5のガイド]に従って、FireFoxのSocks5プロキシを設定する。&lt;br /&gt;
# &amp;lt;u&amp;gt;Firefox (Torブラウザではないことに注意する)&amp;lt;/u&amp;gt; から[https://mullvad.net/check Connection check]にアクセスして、自身のIPアドレスがMullvadのIPアドレスを示していることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VivaldiからVPN over Tor接続を行う場合の手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、この方法は、VPN over Tor接続を切断した後、ネットワークマネージャを再起動する手順が必要となることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、&amp;lt;code&amp;gt;resolvconf&amp;lt;/code&amp;gt; コマンドをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openresolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、ダウンロードしたMullvadのOpenVPN設定ファイルにある&amp;lt;u&amp;gt;update-resolv-confファイル&amp;lt;/u&amp;gt;を編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sed -e &amp;quot;s/\/sbin\/resolvconf/\/usr\/sbin\/resolvconf/g&amp;quot; update-resolv-conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;u&amp;gt;update-resolv-conf&amp;lt;/u&amp;gt; ファイルを &amp;lt;u&amp;gt;/etc/openvpn&amp;lt;/u&amp;gt; ディレクトリにコピーする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo cp update-resolv-conf /etc/openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Vivaldiに拡張機能である[https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=ja Proxy SwitchyOmega]をインストールする。&lt;br /&gt;
# Proxy SwitchyOmegaのアイコンから[Options]を選択する。&lt;br /&gt;
# Proxy SwitchyOmegaの設定ページ左にある[proxy] - 設定ページ右にある[Proxy servers]から、以下に示す設定を行う。&lt;br /&gt;
#* [Protocol]プルダウン&lt;br /&gt;
#*: SOCKS5&lt;br /&gt;
#* [Server]&lt;br /&gt;
#*: 10.8.0.1&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
# Proxy SwitchyOmegaの設定ページ左にある[Apply changes]を選択する。&lt;br /&gt;
# Proxy SwitchyOmegaのアイコンから[proxy]を選択する。&lt;br /&gt;
# [https://mullvad.net/check Connection check]にアクセスして、自身のIPアドレスがMullvadのIPアドレスを示していることを確認する。&lt;br /&gt;
# &amp;lt;u&amp;gt;VPN over Tor接続を切断した後、ネットワークマネージャを再起動する。&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MullvadソフトウェアまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentの使用 ==&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
Torrentプロトコルは、以下の手順でより安全に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentクライアントの設定のみ記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、uTorrent、Vuze、BitComet等のクライアントは、オープンソースではなく、アドウェアやジャンクウェアが含まれていたり、優れたプライバシー設定が施されていないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardとOpenVPNを切り替えた場合、ネットワークインターフェイスを再バインドして、qBittorrentを再起動する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、SOCKS5を使用している場合は、WireGuardまたはOpenVPNの使用に応じて、IPアドレスを変更する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Mullvadアプリを起動して、VPNを接続する。&lt;br /&gt;
# qBittorrentを起動して、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* OpenVPNを使用したMullvadソフトウェア (MullvadソフトウェアからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* OpenVPNスタンドアロン (NetworkManagerからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardを使用したMullvadソフトウェア (MullvadソフトウェアからWireGuardで接続している場合)&lt;br /&gt;
#*: wg-mullvad&lt;br /&gt;
#* WireGuardユーザ空間を使用したMullvadソフトウェア&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardスタンドアロン&lt;br /&gt;
#*: mlvd-xx&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvad GUIを使用している場合は、Mullvad GUIのメイン画面から[設定] - [詳細設定]から、[常にVPNを必要とする]を有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、誤って接続を解除した場合、インターネットを遮断することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インターネットリークの確認 ====&lt;br /&gt;
[https://mullvad.net/ja/check/ Mullvadの接続確認ページ]にアクセスして、[Torrentチェック]タブを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[UDP］および［HTTP］を選択して、インターネットリークのテストを開始する。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Bittorrentクライアントにおいて、SOCKS5を使用している場合、このテストは機能しないことに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング (ポート転送) ====&lt;br /&gt;
qBittorrentを起動して、[接続] - [受信接続に使用するポート]にポートを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、シードが向上する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5が有効な場合、この機能は無効になることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bittorrentクライアントへのポートフォワーディングの詳細を知りたい場合は、ポートフォワードガイドを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のエラー ====&lt;br /&gt;
qBittorrentにおいて、SOCKS5プロキシを有効にした場合、qBittorrentがオフラインと表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロトコルはポートフォワーディングをサポートしないため、トラッカーレスのTorrentを使用する場合は、DHTを有効にする必要があるかもしれない。&amp;lt;br&amp;gt;&lt;br /&gt;
そうでない場合は、SOCKS5プロキシを無効にする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Ivacy_VPN&amp;diff=14595</id>
		<title>VPN - Ivacy VPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Ivacy_VPN&amp;diff=14595"/>
		<updated>2026-03-24T14:47:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Ivacy VPNは、2007年にシンガポールの企業PMG Pte. Ltd.により創業されたVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
2010年にはVPN業界の定番となったスプリットトンネリングのような優れたセキュリティ機能を提供していた。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPNは、100以上のロケーションに5700以上のサーバを提供しており、ユーザはセキュリティや匿名性を損なうことなく、オンライン上のあらゆるコンテンツにアクセスすることができた。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2024年8月、Ivacy VPNはPureVPNに買収・統合され、現在はIvacy Powered by PureVPNとして運営されている。&amp;lt;br&amp;gt;&lt;br /&gt;
これに伴い、Ivacy VPN単体での新規契約は終了しており、新規ユーザはPureVPNを通じて契約する形となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
既存のIvacyユーザはPureVPNの機能にアクセス可能であるが、ライフタイム購読を持つユーザは5年プランへの移行を求められている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、IvacyとPureVPNは、元々パキスタンの企業Gaditekが親会社であり、両社は以前から同じグループ企業として運営されていた。&amp;lt;br&amp;gt;&lt;br /&gt;
PMG Pte. Ltd.はシンガポール登記であるが、LinkedInに掲載されている従業員の大多数はパキスタン在住であり、実質的な運営拠点はパキスタンであるとの指摘がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ivacy VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 256ビット暗号化 || 最大256ビットの暗号化を提供し、セキュリティの侵入を不可能にする。&amp;lt;br&amp;gt;インターネットトラフィックを暗号化し、サイバー犯罪者を寄せ付けないセキュリティプロトコルを楽しむことができる。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || オンライン上のプライバシーを守るために、ログを残さないという明確なポリシーを持つ。&lt;br /&gt;
|-&lt;br /&gt;
| ISPスロッティングの回避 || ISPスロッティングを回避するため、IvacyはユーザのIPアドレスをマスクし、ISPスロットリングを回避する。&lt;br /&gt;
|-&lt;br /&gt;
| インターネットキルスイッチ || インターネットキルスイッチ機能は、接続が切断されたことを検出すると、直ちにインターネットを停止する。&amp;lt;br&amp;gt;これにより、常にプライベートな状態を保つことができる。&lt;br /&gt;
|-&lt;br /&gt;
| 専用IP || 専用IPでは、IPアドレスをホワイトリストに登録できる。&amp;lt;br&amp;gt;企業アカウントや一般的なオンラインアカウントへの不正アクセスを防止し、セキュリティを強化する。&lt;br /&gt;
|-&lt;br /&gt;
| スプリット・トンネリング || Ivacy VPNはスプリット・トンネリングのパイオニアである。&amp;lt;br&amp;gt;ローカルと海外のコンテンツに同時にアクセスできる。&amp;lt;br&amp;gt;ローカルLANを経由しながら、VPN経由でコンテンツにアクセスできる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
Ivacy VPNはゼロログポリシーを掲げており、オンライン上のプライバシーを守るために一切のログを残さないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、その信頼性には複数の懸念事項が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式のノーログポリシー ====&lt;br /&gt;
Ivacy VPNの公式プライバシーポリシーでは、以下に示すデータを記録しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* オンラインブラウジング活動&lt;br /&gt;
* 接続ログ&lt;br /&gt;
* 割り当てられたVPN IPアドレス&lt;br /&gt;
* 元のIPアドレス&lt;br /&gt;
* ブラウジング履歴&lt;br /&gt;
* 送受信トラフィック&lt;br /&gt;
* 接続時間&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 実際に収集されるデータ ====&lt;br /&gt;
一方、プライバシーポリシーでは以下に示すデータを収集すると明記されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 氏名、メールアドレス、支払い情報&lt;br /&gt;
* 接続元の国&lt;br /&gt;
* クラッシュレポートおよびパフォーマンスデータ (Firebase / Crashlytics経由)&lt;br /&gt;
* 合計帯域幅使用量&lt;br /&gt;
* ログイン失敗の試み&lt;br /&gt;
* Webサイトアクセスに関するGoogle Analyticsデータ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Firebase / Crashlyticsを経由したデータは米国に送信される可能性があり、Google Analyticsも米国法の対象となるため、&amp;lt;br&amp;gt;&lt;br /&gt;
完全なプライバシー保護とは言えない状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 独立監査の欠如 ====&lt;br /&gt;
Ivacy VPNは公式サイトで定期的に監査を受けていると主張しているが、公開された独立監査報告書は一切存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
複数のレビューサイトがIvacyに直接問い合わせたところ、監査の詳細や実施者の開示を拒否している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、競合VPNとの比較を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログ監査の比較&lt;br /&gt;
! VPNプロバイダ !! 独立監査 !! ワラントカナリー !! 透明性レポート&lt;br /&gt;
|-&lt;br /&gt;
| Ivacy VPN || なし || なし || なし&lt;br /&gt;
|-&lt;br /&gt;
| ExpressVPN || あり (KPMG) || なし || あり&lt;br /&gt;
|-&lt;br /&gt;
| Private Internet Access || あり (Deloitte) || なし || あり&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || あり || あり || あり&lt;br /&gt;
|-&lt;br /&gt;
| Proton VPN || あり || なし || あり&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、Ivacy VPNはIoXT (Internet of Secure Things) の認証を受けているが、これはAndroidアプリのセキュリティ基準の確認に限定されており、ノーログポリシーの検証ではない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2017年: PureVPNによるFBIへのログ提供事件 ====&lt;br /&gt;
Ivacy VPNの親会社グループであるPureVPNは、2017年にノーログポリシーに反してFBIにユーザログを提供した前科がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
事件の概要を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 2017年10月、米国マサチューセッツ州のRyan S. Linがサイバーストーキング罪で逮捕された。&lt;br /&gt;
* PureVPNは「ノーログポリシー」を掲げていたにもかかわらず、FBIの捜査に対してユーザのアクセスログを提供した。&lt;br /&gt;
* 具体的には、接続時刻、VPN接続元のIPアドレス、2つの異なる元IPアドレスから同一アカウントでアクセスされたことの確認情報が提出された。&lt;br /&gt;
* PureVPNは後に、&amp;quot;ユーザアクティビティはログしないが、IPアドレスは記録する&amp;quot; と弁明した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IvacyとPureVPNは元々同じ親会社 (Gaditek) 傘下であり、同じサーバインフラを共有していたことが研究者により確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
2024年8月にIvacyがPureVPNに正式に買収・統合されたことで、PureVPNのデータ管理ポリシーがIvacyユーザにも適用される可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2023年: コード署名証明書の盗用事件 ====&lt;br /&gt;
2023年5月、Ivacy VPNの運営元であるPMG Pte. Ltd.のコード署名証明書が中国のAPTグループ Bronze Starlight により盗用されていることが判明した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 盗用された証明書は、東南アジアのギャンブル業界を標的としたマルウェア配布に使用された。&lt;br /&gt;
* SentinelLabsの分析によれば、PMG Pte. Ltd.の署名キーがどの時点かで盗まれたと推測されている。&lt;br /&gt;
* Ivacy VPNおよびPMG Pte. Ltd.は、この事件についていかなる公式声明も発表しておらず、証明書がどのように盗まれたかは不明のままである。&lt;br /&gt;
* 証明書はDigiCertにより無効化された。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件は、Ivacy VPNのセキュリティ管理能力そのものに疑問を投げかけるものである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 所有権の不透明性 ====&lt;br /&gt;
Ivacy VPNの企業構造には透明性の問題が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 公式にはシンガポールのPMG Pte. Ltd.が運営元と主張しているが、実質的にはパキスタンの企業Gaditek (またはDisrupt.com) が支配していた。&lt;br /&gt;
* GaditekはIvacy VPNとの関係をWebサイトから意図的に削除している。&lt;br /&gt;
* 2019年にIvacy VPNが公開した透明性ページは、架空のPRマネージャーとジャーナリストの対話を記載したものであり、セキュリティ専門家やレビューサイトから &amp;quot;明らかに虚構&amp;quot; と批判された。&lt;br /&gt;
* Ivacy VPNが複数のVPNレビューサイトを運営し、有利な評価と引き換えにライフタイム契約を提供していた疑惑も存在する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 5 Eyes同盟との関係 ====&lt;br /&gt;
Ivacy VPNの本社所在地であるシンガポールは、Five Eyes / Nine Eyes / Fourteen Eyes同盟の正式なメンバーではない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、スノーデンによるリーク文書により、シンガポールはFive Eyesとの実質的な情報共有協力を行っている第三者貢献国であることが示唆されている。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、シンガポールの法的管轄権に基づく情報開示要求に対して、完全な独立性は期待できない可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
以上に示す調査結果から、Ivacy VPNのノーログポリシーの信頼性には重大な懸念がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 独立した第三者監査が一切公開されておらず、ノーログポリシーの検証が不可能である。&lt;br /&gt;
* 親会社グループのPureVPNが「ノーログ」を偽りFBIにログを提供した前科がある。&lt;br /&gt;
* 企業構造の不透明性と所有権の隠蔽が指摘されている。&lt;br /&gt;
* ワラントカナリーおよび透明性レポートが存在しない。&lt;br /&gt;
* コード署名証明書の盗用事件により、セキュリティ管理能力に疑問がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プライバシーを重視する場合は、独立監査済みかつ透明性の高い代替VPN (Mullvad、Proton VPN、ExpressVPN等) の検討を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ivacy VPNの契約 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;2024年8月のPureVPNとの統合により、Ivacy VPN単体での新規契約は終了している。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、新規ユーザはPureVPN (https://www.purevpn.com/) を通じて契約する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;以下に示す契約手順は、統合前の契約手順を参考として記載するものである。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPNの契約手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ivacy.com/ Ivacy VPNの公式Webサイト]へアクセスして、ページにある[GET STARTED]を選択する。&lt;br /&gt;
# [Select Ivacy&#039;s exclusive pricing plan]では、月間または年間のプランを選択する。&lt;br /&gt;
# [Create Your Account]では、Eメールアドレスを入力する。&lt;br /&gt;
# [Security Add-Ons]はオプションである。飛ばしても構わない。&lt;br /&gt;
# [Select Payment Method]では、支払い方法 (クレジットカード、PayPal、Bitpay等) を入力して、[PROCEED TO PAYMENT]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPNの料金は、年間47.76ドル(更新時も同様)、5年60ドル、1ヶ月9.95ドルであった。(2023年7月時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、既存のIvacyユーザはPureVPNへの移行が行われており、ライフタイム購読を持つユーザは5年プランへの移行を求められている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ivacy VPNの設定 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;2024年8月のPureVPNとの統合により、以下の設定手順やダウンロードURLが変更されている可能性がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;最新の設定方法はPureVPNの公式サイトを確認すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPN (OpenVPN) を設定するには、以下に示す手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== NetworkManagerを使用する場合 ====&lt;br /&gt;
===== GNOMEの場合 =====&lt;br /&gt;
# [https://www.ivacy.com/ Ivacy VPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget https://ivacy.s3.amazonaws.com/support/OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;unrar OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[有線接続]プルダウンから[有線設定]を選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&lt;br /&gt;
#: OpenVPNファイルの命名形式は、国-&amp;lt;TCP&amp;gt;、または、国-OB-&amp;lt;UDP&amp;gt;である。&lt;br /&gt;
#: 例. SG_TCP.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: IvacyVPN OpenVPN&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: [https://support.ivacy.com/servers-list/ Ivacy VPNの公式Webサイト]を確認して、ゲートウェイを入力する。(例: de2-ovpn-udp.dns2use.com)&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Ivacy VPNのログインユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: Ivacy VPNのログインパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で選択したIvacy VPNのOpenVPN設定が作成されて、Ivacy VPNのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなIvacy VPNに変更されたことを確認する場合は、http://ipchicken.com にアクセスする。&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== KDEの場合 =====&lt;br /&gt;
# [https://support.ivacy.com/vpnusecases/openvpn-files-windows-routers-ios-linux-and-mac/ Ivacy VPNの公式Webサイト]にアクセスして、&amp;lt;br&amp;gt;OpenVPN設定ファイル (OpenVPN Files with Certificates) をダウンロードする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget https://ivacy.s3.amazonaws.com/support/OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;unrar OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install openvpn NetworkManager-openvpn plasma-nm-openvpn&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. SG_TCP.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にIvacy VPNのVPN接続が表示されるので、IvacyVPNと入力する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す設定を行う。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Ivacy VPNのログインユーザ名を入力する。&lt;br /&gt;
#*: &amp;lt;u&amp;gt;これは、登録したメールアドレスではなく、ivacy0s〇〇〇〇のような名前のユーザ名であることに注意する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: &amp;lt;u&amp;gt;もし、ユーザ名が分からない場合は、[https://www.ivacy.com/ Ivacy VPNの公式Webサイト]にアクセスして、ライブチャット (画面右下に表示される) で問い合わせること。&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: または、https://member.ivacy.com/manual-configration にアクセスして、各ファイルのダウンロード時に表示されるユーザ名を使用する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: Ivacy VPNのログインパスワードを入力する。&lt;br /&gt;
#*: これは、アカウント開設時のパスワードである。&lt;br /&gt;
#*: [このユーザーのみにパスワードを保存する]、または、[すべてのユーザーにパスワードを保存]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: Ivacy VPNのOpenVPNファイルをインポートした時に自動生成されるpemファイルを選択する。(OpenVPNファイルごとにpemファイルが生成されることに注意する)&lt;br /&gt;
#*: このファイルは、&amp;lt;u&amp;gt;~/.cert/nm-openvpn/&amp;lt;/u&amp;gt; ディレクトリに存在し、&amp;lt;u&amp;gt;&amp;lt;接続先ロケーション&amp;gt;_TCP-ca.pem&amp;lt;/u&amp;gt; という名前のファイルである。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [カスタムゲートウェイポートを使用する]をチェックする。&lt;br /&gt;
#*: TCPの場合は、80番、または、1194番を入力する。&lt;br /&gt;
#*: &amp;lt;u&amp;gt;ただし、1194番を入力する場合は、[VPN (openvpn)]タブの[ゲートウェイ]項目のサフィックスを&amp;quot;:1194&amp;quot;へ変更すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: UDPの場合は、53番を入力する。&lt;br /&gt;
#*: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: &amp;lt;u&amp;gt;TCP接続の場合は、[Use a TCP Connection......]を選択する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#* [セキュリティ］タブを選択して、以下に示すオプションを選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-1]、または、[Default]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [Verify peer (server) certificate usage signature]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [Remote peer certificate TLS type]プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [キーファイル]には、OpenVPNファイルを追加した時に自動生成されるtls-auth.pemファイルを選択する。&lt;br /&gt;
#*: このファイルは、~/.cert/nm-openvpn/&amp;lt;接続先ロケーション&amp;gt;_TCP-tls-auth.pemファイルである。&lt;br /&gt;
#*: [Key Direction]プルダウンから[Client (1)]を選択する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、上記のセクションで作成したOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
# [VPN secrets (openvpn) dialog]ダイアログが表示されてパスワードの入力を促される場合は、再度、Ivacy VPNのパスワードを入力する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPアドレスが匿名かつプライベートなIvacy VPNに変更されたことを確認する場合は、http://ipchicken.com にアクセスする。&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenVPNコマンドを使用する場合 ====&lt;br /&gt;
# [https://support.ivacy.com/vpnusecases/openvpn-files-windows-routers-ios-linux-and-mac/ Ivacy VPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget https://ivacy.s3.amazonaws.com/support/OpenVPN-Configs.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;解凍したディレクトリには、OpenVPNファイルと証明書ファイル(.crt拡張子)の2つがある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記で編集したOpenVPN設定ファイルを使用して、OpenVPNをコマンドから起動する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 cd &amp;lt;OpenVPNの設定ファイルがあるディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt;&lt;br /&gt;
 # または&lt;br /&gt;
 sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt; --ca &amp;lt;証明書ファイルのパス&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;Ivacy VPNは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN_-_Ivacy_VPN#Ivacy_VPNの設定|&amp;quot;Ivacy VPNの設定&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentの使用 ==&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
Torrentプロトコルは、以下の手順でより安全に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentクライアントの設定のみ記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、uTorrent、Vuze、BitComet等のクライアントは、オープンソースではなく、アドウェアやジャンクウェアが含まれていたり、優れたプライバシー設定が施されていないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardとOpenVPNを切り替えた場合、ネットワークインターフェイスを再バインドして、qBittorrentを再起動する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、SOCKS5を使用している場合は、WireGuardまたはOpenVPNの使用に応じて、IPアドレスを変更する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Ivacy VPNを接続する。&lt;br /&gt;
# qBittorrentを起動して、[ツール]メニューバー - [設定]メニューを選択する。&lt;br /&gt;
# [設定]画面左ペインにある[高度]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* OpenVPNを使用したIvacy VPNソフトウェア (Ivacy VPNソフトウェアからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* OpenVPNスタンドアロン (NetworkManagerからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardを使用したIvacy VPNソフトウェア (Ivacy VPNソフトウェアからWireGuardで接続している場合)&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [バインドする任意のIPアドレス]プルダウンから、Ivacy VPNで接続しているIPアドレスを選択する。&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択してqBittorrentを終了して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング (ポート転送) ====&lt;br /&gt;
qBittorrentを起動して、[接続] - [受信接続に使用するポート]にポートを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、シードが向上する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5が有効な場合、この機能は無効になることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bittorrentクライアントへのポートフォワーディングの詳細を知りたい場合は、ポートフォワードガイドを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のエラー ====&lt;br /&gt;
qBittorrentにおいて、SOCKS5プロキシを有効にした場合、qBittorrentがオフラインと表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロトコルはポートフォワーディングをサポートしないため、トラッカーレスのTorrentを使用する場合は、DHTを有効にする必要があるかもしれない。&amp;lt;br&amp;gt;&lt;br /&gt;
そうでない場合は、SOCKS5プロキシを無効にする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Nord_VPN&amp;diff=14594</id>
		<title>VPN - Nord VPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Nord_VPN&amp;diff=14594"/>
		<updated>2026-03-24T14:24:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
NordVPNは、通信に関するログを取らないVPNサービスであり、ユーザが使用したローカルまたは割り当てられたIPアドレス、接続履歴、トラフィックログ、DNSクエリを保持しない。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、アカウント管理目的でメールアドレスおよび支払い情報は保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ロケーション&lt;br /&gt;
*: NordVPNは、プライバシーの安全な場所であるパナマに本社を構えており、パナマには、EU、イギリス、オーストラリアのようなデータを保持する法律がない。&lt;br /&gt;
*: また、パナマは5つの目、9つの目、または14の目の国のメンバーではない。&lt;br /&gt;
* セキュリティ&lt;br /&gt;
*: NordVPNは、256ビットAESのデータ暗号化を提供している。&lt;br /&gt;
*: これは、優れたファイアウォールと保護されたサーバと一緒に、NordVPNの安全性を最高級に保護している。&lt;br /&gt;
* 通信速度&lt;br /&gt;
*: 以前、通信速度がNordVPNの弱点であったが、現在は最速のVPNサービスの1つになってきている。&lt;br /&gt;
*: また、P2PやTorrentの速度も非常に優れており、Netflixのようなコンテンツをアンロックすることも可能である。&lt;br /&gt;
* 契約&lt;br /&gt;
*: Eメール、支払い方法、パスワードのみで、アカウントを作成することができる。&lt;br /&gt;
*: つまり、ProtonMailのような匿名のメールサービスとBitcoinのような安全な支払い方法を用いることにより、NordVPNは完全な匿名性を求める人に提供できる可能性がある。&lt;br /&gt;
*: クレジットカードや銀行振込等、別の支払い方法を利用する場合は、個人の銀行情報を提供する必要がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
==== 記録しないデータ ====&lt;br /&gt;
NordVPNが記録しないとしているデータは、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザの実際のIPアドレス&lt;br /&gt;
* インターネットアクティビティログ (訪問したWebサイト、ダウンロード内容)&lt;br /&gt;
* トラフィックデータ (通信内容)&lt;br /&gt;
* DNS照会記録&lt;br /&gt;
* VPN接続ログ (接続先サーバ、接続時刻等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このノーログポリシーは、Standard VPN、Double VPN、Onion Over VPN、難読化サーバ、P2Pサーバの全てのサーバタイプに適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録するデータ ====&lt;br /&gt;
一方、アカウント管理目的で以下のデータは保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
* メールアドレス&lt;br /&gt;
* 支払い情報&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、NordVPNは一切のデータを保持しないわけではなく、&amp;lt;u&amp;gt;通信に関するログを保持しない&amp;lt;/u&amp;gt; という意味でのノーログVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的な裏付け - RAMオンリーサーバ ====&lt;br /&gt;
NordVPNは全サーバをRAMオンリー (ディスクレス) 構成に移行済みである。&amp;lt;br&amp;gt;&lt;br /&gt;
* メモリ (RAM) 上でのみデータを処理し、ハードディスクにはデータを保存しない&lt;br /&gt;
* サーバがシャットダウンまたは再起動された時点で、全てのデータが自動削除される&lt;br /&gt;
* 不正アクセスやハードウェア押収が発生した場合でも、データ抽出が不可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
NordVPNのノーログポリシーは、以下の通り複数回の独立した第三者監査で検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー監査履歴&lt;br /&gt;
! 回 !! 年 !! 監査機関 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 第1回 || 2018年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第2回 || 2020年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第3回 || 2022年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第4回 || 2023年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第5回 || 2024年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第6回 || 2025年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2024年の第5回監査 (2024年11月18日〜12月20日) では、ISAE 3000基準に基づき、ユーザの活動をユーザ個人に関連付けることが不可能な状態であることが検証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法的立場 ====&lt;br /&gt;
NordVPNはパナマに本社 (Nordvpn S.A.) を置いており、以下の法的優位性を持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
* パナマにはVPNプロバイダに対する強制的なデータ保持法が存在しない&lt;br /&gt;
* パナマは5 Eyes、9 Eyes、14 Eyesのいずれの国際情報共有同盟にも属していない&lt;br /&gt;
* 他国政府がNordVPNに対してデータ提供を強制するための法的メカニズムが制限されている&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、パナマの検察官から法的拘束力のある令状が発行された場合は、保持しているデータの開示に応じる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提出事例 ====&lt;br /&gt;
NordVPNが法執行機関にデータを提出した事例と、他社VPNの事例を以下に整理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年10月: パナマ検察からの令状 =====&lt;br /&gt;
NordVPNはパナマの検察官から法的拘束力のある令状を受け、ユーザデータの開示に応じた。&amp;lt;br&amp;gt;&lt;br /&gt;
* 提供されたデータは、支払い情報およびアカウント存在確認のみ&lt;br /&gt;
* トラフィックログ、接続ログ等は保持していないため提供不可能であった。&lt;br /&gt;
* この事例を契機に、Warrant CanaryからTransparency Report (透明性レポート) への移行を開始&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年1月〜4月の統計 =====&lt;br /&gt;
* 政府機関からの問い合わせ: 81件&lt;br /&gt;
* DMCA請求: 約242万件&lt;br /&gt;
* いずれもユーザ情報の開示には至らなかったと報告されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 他社VPNの事例との比較 =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 他社VPNのログ提出事例との比較&lt;br /&gt;
! プロバイダ !! 事例 !! 実態&lt;br /&gt;
|-&lt;br /&gt;
| PureVPN (2017年) || FBIにサイバーストーキング事件のログを提供 || ノーログと謳いながら詳細な接続ログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| HideMyAss (2011年) || FBIにLulzSecハッカーの接続データを提供 || 同様にログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN (2024年) || パナマ検察に支払い情報のみ提供 || トラフィックログは実際に存在せず提供不可能であった。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNやHideMyAssは、ノーログを謳いながら実際には詳細なログを保持していたのに対し、&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNは第三者監査および実際の法的事例により、トラフィックログを保持していないことが裏付けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
===== 2019年: サーバ侵害事件 =====&lt;br /&gt;
2018年3月、フィンランドのCreanova Datacenterから借用していた約3,000台中1台のサーバが侵害された。&amp;lt;br&amp;gt;&lt;br /&gt;
* 原因&lt;br /&gt;
*: データセンター側がIPMI (Intelligent Platform Management Interface) アカウントを未開示のまま放置していた。&lt;br /&gt;
* ユーザのパスワード、課金情報、VPNログの流出はなし&lt;br /&gt;
* 侵害の発見は2019年4月 (事件発生から約1年後)、公開は2019年10月 (発見からさらに6ヶ月後)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件を受けて、NordVPNは以下の改善策を実施した。&amp;lt;br&amp;gt;&lt;br /&gt;
* Creanovaとの契約を即座に解除&lt;br /&gt;
* 全サーバをRAMオンリー (ディスクレス) 構成に移行&lt;br /&gt;
* 自社管理コロケーションサーバの導入 (2020年10月〜)&lt;br /&gt;
* バグバウンティプログラムの開始 (2019年10月〜)&lt;br /&gt;
* VPN Trust Initiativeの創設メンバーとして参加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 親会社に関する懸念 =====&lt;br /&gt;
NordVPNの親会社であるNord Security (リトアニア) は、Tesonetというスタートアップインキュベーターの傘下にある。&amp;lt;br&amp;gt;&lt;br /&gt;
* Tesonetはデータ収集企業Oxylabsも保有しており、利益相反の可能性が指摘されている。&lt;br /&gt;
* 企業構造の不透明さが批判されることがある。&lt;br /&gt;
* ただし、複数の独立監査によりユーザデータが外部と共有されていないことは検証されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
下表に、NordVPNのノーログポリシーに関する総合評価を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー総合評価&lt;br /&gt;
! 観点 !! 評価&lt;br /&gt;
|-&lt;br /&gt;
| ノーログの真正性 || 6回の独立監査で検証済み。&amp;lt;br&amp;gt;2024年の令状事例でも実際にログが存在しないことが裏付けられた。&lt;br /&gt;
|-&lt;br /&gt;
| 捜査機関への対応 || 法的令状には応じるが、提供可能データは支払い情報のみ&lt;br /&gt;
|-&lt;br /&gt;
| 他社VPNとの違い || PureVPN、HideMyAssはノーログを詐称していたが、NordVPNは監査で裏付けあり&lt;br /&gt;
|-&lt;br /&gt;
| 懸念事項 || 親会社Tesonetの企業構造の不透明さ、2019年侵害事件の公表遅延&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNの契約 ==&lt;br /&gt;
Nord VPNの契約方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、Nord VPNの公式Webサイトへアクセスして、画面上にある[価格]を選択する。&lt;br /&gt;
# 価格画面からプランを選択する。&lt;br /&gt;
#: プランはスタンダード、プラス、コンプリートの3つのティアがあり、それぞれ1ヶ月、1年、2年の契約期間を選択できる。&lt;br /&gt;
#: 最もコストパフォーマンスが良いのは2年プランである。(3年プランは廃止されている)&lt;br /&gt;
#: プランを選択後、アカウントの作成と支払い方法の選択をする。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;NordVPNはパナマ所在の企業であるため、クレジットカード会社が海外購入として制限を掛け、否決される可能性がある。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;PayPalまたは暗号通貨 (ビットコイン、イーサリアム、ライトコイン) での支払いを推奨する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、[消費税適用外]項目から[日本]を選択して、[続ける]ボタンを押下する。&lt;br /&gt;
# ここでは、PayPalで決済するため、[Pay with PayPal]を選択して支払いを進める。&amp;lt;br&amp;gt;支払いが完了すると、支払い受付画面に移動する。&lt;br /&gt;
# Nord VPNからE-mailが3通届くので、アカウントを有効化するために&amp;quot;NordVPN account activation&amp;quot;という件名のメールを開く。&lt;br /&gt;
# [Set Password and Activate Account]ボタンを押下すると、Nord VPNのWebサイトへ移動するので、パスワード設定とアカウントの有効化を行う。&amp;lt;br&amp;gt;ここで入力するパスワードは、VPN接続する時のパスワードとなる。&lt;br /&gt;
# パスワードを設定すると、自動的にNord VPNソフトウェアのダウンロードが開始される。&amp;lt;br&amp;gt;または、[https://nordvpn.com/ja/download/ Nord VPNの公式Webサイト]でも個別にダウンロードできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアのインストール ==&lt;br /&gt;
===== RHEL =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wget -qnc https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo dnf update&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== SUSE =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo rpm -v --import https://repo.nordvpn.com/gpg/nordvpn_public.asc&lt;br /&gt;
 sudo zypper install https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo zypper addrepo /etc/yum.repos.d/nordvpn.repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== LinuxにおけるNord VPNコマンド =====&lt;br /&gt;
 nordvpn login                  - ログイン&lt;br /&gt;
 nordvpn login --token [トークン] - トークンを使用してログイン (GUI無し環境用)&lt;br /&gt;
 nordvpn connect or nordvpn c   - VPNに接続する。特定のサーバに接続する場合は nordvpn connect &amp;lt;country_code server_number&amp;gt; (例: nordvpn connect uk715)&lt;br /&gt;
 nordvpn disconnect or nordvpn d - VPNから切断する&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn set or nordvpn s - 設定オプション:&lt;br /&gt;
 nordvpn set threatprotectionlite on or off - Threat Protection Lite (DNSフィルタリング・広告ブロック) の有効化/無効化 (旧: cybersec)&lt;br /&gt;
 nordvpn set killswitch on or off            - Kill Switchの有効化/無効化&lt;br /&gt;
 nordvpn set autoconnect on or off           - 自動接続の有効化/無効化。特定サーバの自動接続: nordvpn set autoconnect on us2435&lt;br /&gt;
 nordvpn set dns 1.1.1.1 1.0.0.1             - カスタムDNSの設定 (1つまたは2つ指定可能)&lt;br /&gt;
 nordvpn set technology nordlynx or openvpn   - VPNプロトコルの切り替え&lt;br /&gt;
 nordvpn set obfuscate on or off              - 難読化サーバの有効化/無効化&lt;br /&gt;
 nordvpn set firewall on or off               - ファイアウォールの有効化/無効化&lt;br /&gt;
 nordvpn set ipv6 on or off                   - IPv6サポートの有効化/無効化&lt;br /&gt;
 nordvpn set lan_discovery on or off          - LANデバイス検出の有効化/無効化&lt;br /&gt;
 nordvpn set post_quantum_vpn on or off       - ポスト量子暗号の有効化/無効化&lt;br /&gt;
 nordvpn set notify on or off                 - 通知の有効化/無効化&lt;br /&gt;
 nordvpn set tray on or off                   - システムトレイアイコンの有効化/無効化&lt;br /&gt;
 nordvpn set defaults                         - デフォルト設定にリセット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn allowlist add port 22                          - ポート22をVPN例外リストに追加 (旧: whitelist)&lt;br /&gt;
 nordvpn allowlist add port 22 protocol TCP             - プロトコル指定でポートを追加&lt;br /&gt;
 nordvpn allowlist remove port 22                       - ポート22のルールを削除&lt;br /&gt;
 nordvpn allowlist add subnet 192.168.0.0/16            - サブネットをVPN例外リストに追加&lt;br /&gt;
 nordvpn allowlist remove subnet 192.168.0.0/16         - サブネットのルールを削除&lt;br /&gt;
 nordvpn allowlist remove all                           - VPN例外リストの全ルールを削除&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn settings  - 現在の設定を表示&lt;br /&gt;
 nordvpn status    - 接続状態を表示&lt;br /&gt;
 nordvpn account   - アカウント情報を表示&lt;br /&gt;
 nordvpn countries - 利用可能な国一覧を表示&lt;br /&gt;
 nordvpn cities    - 利用可能な都市一覧を表示&lt;br /&gt;
 nordvpn groups    - 利用可能なサーバグループ一覧を表示&lt;br /&gt;
 nordvpn version   - アプリケーションバージョンを表示&lt;br /&gt;
 nordvpn logout    - ログアウト&lt;br /&gt;
 nordvpn help or nordvpn h - コマンド一覧またはヘルプを表示&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;man nordvpn&amp;lt;/code&amp;gt;コマンドを使用して、コマンドの全リストを見ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windows =====&lt;br /&gt;
Nord VPNソフトウェアのインストール手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# 上記セクションでダウンロードしたNordVPNSetup.exeを実行する。&lt;br /&gt;
# インストール先を選択するダイアログが表示されるので、必要であればフォルダを変更して[Next]ボタンを押下する。&lt;br /&gt;
# [Install]ボタンを押下してインストールを始める。&lt;br /&gt;
# [Finish]ボタンを押下してインストールを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアを起動手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNソフトウェアの起動後、ログイン画面が表示されるので、Nord VPNで登録したメールアドレスとパスワードを入力して[Sign In]ボタンを押下する。&lt;br /&gt;
# ログインに成功すると、VPNサーバを選択する画面が表示される。&amp;lt;br&amp;gt;メイン画面下の[Quick connect]ボタンを押下すると、近距離にあるVPNサーバが選択される。(日本国内から接続すれば、日本のVPNサーバが選択される)&lt;br /&gt;
# 接続したい国があれば、世界地図の上から選択する事もできる。&amp;lt;br&amp;gt;例えば、ブラジルのVPNサーバに接続する場合、ブラジルを選択してから[Quick connect]ボタンを押下する。&amp;lt;br&amp;gt;あるいは、メイン画面左から接続したい国を選択して接続することもできる。&lt;br /&gt;
# 接続が成功すると、国のアイコンが緑色に変化する。また、接続状態も[UNCONECTED]から[PROTECTED]に変化して[Connected to Brazil]と表示される。&lt;br /&gt;
# 切断する場合は、[Disconnect]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network Managerを使用したNord VPNの接続 ==&lt;br /&gt;
# Nord VPNの公式Webサイトから、[https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip OpenVPN構成ファイルパッケージ]をダウンロードして解凍する。&lt;br /&gt;
# Network Managerの設定画面を起動する。(GNOMEの場合は、[VPNオフ]を選択後、ドロップダウンから[VPN設定]を選択する)&lt;br /&gt;
# 設定画面下にある[+]ボタンを押下する。(GNOMEの場合は、 [VPN]項目横にある[+]ボタンを押下する)&lt;br /&gt;
# 接続タイプは、[VPN接続をインポート...]を選択する。(GNOMEの場合は、[ファイルからインポート...]を選択する)&lt;br /&gt;
# 上記でダウンロードしたファイルから1つを選択して、[開く]ボタンを押下する。&lt;br /&gt;
# ポップアップウィンドウにNord VPNで取得したのユーザ名とパスワードを入力して、[追加]ボタンを押下する。&lt;br /&gt;
# 追加したNord VPNサービスの資格情報は、Nordアカウントダッシュボードで確認できる。右側のボタンを使用して認証情報をコピーします。&lt;br /&gt;
# 最後に、Network Managerの設定画面から、VPNオプションの下のスライダーを押下して、Nord VPNサーバに接続する。&amp;lt;br&amp;gt;VPN接続が開始されると、スライダーは緑色に変化する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアの設定 ==&lt;br /&gt;
Nord VPNソフトウェアのメイン画面右上にある歯車のアイコンを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定項目は、[General]、[Auto Connect]、[Advanced]がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== General =====&lt;br /&gt;
Nord VPNの[General]項目において、重要な項目は以下の2つである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Start NordVPN on startup&lt;br /&gt;
* Internet Kill Switch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Start NordVPN on startup]項目は、初期設定で有効化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
OS起動時にNordVPNを動作させるため、[オン]にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Internet Kill Switch]項目は、VPNを経由しない通信をすべて遮断する。匿名性を向上させるため、[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
注意点として、Nord VPNに接続していない状態では、一切ネットワーク接続できなくなる点である。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNを切断してVPN非経由でインターネット接続する場合は、[Internet Kill Switch]項目を[オフ]に設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Auto Connect =====&lt;br /&gt;
Nord VPNの[Auto Connect]項目では、自動接続設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNクライアントを起動した際、自動的にVPN接続する場合は、[Connect when app starts]項目を[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、外出先でWi-Fiに接続する可能性がある場合は、[Connect on insecure wireless]項目を[オン]に設定するとよい。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動接続する国を選択したい場合は、[Auto connect to]項目で選択して、更に細かく指定する場合は[Preferred region]項目で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
通常は、[Preferred region]項目は[Automatically pick best]に設定することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Double VPNで接続する ==&lt;br /&gt;
NordVPNのメリットの1つに、匿名性を高めるDouble VPNが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Double VPNを利用するとVPNサーバを2つ経由する。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザが利用するISPには、1つ目のVPNサーバと通信している記録が残るが、最終的な接続先から見ると2つ目のVPNサーバから接続している記録が残る。&amp;lt;br&amp;gt;&lt;br /&gt;
そして1つ目と2つ目のVPNサーバ間は通信を中継しているだけであるため、VPNサーバ間の通信記録にユーザの情報は残らない。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため極めて高い匿名性が確保される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
極めて高い匿名性を提供するDouble VPNであるが、利用方法は簡単である。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNのソフトウェアを起動する。&amp;lt;br&amp;gt;メイン画面左にある[Double VPN]を選択すると、自動的にDouble VPNで接続できる。&lt;br /&gt;
# 接続するVPNサーバを指定する場合は、[Double VPN]の右側にある[...]を選択する。&lt;br /&gt;
# [Double VPN]画面が開くので、[Country:]プルダウンと[Server:]プルダウンを選択する。&amp;lt;br&amp;gt;初期設定では、最適な国とサーバが自動的に選択される。&lt;br /&gt;
# [Country:]プルダウンでは1番目のサーバを選択して、[Server:]プルダウンでは2番目のサーバを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_AirVPN&amp;diff=14593</id>
		<title>VPN - AirVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_AirVPN&amp;diff=14593"/>
		<updated>2026-03-24T14:00:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
AirVPNは、イタリアのペルージャを拠点とするプライバシー重視のVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2010年にアクティビスト、ハッカー、弁護士からなるグループによって設立され、2012年に専用企業「Air」として法人化された。&amp;lt;br&amp;gt;&lt;br /&gt;
現在の代表はPaolo Briniが務めている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月現在、23カ国に514台以上のサーバを展開しており、OpenVPN および WireGuard (2024年よりデフォルト) に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
暗号化方式はAES-256-GCMおよびChaCha20-Poly1305を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
クライアントソフトウェアであるEddieは、オープンソース (GPLv3ライセンス) として公開されており、VPN over Torに対応した数少ないVPNサービスの1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
全てのサーバはRAMベースで動作しており、再起動時にデータが完全に削除される設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AirVPNのメリットは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* オープンソースのEddieクライアント (GPLv3)&lt;br /&gt;
*: クライアントのソースコードが公開されており、第三者によるコード監査が可能。&lt;br /&gt;
* VPN over Tor対応&lt;br /&gt;
*: Torネットワーク経由でVPNに接続することで、さらに高い匿名性を実現できる。&lt;br /&gt;
* RAMベースのサーバ設計&lt;br /&gt;
*: サーバ再起動時に全データが物理的に消去される。&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: 接続ログやIPアドレスを記録しない設計。&lt;br /&gt;
* ポートフォワーディング対応&lt;br /&gt;
*: P2P接続やリモートアクセス用途に使用できる。&lt;br /&gt;
* 暗号資産での支払いに対応&lt;br /&gt;
*: ビットコインその他の暗号資産で匿名支払いが可能。&lt;br /&gt;
* 検閲回避機能 (OpenVPN over SSH/SSL)&lt;br /&gt;
*: 深刻な検閲環境下でもVPN通信を偽装して接続できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AirVPNのデメリットは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14 Eyes同盟加盟国 (イタリア) に拠点&lt;br /&gt;
*: 情報共有の枠組みを持つ同盟加盟国に管轄されている。&lt;br /&gt;
* 独立した第三者監査が未実施&lt;br /&gt;
*: ノーログポリシーの技術的実装が外部から検証されていない。&lt;br /&gt;
* サーバ数が少ない (514台、大手は数千台以上)&lt;br /&gt;
*: 他の大手VPNサービスと比較してサーバ数が限られる。&lt;br /&gt;
* iOSの公式アプリが無い&lt;br /&gt;
*: iPhone / iPadユーザはOpenVPN Connectなどのサードパーティアプリを使用する必要がある。&lt;br /&gt;
* ライブチャットサポートが無い&lt;br /&gt;
*: サポートはフォーラムまたはチケット制のみとなる。&lt;br /&gt;
* ストリーミング対応が限定的&lt;br /&gt;
*: NetflixやDisney+などの地域制限コンテンツへのアクセスが保証されていない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 技術仕様 ==&lt;br /&gt;
==== 暗号化とプロトコル ====&lt;br /&gt;
AirVPNは、AES-256-GCM および ChaCha20-Poly1305による強力な暗号化を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenVPNの仕様は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* TLS制御チャネルで強力な暗号化を実装している&lt;br /&gt;
* 対応TLS暗号スイート&lt;br /&gt;
*: TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256&lt;br /&gt;
*: TLS-DHE-RSA-WITH-AES-256-GCM-SHA384&lt;br /&gt;
* AES-128は非対応であり、デフォルトのOpenVPN設定よりも強力な暗号強度を維持している&lt;br /&gt;
* Diffie-Hellman鍵交換 (DHE) を採用し、4096ビットのDH/RSA鍵を使用している&lt;br /&gt;
* Perfect Forward Secrecy (PFS) を実装しており、60分ごとに鍵を再生成 (rekeying) する&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuardの仕様は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 2021年10月にベータ版として導入された。&lt;br /&gt;
* 2024年2月にデフォルトプロトコルへ昇格した。&lt;br /&gt;
* ChaCha20-Poly1305による高速かつ強力な暗号化を提供する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバ構成 ====&lt;br /&gt;
AirVPNのサーバ構成の詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ AirVPNのサーバ構成&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| 展開規模 || 23カ国に514台以上のサーバ(2026年3月現在)&lt;br /&gt;
|-&lt;br /&gt;
| RAMベース設計 || 全サーバがRAM上でのみ動作し、再起動時に全データが物理的に消去される。&lt;br /&gt;
|-&lt;br /&gt;
| サーバ形態 || 物理サーバのみを使用し、仮想サーバは使用しない。&lt;br /&gt;
|-&lt;br /&gt;
| 接続ポート || 53, 80, 443, 1194, 2018等に対応&lt;br /&gt;
|-&lt;br /&gt;
| プロトコル || OpenVPN TCP/UDPの両方に対応&lt;br /&gt;
|-&lt;br /&gt;
| 追加トンネル層 || SSL、SSHによる追加カプセル化に対応 (検閲回避機能)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Eddieクライアントの機能 ====&lt;br /&gt;
下表に、Eddieクライアントが提供する主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 機能名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Network Lock (キルスイッチ) || VPN接続が確立されていない場合、デバイスのインターネット通信を完全にブロックする。&amp;lt;br&amp;gt;意図しないIPアドレスの漏洩を防止する。&lt;br /&gt;
|-&lt;br /&gt;
| DNS保護 || AirVPNが管理するDNSサーバにリクエストを送信する。&amp;lt;br&amp;gt;第三者のDNSサーバは関与しない。&lt;br /&gt;
|-&lt;br /&gt;
| DNS漏洩検出 || システムが正しくDNSサーバをクエリしているかを確認し、DNS漏洩が発生していないことを検証する。&lt;br /&gt;
|-&lt;br /&gt;
| スプリットトンネリング || 特定のアプリケーションまたはドメインをVPN経由ではなく直接接続するよう設定できる。&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワーディング || P2P接続やリモートアクセスのためにポートを開放する設定が可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Eddieクライアントの対応プラットフォームは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* デスクトップ&lt;br /&gt;
*: Windows、MacOS、Linux&lt;br /&gt;
*: 最新バージョン&lt;br /&gt;
*: 2.24.6 (2025年1月)&lt;br /&gt;
* モバイル&lt;br /&gt;
*: Android 5.1以上&lt;br /&gt;
*: 最新バージョン: 3.3.0&lt;br /&gt;
* iOS&lt;br /&gt;
*: 公式アプリなし&lt;br /&gt;
*: OpenVPN Connectなどのサードパーティアプリを使用する必要がある&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNのノーログポリシーと信頼性 ==&lt;br /&gt;
==== ノーログポリシーの内容 ====&lt;br /&gt;
AirVPNが記録しないデータは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN接続ログ&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* VPN IPアドレス&lt;br /&gt;
* 閲覧履歴&lt;br /&gt;
* トラフィック宛先&lt;br /&gt;
* データ内容&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術的な設計の詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 接続に必要な技術データはRAMのみに一時保存され、接続終了時に自動削除される。&lt;br /&gt;
* マスストレージデバイス (SSD、HDD等) への記録は一切行わない。&lt;br /&gt;
* サーバ再起動時に全データが物理的に削除される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
独立監査については、現時点では未実施である。&amp;lt;br&amp;gt;&lt;br /&gt;
第三者による検証がなく、ノーログポリシーの技術的実装は外部から確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ワラントカナリアについては非公開となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザからの導入要望はあるが、2026年3月現在も未実装である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提供事例 ====&lt;br /&gt;
下表に、AirVPNに関連する捜査機関によるデータ提供の事例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 年 !! 事件 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2015年 || トロント警察サーバ押収 || 押収されたサーバからデータ回収なし。&amp;lt;br&amp;gt;ただし顧客への通知が大幅に遅延し、関連フォーラムスレッドが後に削除された。&lt;br /&gt;
|-&lt;br /&gt;
| 2020年 || FBIペンレジスター事件 || United States v. Klyushin事件で、FBIがAirVPNサーバにペンレジスター (接続記録装置) を設置した。&amp;lt;br&amp;gt;法廷証拠として使用された。&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Piracy Shield拒否 || イタリアの海賊版対策規制 (Piracy Shield) への準拠を拒否し、イタリア市場から自発的に撤退した。&amp;lt;br&amp;gt;CEO Paolo Brini氏は「適切な司法命令なしに通信原則を侵害すべきではない」と明言した。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== イタリアの法的管轄 ====&lt;br /&gt;
AirVPNがイタリアに拠点を置くことによる法的管轄の影響は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* イタリアは14 Eyes同盟に加盟しており、他の加盟国 (米国等) と情報共有の枠組みがある。&lt;br /&gt;
* イタリアのISPは検索履歴を最大6年間保存する義務がある。&lt;br /&gt;
* AirVPNはGDPRに完全準拠する義務を負う。&lt;br /&gt;
* AirVPNは「政府要求に対してはEU裁判所に提訴する」と公言しているが、実際の訴訟実績は確認されていない。&lt;br /&gt;
* ノーログ設計のため、サーバ押収が発生しても提供可能なデータは存在しない可能性が高い。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
下表に、AirVPNと他の主要ノーログVPNサービスとの比較を示す。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! サービス名 !! 拠点 !! 情報共有同盟 !! 独立監査 !! 信頼性の根拠&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || スウェーデン || 9 Eyes || あり (2025年) || 警察捜索でデータなしを実証 (最強の実証)&lt;br /&gt;
|-&lt;br /&gt;
| Proton VPN || スイス || 非加盟 || あり (4年連続) || Securitumによる本番サーバ検査で準拠確認&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN || パナマ || 非加盟 || あり (5回) || Deloitte等による監査&lt;br /&gt;
|-&lt;br /&gt;
| AirVPN || イタリア || 14 Eyes || なし || オープンソースだが外部検証なし&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
AirVPNのノーログポリシーに関する総合評価は以下の通りである。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
信頼性を支持する要素は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* RAMベースのサーバ設計により、物理的にログ保存が困難な構造となっている。&lt;br /&gt;
* 完全オープンソースのクライアントにより、コード監査が可能&lt;br /&gt;
* 2015年のサーバ押収時にデータ回収不可だった実績がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
信頼性を損なう要素は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14 Eyes加盟国 (イタリア) に拠点を置いている。&lt;br /&gt;
* 独立した第三者監査が実施されていない。&lt;br /&gt;
* 透明性レポートが公開されていない。&lt;br /&gt;
* ワラントカナリアが実装されていない。&lt;br /&gt;
* 2020年にFBIがサーバにペンレジスターを設置した事例がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNの契約 ==&lt;br /&gt;
AirVPNの料金プランは以下の通りである。(2026年3月現在、支払いはユーロ建て)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! プラン期間 !! 料金&lt;br /&gt;
|-&lt;br /&gt;
| 3日 || 2ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 1ヶ月 || 7ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 3ヶ月 || 15ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 1年 || 49ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 2年 || 79ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 3年 || 99ユーロ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
支払い方法はクレジットカード、PayPal、Stripe、Amazon Pay、ビットコインおよびその他暗号資産に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、30日間の返金保証が設けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AirVPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://airvpn.org AirVPNの公式Webサイト]へアクセスして、[Get AirVPN]を選択する。&lt;br /&gt;
# もし、アカウントを持っている場合はログインする。アカウントが無ければ、[Create an account]を選択してアカウントを作成する。&lt;br /&gt;
# アカウントの作成後、再度、[Get AirVPN]を選択して、[Subscribe]を選択する。&lt;br /&gt;
# プランを選択する画面に遷移するので、プランを選択して[Proceed to Checkout]を選択する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;支払いは円やドルではなくてユーロとなることに注意すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# 支払い画面に遷移するので、支払い方法を選択する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;※注意&amp;lt;br&amp;gt;クレジットカードは否決される可能性があるため、PayPalか仮想通貨での支払いを推奨する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# 各OS用のAirVPNソフトウェアをダウンロードする。&amp;lt;br&amp;gt;32ビットまたは64ビットの選択、インストーラまたはポータブル、GUIまたはCUIを選択して、[DOWNLOAD]を選択する。&amp;lt;br&amp;gt;または、[https://airvpn.org/download/ 公式Webサイト]から個別にダウンロードすることもできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNソフトウェアのインストール ==&lt;br /&gt;
AirVPNソフトウェアのインストール手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 上記のセクションでダウンロードしたAirVPNソフトウェアをインストールおよび実行する。&lt;br /&gt;
#: Eddie-UIファイルがAirVPNソフトウェアである。&lt;br /&gt;
# AirVPNソフトウェアを実行すると、ログイン名とパスワードを入力する画面が表示される。&lt;br /&gt;
#: ログイン情報を入力して、[Login]ボタンを押下する。&lt;br /&gt;
# 利用規約が表示されるので、了承する場合はチェックボックスにチェックを入力して、[Accept]ボタンを押下する。&lt;br /&gt;
# メイン画面左にある[Servers]タブを選択すると、利用可能なVPNサーバが表示される。([Letency]でソートすると日本のサーバが一番上に現れる)&lt;br /&gt;
# メイン画面左にある[Countries]タブを選択すると、VPNサーバのロケーションからも選択することができる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNの設定 ==&lt;br /&gt;
AirVPNには、最初からVPN over Torおよび検閲回避機能のための設定項目がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPN over Torの設定 ====&lt;br /&gt;
VPN over Torとは、Torネットワーク経由でVPNサーバに接続する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
通常のVPN接続では「ユーザ → VPN → インターネット」の経路となるが、VPN over Torでは「ユーザ → Tor → VPN → インターネット」の経路となる。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、VPNプロバイダであるAirVPNに対してもユーザの実際のIPアドレスを隠すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN over Torの設定手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# AirVPNソフトウェアのメイン画面左下にある設定アイコンを選択する。&lt;br /&gt;
# 設定画面左にある[Proxy / Tor]タブを選択して、[Type:]プルダウンから[Tor]を選択する。&lt;br /&gt;
# 設定画面下にある[Save]ボタンを押下して、設定を保存する。&lt;br /&gt;
# 設定の保存後、[Test]ボタンを押下して、&amp;quot;Successfull test&amp;quot;メッセージが出力されれば正常に動作している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 検閲回避機能 (OpenVPN over SSH/SSL) の設定 ====&lt;br /&gt;
OpenVPN over SSH/SSL は、VPN通信をSSHまたはSSLトンネルでカプセル化することで、深刻な検閲環境下でもVPN接続を維持するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNポートをブロックするファイアウォールやDPI (Deep Packet Inspection) を回避する目的で使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# AirVPNソフトウェアのメイン画面左下にある設定アイコンを選択する。&lt;br /&gt;
# 設定画面左にある[Protocols]タブを選択する。&lt;br /&gt;
# 接続プロトコルの一覧から、[OpenVPN over SSH] または [OpenVPN over SSL]を選択する。&lt;br /&gt;
# 設定画面下にある[Save]ボタンを押下して、設定を保存する。&lt;br /&gt;
# メイン画面から任意のサーバを選択して接続し、正常に接続できることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Windscribe_VPN&amp;diff=14592</id>
		<title>VPN - Windscribe VPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Windscribe_VPN&amp;diff=14592"/>
		<updated>2026-03-24T13:30:11Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Windscribe VPNは、カナダに本社があり、プライバシーを守りながらインターネットを利用できるようにサポートすると約束している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料版のVPNサービスも提供しており、毎月のデータ通信量が10[GB]なので多数のユーザが使用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pro版(有料版)では、データ通信量に制限が無く、サーバは69か国以上、115都市以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
また、Pro版では、ポートフォワーディング機能も利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
R.O.B.E.R.Tという高度な機能も存在しており、ドメインを任意のIPアドレスに変更でき、信頼できないIPアドレスやIPネットワークをブロックすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
TorrentやTor over VPNも使用でき、アメリカのNetflixをストリーミングすることもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Netflixのストリーミングについては、以前はアメリカのNetflixのみ対応していたが、2026年現在では32以上のNetflix地域に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Windscribe VPNの特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windscribe VPNの主な機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 大規模ネットワーク || 69カ国以上、115都市以上にサーバを設置&lt;br /&gt;
|-&lt;br /&gt;
| R.O.B.E.R.T. || 全てのデバイスで選択したIPとドメイン (広告) をブロック&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || IPとタイムスタンプから個人を特定することはできない。&amp;lt;br&amp;gt;2025年4月のギリシャ法廷において、ノーログポリシーが法的に実証されている。&amp;lt;br&amp;gt;詳細は、[[VPN_-_Windscribe_VPN#ノーログポリシーの検証|&amp;quot;ノーログポリシーの検証&amp;quot;]]セクションを参照すること。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号化 || AES 256暗号とSHA512認証、4096ビットのRSA鍵を使用している。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ジェネレータ || 全てのデバイス用にOpenVPN、IKEv2、WireGuard設定を生成する。&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワード || 社内リソースに安全にアクセスする。&lt;br /&gt;
|-&lt;br /&gt;
| スプリットトンネリング || VPNを経由するアプリと経由しないアプリを選択が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeが収集している情報は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 30日間で送受信されたデータ量(バイト)&lt;br /&gt;
* Windscribeネットワークでの最後の利用のタイムスタンプ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このようなデータが収集される理由は、無料ユーザの通信量を制限するためとネットワークの悪用を防ぐためである。(標準的なプライバシーポリシー)&amp;lt;br&amp;gt;&lt;br /&gt;
また、Windscribeは、個人を特定できる情報を入力しなくてもいいようにしており、アカウント作成に必要な情報はユーザ名とパスワードのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2021年以降、Windscribeは全サーバをRAM-only構成 (FreshScribeインフラ) に移行しており、&amp;lt;br&amp;gt;&lt;br /&gt;
サーバが押収または再起動された場合、全てのデータが自動的に消去される設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
Windscribe VPNはノーログVPNを謳っているが、その信頼性は複数の観点から検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録するデータと記録しないデータ ====&lt;br /&gt;
Windscribeの公式プライバシーポリシーでは、以下に示すデータを記録しないと宣言している。&amp;lt;br&amp;gt;&lt;br /&gt;
* 接続ログ (Connection logs)&lt;br /&gt;
* IPアドレスとタイムスタンプ (IP timestamps)&lt;br /&gt;
* セッションログ (Session logs)&lt;br /&gt;
* 閲覧履歴 (Browsing history)&lt;br /&gt;
* 個人識別情報 (Personally identifiable information)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、以下の最小限のデータのみを保持している。&amp;lt;br&amp;gt;&lt;br /&gt;
* 30日間で送受信されたデータ量 (バイト)&lt;br /&gt;
*: 無料プランのデータ制限を実施するために必要である。&lt;br /&gt;
* 最終アクセス日時&lt;br /&gt;
*: アカウント管理目的で使用される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続中は、サーバ側で接続ユーザ名、接続時間、データ転送量を一時的に保有するが、接続が切断された直後に即座に破棄される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法廷での実証 (2025年4月 ギリシャ) ====&lt;br /&gt;
2025年4月、ギリシャのアテネ裁判所において、Windscribeのノーログポリシーが法的に実証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件では、未知のユーザがWindscribeのフィンランドサーバを使用してギリシャ国内のWebサイトに不正アクセスおよびスパムメール送信を行った疑いがあり、&amp;lt;br&amp;gt;&lt;br /&gt;
WindscribeのCEOであるYegor Sakが告発された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2年間の訴訟の結果、WindscribeがユーザのIPアドレスやアクティビティのログを保持しておらず、ユーザを特定するデータが存在しないことが証明され、ケースは却下された。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、ノーログポリシーが有効な法的防御として機能することが法的に検証された画期的な判例となった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポート ====&lt;br /&gt;
Windscribeは、リアルタイムで更新される[https://windscribe.com/transparency 透明性レポート]を公開している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2018年以降、100件以上の法執行機関からのデータ要求を受領しているが、ユーザデータの提出実績は0件である。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、記録していないデータを提供することが不可能であるためである。&amp;lt;br&amp;gt;&lt;br /&gt;
DMCA (デジタルミレニアム著作権法) に基づくデータ要求に対しても、同様に0件の提出実績である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、Windscribeはワラントカナリーを採用しておらず、代わりにリアルタイムの透明性レポートで対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査 ====&lt;br /&gt;
Windscribeは複数の第三者監査を実施しており、結果は公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windscribeの第三者監査実績&lt;br /&gt;
! 実施時期 !! 監査機関 !! 対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2021年9月 || Leviathan Security Group || デスクトップアプリケーション || 指摘事項5件 - 全て解決済み&lt;br /&gt;
|-&lt;br /&gt;
| 2022年3月 || Leviathan Security Group || モバイルアプリケーション (Android / iOS) || 指摘事項あり - 全て解決済み&lt;br /&gt;
|-&lt;br /&gt;
| 2024年6月 || Packetlabs || FreshScribeインフラ (約80,000行のコード、20のリポジトリ) || ノーログポリシーへの意図的な破壊は検出されず&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全アプリケーションのソースコードは[https://github.com/Windscribe GitHub]で公開されており、透明性が確保されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
===== ウクライナサーバ押収 (2021年6月) =====&lt;br /&gt;
2021年6月、ウクライナ当局がWindscribeのウクライナ拠点のVPNサーバ2台を押収した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件では、以下の深刻なセキュリティ上の欠陥が明らかになった。&amp;lt;br&amp;gt;&lt;br /&gt;
* サーバディスク上にOpenVPN秘密鍵が平文で保存されていた。&lt;br /&gt;
* X.509証明書検証が未実装であり、攻撃者が任意のWindscribeサーバになりすまし可能な状態であった。&lt;br /&gt;
* サーバ自体のディスク暗号化が実装されていなかった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザデータそのものはノーログポリシーにより危険にさらされなかったが、特定の条件下では通信内容のリアルタイム傍受が可能な状態であったことが問題視された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeはインシデント後4週間以内に以下の改善措置を実施した。&amp;lt;br&amp;gt;&lt;br /&gt;
* 全VPNサーバをRAM-only (メモリのみ) 構成に移行&lt;br /&gt;
* 新しいOpenVPN認証局 (CA) の導入&lt;br /&gt;
* サーバ証明書の有効期限を90日に短縮し、75日ごとにローテーション&lt;br /&gt;
* X.509拡張キー属性検証をクライアントレベルで実装&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オランダサーバ押収 (2026年2月) =====&lt;br /&gt;
2026年2月、オランダ当局がWindscribeのサーバ1台を令状なしで押収した。&amp;lt;br&amp;gt;&lt;br /&gt;
2021年の事件とは異なり、RAM-onlyサーバ構成であったため、押収されたサーバから回収されたデータは標準的なUbuntuインストールのみであった。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザデータの漏洩は確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Citizen Labのセキュリティ研究者は、RAM-onlyサーバの技術的限界として、&amp;lt;br&amp;gt;&lt;br /&gt;
ホットプラグインターフェースを使用すれば電源を遮断せずにサーバを押収でき、メモリダンプによりセッションデータを抽出できる可能性を指摘している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Five Eyes同盟国としてのカナダ管轄 ====&lt;br /&gt;
Windscribeはカナダ (オンタリオ州) に本社を置いており、カナダはFive Eyes (米国、カナダ、英国、オーストラリア、ニュージーランド) 同盟国の1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Five Eyesに関する懸念と、Windscribeの公式見解を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* カナダの法律はVPNプロバイダにデータ保持を義務付けていない。&lt;br /&gt;
*: Five Eyes加盟国のデータ保持指令はISPに適用されるものであり、VPNプロバイダには適用されない。&lt;br /&gt;
* データが存在しなければ提供不可能&lt;br /&gt;
*: ノーログポリシーの実装により、法的要求があってもユーザデータを提供できない。&lt;br /&gt;
* 法律が変更される可能性&lt;br /&gt;
*: CEO自身が「プライバシーポリシーを維持できなければカナダを離れる」と述べている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、最高レベルのプライバシーを求める場合は、5 Eyes管轄外のVPN (例: Mullvad / スウェーデン、ProtonVPN / スイス) も選択肢として検討する価値がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他社VPNのノーログ違反事例との比較 ====&lt;br /&gt;
VPN業界では、ノーログを謳いながら実際に法執行機関にユーザデータを提供した事例が複数存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeはこれらの事例には含まれておらず、法廷でノーログが証明された数少ないVPNの1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログ違反が確認されたVPN事例&lt;br /&gt;
! VPN !! 年 !! 事件概要&lt;br /&gt;
|-&lt;br /&gt;
| PureVPN || 2017年 || FBIにサイバーストーカー容疑者のIP・接続ログを提供&lt;br /&gt;
|-&lt;br /&gt;
| IPVanish || 2016年 || 米国国土安全保障省に児童ポルノ容疑者の接続ログ・メール・氏名を提供&lt;br /&gt;
|-&lt;br /&gt;
| HideMyAss || 2012年 || 英国法院命令によりLulzSecメンバーの接続ログを提供&lt;br /&gt;
|-&lt;br /&gt;
| EarthVPN || 2014年 || オランダ警察がデータセンターのIP転送ログから爆弾脅迫犯を特定&lt;br /&gt;
|-&lt;br /&gt;
| UFO VPN || 2020年 || 数百万件のユーザログ (IPアドレス、メール、パスワード) がオンラインに露出&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windscribe VPNの契約方法 ==&lt;br /&gt;
Windscribe VPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://windscribe.com/ Windscribe VPNの公式Webサイト]へアクセスして、アカウント作成またはログインする。&lt;br /&gt;
# トップページ上部にある[Pricing]を選択する。&lt;br /&gt;
# 月間または年間のプランを選択して、[Buy Now]を選択する。&lt;br /&gt;
# [Select Payment Method]では、支払い方法(クレジットカード、PayPal、仮想通貨等)を選択して、[Continue]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribe VPNの料金は、年間69ドル (月額換算で約5.75ドル)、1ヶ月9ドルである。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
また、カスタムプラン (Build A Plan) として、1ロケーションあたり月額1ドルで最低3ドルから購入可能なプランも存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windscribe VPNの返金保証 ==&lt;br /&gt;
Windscribe VPNの返金保証は他社と比較するとかなり制限が厳しい。&amp;lt;br&amp;gt;&lt;br /&gt;
サービスに加入してから3日以内に返金を請求しないといけない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
返金を請求するにはプランを購入してから3日以内にサポートデスクからリクエストを送信する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
また、10[GB]以上データ通信してしまうと返金の対象外になるので注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windscribe VPNソフトウェアのインストール ==&lt;br /&gt;
==== RPMファイルから直接インストールする場合 ====&lt;br /&gt;
[https://windscribe.com/guides/linux/ Windscribe VPNの公式Webサイト]から、GUIソフトウェアをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install ./windscribe_&amp;lt;バージョン&amp;gt;_x86_64.rpm&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install ./windscribe_&amp;lt;バージョン&amp;gt;_x86_64.rpm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソースコードからインストールする場合 ====&lt;br /&gt;
Windscribe VPNのGUIソフトウェアのビルドに必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RHELでは、一部のパッケージがCRB (Code Ready Builder) リポジトリに含まれるため、事前にリポジトリを有効化する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 ## RHEL 9&lt;br /&gt;
 sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms&lt;br /&gt;
 &lt;br /&gt;
 ## RHEL 10&lt;br /&gt;
 sudo subscription-manager repos --enable codeready-builder-for-rhel-10-x86_64-rpms&lt;br /&gt;
 &lt;br /&gt;
 sudo dnf install make cmake pkg-config autoconf libtool fakeroot golang python3 python3-pip python3-colorama python3-pyyaml \&lt;br /&gt;
                  libcap-ng-devel fontconfig-devel freetype-devel libnl3-devel pam-devel mesa-libGL-devel                    \&lt;br /&gt;
                  libX11-devel libXext-devel libXfixes-devel libXi-devel libXrender-devel libxcb-devel libXcursor-devel xcb-util-cursor-devel            \&lt;br /&gt;
                  xcb-util-keysyms-devel xcb-util-image-devel xcb-util-wm-devel libXfixes-devel libXrandr-devel xcb-util-renderutil-devel xcb-util-devel \&lt;br /&gt;
                  libXinerama-devel libxkbcommon-devel libxkbcommon-x11-devel&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install make cmake pkg-config autoconf libtool fakeroot go python3 python3-pip python3-colorama python3-PyYAML \&lt;br /&gt;
                     libcap-ng-devel fontconfig-devel freetype2-devel libnl3-devel pam-devel Mesa-libGL-devel               \&lt;br /&gt;
                     libX11-devel libXext-devel libXfixes-devel libXi-devel libXrender-devel libxcb-devel libXcursor-devel xcb-util-cursor-devel            \&lt;br /&gt;
                     xcb-util-keysyms-devel xcb-util-image-devel xcb-util-wm-devel libXfixes-devel libXrandr-devel xcb-util-renderutil-devel xcb-util-devel \&lt;br /&gt;
                     libXinerama-devel libxkbcommon-devel libxkbcommon-x11-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/Windscribe/Desktop-App/ Windscribe VPNのGithub]にアクセスして、GUIソフトウェアのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf Desktop-App-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd  Desktop-App-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
tools/depsに移動して、以下に示すシェルスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドされたライブラリは build-libsディレクトリに配置される。&amp;lt;br&amp;gt;&lt;br /&gt;
Qt 6をビルドする場合、check_for_ulimitに関するエラーが発生する場合は、CMakeのバージョンを3.24にダウングレードすること。&amp;lt;br&amp;gt;&lt;br /&gt;
 install_openssl_ech_draft&lt;br /&gt;
 install_qt&lt;br /&gt;
 install_cares&lt;br /&gt;
 install_curl&lt;br /&gt;
 install_boost&lt;br /&gt;
 install_lzo&lt;br /&gt;
 install_openvpn&lt;br /&gt;
 install_wireguard&lt;br /&gt;
 install_stunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
toolsディレクトリに移動して、build_allファイルを実行する。ビルドされたインストーラがbuild-exeディレクトリに配置される。&amp;lt;br&amp;gt;&lt;br /&gt;
その他のビルドオプションについては、&amp;lt;code&amp;gt;build_all --help&amp;lt;/code&amp;gt;コマンドを実行して参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribe VPNのGUIソフトウェアは、/opt/windscribeディレクトリにインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このソフトウェアの動作ログは ~/.local/share/Windscribe/Windscribe2ディレクトリに保存されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuard ==&lt;br /&gt;
WireGuardは、プロ版の機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
[https://nld.windscribe.com/getconfig/wireguard Windscribeの公式Webサイト]にあるページ上部からログインすること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ポートフォワーディング ==&lt;br /&gt;
ポートフォワーディング機能により、Windscribeに接続したまま、ユーザのデバイスやホームネットワーク上のサービスにリモートでアクセスすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これには以下のようなものが含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Plexサーバ&lt;br /&gt;
* ホームセキュリティカメラ&lt;br /&gt;
* NAS&lt;br /&gt;
* Torrentクライアント&lt;br /&gt;
* Webサーバ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ポートフォワーディングには複数のメリットがある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザの接続の保護&lt;br /&gt;
*: ユーザは、Windscribeのクライアントに接続したままで、全てのメリットを得ることができる。&lt;br /&gt;
* 外部IPが公開されない&lt;br /&gt;
*: リソースにアクセスするためにISPから割り当てられたIPを使用する必要がない。&lt;br /&gt;
*: これらのIPは常に変更される。静的IPはそうではない。&lt;br /&gt;
* 無料のDDoS保護&lt;br /&gt;
*: DDoS攻撃を受けても、Windscribeのサーバが攻撃を防御する。&lt;br /&gt;
* Torrentシーディング&lt;br /&gt;
*: 最適なアップロード速度を得るには、ポートフォワーディング機能が必要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全てのプロ版ユーザは、一時的なポートフォワーディングを利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
恒久的なポートフォワーディングを利用するには、[https://windscribe.com/staticips 静的IP]または[https://windscribe.com/staticips レジデンシャルIP]を購入する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
その後、Windscribe VPNのCUI / GUIソフトウェアを使用するか、または、手動で設定するかの2つの方法がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ポートフォワーディング機能の設定の詳細を知りたい場合は、[https://windscribe.com/knowledge-base/articles/setting-up-port-forwarding Windscribeの公式Webサイト]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※免責事項&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;設定したIPとポートにアクセスできるのは、許可された当事者だけであることを確認するのはユーザの責任である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ローカルデバイスで認証を行わずにポート転送を使用した場合、単純なポートスキャンによってインターネット上の誰でもデバイスにアクセスすることができる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Windscribeは、ユーザの内部サービスにおいて、認証が不十分であることにより発生する損失や損害に対して責任を負わない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN_-_Windscribe_VPN#Windscribe_VPNの設定|&amp;quot;Windscribe VPNの設定&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;Windscribe VPNは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentの使用 ==&lt;br /&gt;
Windscribe VPNは、ほとんどの接続先サーバでトレントを許可している。&amp;lt;br&amp;gt;&lt;br /&gt;
サーバ選択メニューでは、P2Pファイル共有に使用してはいけないサーバが明記されており、このようなサーバはP2PアイコンにX印が付いている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
Torrentプロトコルは、以下の手順でより安全に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentクライアントの設定のみ記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、uTorrent、Vuze、BitComet等のクライアントは、オープンソースではなく、アドウェアやジャンクウェアが含まれていたり、優れたプライバシー設定が施されていないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardとOpenVPNを切り替えた場合、ネットワークインターフェイスを再バインドして、qBittorrentを再起動する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、SOCKS5を使用している場合は、WireGuardまたはOpenVPNの使用に応じて、IPアドレスを変更する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Windscribe VPNを接続する。&lt;br /&gt;
# qBittorrentを起動して、[ツール]メニューバー - [設定]メニューを選択する。&lt;br /&gt;
# [設定]画面左ペインにある[高度]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* OpenVPNを使用したWindscribe VPNソフトウェア (Windscribe VPNソフトウェアからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* OpenVPNスタンドアロン (NetworkManagerからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardを使用したWindscribe VPNソフトウェア (Windscribe VPNソフトウェアからWireGuardで接続している場合)&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [バインドする任意のIPアドレス]プルダウンから、Windscribe VPNで接続しているIPアドレスを選択する。&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択してqBittorrentを終了して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング (ポート転送) ====&lt;br /&gt;
qBittorrentを起動して、[接続] - [受信接続に使用するポート]にポートを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、シードが向上する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5が有効な場合、この機能は無効になることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bittorrentクライアントへのポートフォワーディングの詳細を知りたい場合は、ポートフォワードガイドを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
==== Windscribe VPNは中国で利用可能 ====&lt;br /&gt;
近年では、中国政府は中国国内でのVPNの使用を厳しく取り締まっており、結果的に中国のファイアウォールを通過できるVPNは少なくなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
多くのユーザから、Windscribeは中国で利用できるという声が届いており、中国のような規制の厳しい環境でも接続できる機能がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeは、OpenVPN通信を安全なTLSで隠すステルスVPNモードがあり、中国で利用する場合はこのモードを有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
中国で他のプロトコルが利用できない場合、WindscribeはWstunnelモードがあり、これはOpenVPN通信をWebソケットで覆うモードである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年2月には、ディープパケット検査 (DPI) を迂回するために設計された新しいステルスVPNアプリが開発されている。&amp;lt;br&amp;gt;&lt;br /&gt;
このアプリはAmneziaWG (Amnezia WireGuard) のネイティブサポートを採用しており、イランやロシア等の検閲が厳しい地域での利用を主な目的としている。&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月現在、Androidベータ版として提供されている段階である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WindscribeのFAQでは、中国でVPNが使用できない場合は、サポートに問い合わせるように推奨している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_Proton_VPN&amp;diff=14591</id>
		<title>VPN - Proton VPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_Proton_VPN&amp;diff=14591"/>
		<updated>2026-03-24T12:55:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Proton VPNは、プライバシーを重視した多彩なアーキテクチャ、高度なセキュリティ特性、確かな性能を備えた機能豊富なVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WindowsおよびMac OSと同様、Linux向けにもGUIソフトウェアを提供しており、機能の有効化とサーバへの接続を簡単に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
GUIソフトウェアは、全ての主要なLinuxディストリビューション（RedHat系、Debian系、Manjaro、Arch系）に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月現在、Proton VPNは、110カ国以上で18,000台以上のサーバを提供しており、プライバシーに配慮したスイスに拠点を置いている。&amp;lt;br&amp;gt;&lt;br /&gt;
それは、トラフィックが厳格なプライバシー法で保護されている多数の厳しいサーバを通過することを意味する安全な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
それらの機能には、厳格なノーログポリシー、キルスイッチ、広告ブロッカー等も含まれている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
高レベルのセキュリティとともに、Proton VPNは、ユーザのオンラインアクティビティを傍受しないことを確認する暗号化の業界標準形式であるAES-256暗号を実装している。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、ユーザの匿名性を維持するだけでなく、地理的に制限されたストリーミングプラットフォームや他のコンテンツのブロックを解除するのに役立つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNのメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 直感的なユーザインターフェイス&lt;br /&gt;
* 広告ブロック機能(NetShield)&lt;br /&gt;
* 厳格なノーログポリシー&lt;br /&gt;
* DNSリーク防止機能&lt;br /&gt;
* キルスイッチ&lt;br /&gt;
* 30日間返金保証&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNのデメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ライブチャットは有料プランのみ対応 (無料プランは非対応)&lt;br /&gt;
* 無料サーバはTorrentをサポートしない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proton VPNのノーログポリシーと信頼性 ==&lt;br /&gt;
Proton VPNは厳格なノーログポリシーを掲げており、独立した第三者機関による監査によってその実態が検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、ノーログポリシーの内容、捜査機関への対応実績、法的管轄の特性、および他社との比較について記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ノーログポリシーの内容 ====&lt;br /&gt;
Proton VPNが記録しないデータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN接続ログ&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* セッション長&lt;br /&gt;
* 位置情報&lt;br /&gt;
* ネットワークトラフィック内容&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例外的に記録される可能性があるデータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 不正行為対策の一時的IPログ (期間限定)&lt;br /&gt;
* 利用規約違反 (DDoS、スパム等) 検出時のIPアドレス (永続的)&lt;br /&gt;
* ユーザが自ら有効化した認証ログ (デフォルトOFF)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
独立監査については、Securitum (ポーランド) による4年連続の監査に合格している。(最新: 2025年8月)&amp;lt;br&amp;gt;&lt;br /&gt;
本番サーバへの直接アクセスによる技術検証で &amp;lt;u&amp;gt;ノーログポリシーに完全準拠&amp;lt;/u&amp;gt; と結論付けられた。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
監査で確認された管理体制を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 自動化検出ツール (Infra Auditシステム)&lt;br /&gt;
* デュアルコントロール変更管理 (2名のシニアエンジニア承認必須)&lt;br /&gt;
* 自動構成管理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提供事例 ====&lt;br /&gt;
重要な前提として、問題が起きたのは全てProton Mail側であり、Proton VPN側では提供できるデータがないため事例は報告されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Proton Mail側の事例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 年 !! 事件名 !! 概要&lt;br /&gt;
|-&lt;br /&gt;
| 2021年 || フランス活動家事件 || ProtonMailユーザのIPアドレスを提供&amp;lt;br&amp;gt;フランス警察→Europol→スイス当局→Protonの経路で法的命令。&amp;lt;br&amp;gt;事件後、Protonは「IPアドレスを記録しない」という記載をWebサイトから削除&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || カタルーニャ独立活動家事件 || 復旧用メールアドレス (Apple iCloud) を提供&amp;lt;br&amp;gt;Apple経由で本名・住所が特定された。&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Stop Cop City事件 (米国) || 支払いデータ (クレジットカード識別子) を提供&amp;lt;br&amp;gt;MLAT (相互法的支援条約) 経由でFBIが身元特定&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPN側の実績として、2025年6月までに29件の法執行機関からの要求があったが、全て &amp;lt;u&amp;gt;提供できるデータなし&amp;lt;/u&amp;gt; として却下している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
透明性レポートによると、2017〜2025年の累計で45,667件の要求を受け、40,389件に対応している (対応率約90%)。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし対応したのはメール等のメタデータであり、VPN接続ログは含まれない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スイスの法的管轄 ====&lt;br /&gt;
スイスの法的管轄に関する特性を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* スイスは14 Eyes同盟に非加盟&lt;br /&gt;
* 現行スイス法ではVPNプロバイダーにデータ保持義務なし&lt;br /&gt;
* スイス当局からの正式な法的命令には従う義務あり (スイス刑法第271条)&lt;br /&gt;
* ただしスイス連邦情報局 (NDB) は100以上の国際情報機関と接触を保有&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VÜPF改正 ====&lt;br /&gt;
スイス司法警察省が推進中の郵便・電気通信トラフィック監視令 (VÜPF) の改正が、現在最大の懸念事項となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提案内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザ数5,000人以上のVPN / メールサービスに対して以下を義務化&lt;br /&gt;
*: IPアドレスログの6ヶ月保持&lt;br /&gt;
*: ユーザ識別&lt;br /&gt;
*: 当局要請時の復号化能力 (バックドア) 構築&lt;br /&gt;
* 議会での標準的な議論をスキップし行政令として推進&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Protonの対応として、国連フォーラムで本改正案を批判するとともに、インフラの大部分をスイス国外へ移転する段階的計画を2025年に開始している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
下表に、主要なノーログVPNの比較を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! サービス名 !! 拠点 !! 信頼性の根拠&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || スウェーデン || 2023年に警察が本社を強制捜索&amp;lt;br&amp;gt;データ一切なし (最強の実証)&lt;br /&gt;
|-&lt;br /&gt;
| Proton VPN || スイス || 4年連続の第三者監査合格&amp;lt;br&amp;gt;ただしVÜPF改正リスクあり&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN || パナマ || 複数回の独立監査合格&amp;lt;br&amp;gt;14 Eyes同盟の影響外&lt;br /&gt;
|-&lt;br /&gt;
| ExpressVPN || 英領ヴァージン諸島 || 2016年トルコ政府のサーバ押収時にデータ提供不可を実証&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
Proton VPNに関する総合評価を以下に示す。(2026年3月現在の情報)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Proton VPNは、現時点では、本当のノーログVPNと言える。&lt;br /&gt;
* 4年連続の独立監査で検証済み、VPN側で捜査機関にデータを提供した事例なし&lt;br /&gt;
* Proton MailとVPNは別サービス (Mailでは複数回データ提供実績あり)&lt;br /&gt;
* スイスのVÜPF改正法が最大のリスク (施行されればノーログポリシー維持が法的に不可能)&lt;br /&gt;
* メタデータ (支払い情報、復旧メール等) は保護対象外&lt;br /&gt;
* 最強の実績を求めるならMullvad VPNが最も実証済み&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proton VPNの契約 ==&lt;br /&gt;
Proton VPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://protonvpn.com Proton VPNの公式Webサイト]へアクセスして、ページ右上にある[Create free account]を選択する。&lt;br /&gt;
# VPNのプランを選択する。&lt;br /&gt;
# Protonのアカウントを作成する。&lt;br /&gt;
# クレジットカード、PayPal、ビットコイン等のいずれかを選択して、金額を支払う。&lt;br /&gt;
# Eメールアドレスを入力して、[購入を完了]または[〜へ進む]を選択する。&lt;br /&gt;
# 支払いが完了した後、遷移先のページにユーザ名とパスワードが表示される。&amp;lt;br&amp;gt;入力したEメールアドレスがアカウントのIDとして登録される。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;また、Eメールアドレスにサブスクリプションを回復する時のトークンが送付されるので、大切に保管すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# アカウントのパスワードの変更画面が自動的に立ち上がるため、任意のパスワードに変更する。&lt;br /&gt;
#: パスワードにおいて、&amp;lt;u&amp;gt;$&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;*&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;%&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;[&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;]&amp;lt;/u&amp;gt; の文字は使用できない。&lt;br /&gt;
# 自動的にアカウントページに遷移するので、[アプリをダウンロード]を選択して、Proton VPNソフトウェアをダウンロードする。&lt;br /&gt;
#: Proton VPNソフトウェアは、Windows、MacOS、Linux、Android、iOSに対応している。&lt;br /&gt;
#: また、ブラウザの拡張機能はChrome、Firefoxが対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNでは、1ヶ月9.99ドル、1年間47.88ドル (月あたり3.99ドル)、2年間71.76ドル (月あたり2.99ドル) の料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proton VPNのインストール ==&lt;br /&gt;
==== ビルドに必要なライブラリのインストール ====&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gtk3-devel gobject-introspection-devel python3-devel libsecret-devel systemd-devel \&lt;br /&gt;
                  libappindicator-gtk3 gnome-keyring \&lt;br /&gt;
                  python3-requests python3-pyOpenSSL python3-bcrypt python3-cairo python3-gobject \&lt;br /&gt;
                  python3-psutil python3-pyxdg \&lt;br /&gt;
                  python3-keyring python3-jinja2 python3-distro python3-gnupg python3-dbus python3-systemd&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install gtk3-devel gobject-introspection-devel python3-devel libsecret-devel systemd-devel \&lt;br /&gt;
                     libappindicator3-1 gnome-keyring \&lt;br /&gt;
                     python3-requests python3-pyOpenSSL python3-bcrypt python3-pycairo python3-gobject \&lt;br /&gt;
                     python3-gobject-cairo python3-psutil python3-dataclasses python3-pyxdg \&lt;br /&gt;
                     python3-keyring python3-Jinja2 python3-distro python3-python-gnupg python3-dbus-python python3-systemd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPNの実行に必要なライブラリのインストール ====&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gtk3 dbus-x11 xdg-utils libsecret \&lt;br /&gt;
                  python3-requests python3-pyOpenSSL python3-bcrypt python3-cairo python3-gobject \&lt;br /&gt;
                  python3-psutil python3-pyxdg \&lt;br /&gt;
                  python3-keyring python3-jinja2 python3-distro python3-gnupg python3-dbus python3-systemd&lt;br /&gt;
                  # Proton VPN GUIの動作に必要&lt;br /&gt;
                  webkit2gtk3&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install libgtk-3-0 dbus-1-x11 xdg-utils libsecret-1-0 \&lt;br /&gt;
                     python3-requests python3-pyOpenSSL python3-bcrypt python3-pycairo python3-gobject \&lt;br /&gt;
                     python3-gobject-cairo python3-psutil python3-dataclasses python3-pyxdg \&lt;br /&gt;
                     python3-keyring python3-Jinja2 python3-distro python3-python-gnupg python3-dbus-python python3-systemd&lt;br /&gt;
                     # Proton VPN GUIの動作に必要&lt;br /&gt;
                     libwebkit2gtk-4_0-37 webkit2gtk-4_0-injected-bundles typelib-1_0-WebKit2-4_0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt;コマンドを使用せずにインストールする場合、先にインストールディレクトリを作成する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
この時、インストールディレクトリ名は、&amp;lt;u&amp;gt;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages&amp;lt;/u&amp;gt; としなければならない。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p /&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages&lt;br /&gt;
 例. mkdir -p /&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python3.6/site-packages&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールディレクトリを作成していない場合は、ビルドエラーが起きる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPNクライアントのインストール ====&lt;br /&gt;
[https://github.com/ProtonMail/proton-python-client Proton VPNクライアントのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf proton-python-client-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd proton-python-client-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonMail/proton-python-client.git&lt;br /&gt;
 cd proton-python-client&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNクライアントをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPNライブラリのインストール ====&lt;br /&gt;
[https://github.com/ProtonVPN/protonvpn-nm-lib Proton VPNライブラリのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf protonvpn-nm-lib-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd protonvpn-nm-lib-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonVPN/protonvpn-nm-lib.git&lt;br /&gt;
 cd protonvpn-nm-lib&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPN CLIのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;Proton VPN CLIを使用する場合のみインストールする。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/ProtonVPN/linux-cli Proton VPN CLIのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf linux-cli-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd linux-cli-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonVPN/linux-cli.git&lt;br /&gt;
 cd linux-cli&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPN CLIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPN GUIのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;Proton VPN GUIを使用する場合のみインストールする。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/ProtonVPN/linux-app Proton VPN GUIのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf linux-app-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd linux-app-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonVPN/linux-app.git&lt;br /&gt;
 cd linux-app&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPN GUIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_CyberGhost&amp;diff=14590</id>
		<title>VPN - CyberGhost</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_CyberGhost&amp;diff=14590"/>
		<updated>2026-03-24T11:52:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
CyberGhostは、2011年にルーマニアで設立された企業であり、プライバシーに関して徹底したコミットメントを実践している。&amp;lt;br&amp;gt;&lt;br /&gt;
ルーマニア(本社)とドイツに拠点があり、EUのデータ保持法やスパイ法の対象とならないため、ユーザが影響を受けることはない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 暗号化&lt;br /&gt;
*: 256ビットのAES暗号化アルゴリズム(財務、軍事、政府等の機密扱いの分野で使用されるのと同じ暗号化)を使用している。&lt;br /&gt;
* OpenVPNプロトコル&lt;br /&gt;
*: 高度なセキュリティや最高のパフォーマンスを実現するため、CyberGhost VPNソフトウェアはOpenVPNプロトコルを使用している。&lt;br /&gt;
* WireGuardプロトコル&lt;br /&gt;
*: 速度向上と最新の暗号化を希望されるユーザは、WireGuardプロトコルを選択すること。&lt;br /&gt;
*: OpenVPNより最大4倍高速であり、モバイルデバイスではデフォルトプロトコルとなっている。&lt;br /&gt;
* IKEv2プロトコル&lt;br /&gt;
*: MicrosoftおよびCiscoが開発した軽量プロトコルであり、モバイルおよび物理的に近いサーバとの接続に最適化されている。&lt;br /&gt;
* 厳格なノーログポリシー&lt;br /&gt;
*: CyberGhostのVPNサーバは、RAMのみで動作する構成を採用しており、ユーザのデータを一切保管しない。&lt;br /&gt;
*: Deloitteによる独立監査(2022年および2024年実施)において、ノーログポリシーへの準拠が確認されている。&lt;br /&gt;
*: 詳細については、後述の「ノーログポリシーと信頼性」セクションを参照すること。&lt;br /&gt;
* インターネットの制限無し&lt;br /&gt;
*: Netflix、HBO Now、Amazonプライム、、その他のサービスに無制限にアクセスできる。&lt;br /&gt;
*: CyberGhostでIPアドレスを変更することにより、地域的制限を迂回して、お気に入りのコンテンツやソーシャルメディアプラットフォーム、ゲーミングサイトのブロックを解除できる。&lt;br /&gt;
* 最大7台のデバイスを保護&lt;br /&gt;
*: CyberGhostは、全ての主要OSに対して最適化されている。1つのプランに契約するだけで、インターネットに接続するデバイスを最大7台まで保護できる。&lt;br /&gt;
* 24時間365日のライブチャットサポート&lt;br /&gt;
*: CyberGhostでは、ライブチャットまたはメールを通じて1日24時間 / 週7日のサポートを提供している。&lt;br /&gt;
*: なお、対応言語は、英語、ドイツ語、フランス語、ルーマニア語である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostが提供しているもう1つの便利な機能は、地域制限を回避できることである。&amp;lt;br&amp;gt;&lt;br /&gt;
世界中40以上のストリーミングサービスへアクセスすることができるため、BBC iPlayerやHuluを簡単に閲覧することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
Cyber Ghostの最大の特徴は、100%機能するという保証があることである。&amp;lt;br&amp;gt;&lt;br /&gt;
通常、ストリーミングサービスはVPNサーバのIPアドレスをブロックしてコンテンツへのアクセスを制限しているが、CyberGhostは、閲覧したいWebサイトのブロックを解除をできるよう保証している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、CyberGhostのP2Pポリシーは、ファイル共有やTorrent等にも利用できるが、匿名トレントに最適化された指定サーバのみで使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linux向けのCyberGhost VPNソフトウェアは、Ubuntu 20.04 / 22.04、Fedora 29〜31、Linux Mint 19、Kali Linux、CentOS 7、PoP!_OSに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
なお、SUSE向けの公式インストールパッケージは提供されていないが、OpenVPN接続を手動で設定することにより使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;CyberGhostは、Kape Technologies (旧Crossrider) というイスラエル出身の経営陣が率いる企業によって運営されていることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Kape Technologiesの経歴および懸念事項の詳細については、後述の [[#ノーログポリシーと信頼性]]セクションを参照すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーと信頼性 ==&lt;br /&gt;
==== ノーログポリシーの技術的裏付け ====&lt;br /&gt;
CyberGhostは、以下のデータを一切保持しないことを公式に明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
* 受信および送信IPアドレス&lt;br /&gt;
* 閲覧履歴およびDNSクエリ&lt;br /&gt;
* データ転送量&lt;br /&gt;
* VPNサーバの使用記録&lt;br /&gt;
* 接続日時および接続時間&lt;br /&gt;
* ダウンロードされたファイル&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術的な対策として、CyberGhostはRAMのみで動作するサーバ(RAMディスクサーバ)を採用しており、&amp;lt;br&amp;gt;&lt;br /&gt;
サーバの再起動時に全てのデータが自動的に消去される仕組みとなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、閲覧活動がハードディスクに書き込まれることはなく、データ保持のリスクを最小化している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、国際的な監査企業であるDeloitteを招請して、サーバおよび管理システムの検査を実施している。&amp;lt;br&amp;gt;&lt;br /&gt;
Deloitteは2022年と2024年にそれぞれ監査を行い、CyberGhostのサーバがノーログポリシーに準拠していることを確認している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostがルーマニアを拠点としていることには、プライバシー保護の観点から以下の意義がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ルーマニア法では、VPNプロバイダーにユーザの閲覧活動をログに記録する法的義務がない。&lt;br /&gt;
* ルーマニアは5Eyes、9Eyes、14Eyesといった国際情報共有同盟に属していない。&lt;br /&gt;
* EUのGDPR、E-Privacy法、E-Commerce法により、厳格なデータ保護規制が存在する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポートと捜査機関への対応 ====&lt;br /&gt;
CyberGhostは、VPN業界で初めて四半期ごとの透明性レポートを発行している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2019年第1四半期(1月〜3月)の透明性レポートでは、以下の法的要求を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
* 総請求件数 : 22,595件&lt;br /&gt;
*: DMCA著作権侵害申し立て : 18,972件 (84%)&lt;br /&gt;
*: 悪意あるサイバー活動フラグ(DDoS、ボットネット、詐欺、不正アクセス報告) : 3,602件 (16%)&lt;br /&gt;
*: 警察および法執行機関からの要求 : 21件 (1%未満)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの警察からの要求に対して、CyberGhostは全件「ユーザ情報を提供できない」と回答している。&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーにより提供すべきデータが存在しないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、ドイツ連邦刑事警察庁(BKA)からCyberGhostに対する具体的なデータ提出事例は、公開情報の範囲では確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 親会社 Kape Technologies の経歴 ====&lt;br /&gt;
CyberGhostの親会社であるKape Technologies (旧Crossrider) には、以下の懸念事項が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Crossrider時代 (2011年〜2018年) の問題点 :&amp;lt;br&amp;gt;&lt;br /&gt;
* Crossriderは、ブラウザ拡張機能の開発および配布プラットフォームを提供していた企業である。&lt;br /&gt;
* 一部の悪質なアクターがプラットフォームを悪用して、マルウェアおよびアドウェアの開発に利用した。&lt;br /&gt;
* SymantecやMalwarebytes等のセキュリティ企業が、CrossriderのSDKで作成されたソフトウェアをマルウェアと判定した。&lt;br /&gt;
* 問題の内容として、広告インジェクション、ユーザデータ収集、ブラウザハイジャッキングが挙げられている。&lt;br /&gt;
* Crossriderは2016年にプラットフォームを完全にシャットダウンした。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN企業の買収戦略 :&amp;lt;br&amp;gt;&lt;br /&gt;
* 2017年&lt;br /&gt;
*: CyberGhostを買収、その後、社名をKape Technologiesに改名した。&lt;br /&gt;
* 2018年&lt;br /&gt;
*: ZenMateを買収 (550万ドル)&lt;br /&gt;
* 2019年&lt;br /&gt;
*: Private Internet Access (PIA) を買収 (1億2,600万ドル)&lt;br /&gt;
* 2021年&lt;br /&gt;
*: ExpressVPNを買収 (9億3,600万ドル)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
経営陣の経歴 :&amp;lt;br&amp;gt;&lt;br /&gt;
* 創業者Koby Menachemi(元CEO) : イスラエル軍情報機関Unit 8200(イスラエルのNSA相当)出身&lt;br /&gt;
* 実質的支配者Teddy Sagi : 1996年に収賄および証券詐欺で有罪、マン島のシェルカンパニー経由で同社を支配&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レビューサイトの利益相反 :&amp;lt;br&amp;gt;&lt;br /&gt;
* KapeはVPN評価サイトであるVPN Mentor、Wizcase、Safety Detectivesも所有している。&lt;br /&gt;
* これらのレビューサイトが自社VPN製品を高く評価する利益相反の構造が指摘されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
CyberGhostに関連する主なセキュリティインシデントを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2018年6月 : Typeformデータ漏洩&lt;br /&gt;
*: 第三者サービスプロバイダーであるTypeformのバックアップサーバが侵害された。&lt;br /&gt;
*: CyberGhostユーザのメールアドレス120件およびユーザ名14件が流出した。&lt;br /&gt;
*: パスワード、支払い情報、IPアドレスは流出していない(CyberGhostがこれらを第三者サーバに保存していないため)。&lt;br /&gt;
* 2024年 : パスワード漏洩&lt;br /&gt;
*: 83,600件のCyberGhostアカウントのパスワードが流出したと報告された。&lt;br /&gt;
*: 調査の結果、これらのパスワードは外部マルウェア攻撃によりユーザのデバイスから窃取されたものであり、CyberGhostのインフラストラクチャ自体の侵害ではないことが確認されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2026年の民営化と透明性の変化 ====&lt;br /&gt;
Kape Technologiesは2026年1月1日から完全に民営化され、ロンドン証券取引所での上場が廃止された。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、以下の懸念が生じている。&amp;lt;br&amp;gt;&lt;br /&gt;
* 企業のファイリング情報が公開されなくなった。&lt;br /&gt;
* 透明性レポートの公開状況が不確定となった。&lt;br /&gt;
* アナリストおよび一般市民が企業動向を監視できなくなった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 信頼性の総合評価 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CyberGhost VPNの信頼性評価&lt;br /&gt;
! 評価項目 !! 状況&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシーの技術的裏付け || Deloitte監査あり、RAMサーバ採用&lt;br /&gt;
|-&lt;br /&gt;
| 捜査機関へのデータ提出 || 確認された事例なし&lt;br /&gt;
|-&lt;br /&gt;
| 親会社の信頼性 || マルウェア企業からの転身、軍情報機関との関連&lt;br /&gt;
|-&lt;br /&gt;
| 透明性 || 2026年の民営化により大幅に低下&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostは技術的にはノーログを実現しており、実際にデータを提出した事例も確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、親会社Kape Technologiesの過去の経歴、経営陣の情報機関との関連、レビューサイト支配による利益相反、&amp;lt;br&amp;gt;&lt;br /&gt;
および2026年の民営化による透明性の喪失は、プライバシーを重視するユーザにとって無視できない懸念事項である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの契約 ==&lt;br /&gt;
CyberGhostの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]へアクセスして、ページ中央にある[今すぐ購入]を選択する。&lt;br /&gt;
# VPNのプランを選択する。&lt;br /&gt;
# [お支払い方法]では、クレジットカード、PayPal、ビットコインのいずれかを選択する。&amp;lt;br&amp;gt;なお、28ヶ月および6ヶ月プランでは45日間の返金保証があり、1ヶ月プランでは14日間の返金保証がある。&lt;br /&gt;
# Eメールアドレスを入力して、[購入を完了]または[〜へ進む]を選択する。&lt;br /&gt;
# 支払いが完了した後、遷移先のページにユーザ名とパスワードが表示される。&amp;lt;br&amp;gt;入力したEメールアドレスがアカウントのIDとして登録される。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;また、Eメールアドレスにサブスクリプションを回復する時のトークンが送付されるので、大切に保管すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# アカウントのパスワードの変更画面が自動的に立ち上がるため、任意のパスワードに変更する。&amp;lt;br&amp;gt;パスワードにおいて、&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;の文字は使用できない。&lt;br /&gt;
# 自動的にアカウントページに遷移するので、[アプリをダウンロード]を選択して、CyberGhost VPNソフトウェアをダウンロードする。&amp;lt;br&amp;gt;CyberGhost VPNソフトウェアは、Windows、macOS、Linux、Android、iOSに対応している。&amp;lt;br&amp;gt;また、ブラウザの拡張機能はChrome、Firefoxが対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostでは、1ヶ月1,790円、6ヶ月1,000円/月(合計6,000円)、28ヶ月290円/月(初回合計8,120円)の料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
なお、28ヶ月および6ヶ月プランでは45日間の返金保証があり、1ヶ月プランでは14日間の返金保証がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
Cyber Ghost VPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの使用手順 : CyberGhost CLIを使用する場合 ==&lt;br /&gt;
==== CyberGhost CLIのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;CyberGhost CLIで必要なのものは、CyberGhostのユーザ名とパスワードのみである。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[Donwload Hub] - アカウントページ右にある[CyberGhost VPN for Linux] - [Configure]を選択する。&lt;br /&gt;
# [SERVER DISTRIBUTION]プルダウンは[Fedora 32]を選択して、[Download App]を選択する。&lt;br /&gt;
# CyberGhost CLIをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍して、必要であれば、任意の名前に変更する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip cyberghostvpn-&amp;lt;ディストリビューション名&amp;gt;-&amp;lt;バージョン&amp;gt;.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;mv cyberghostvpn-&amp;lt;ディストリビューション名&amp;gt;-&amp;lt;バージョン&amp;gt; CyberGhost&amp;lt;/code&amp;gt;&lt;br /&gt;
# CyberGhost CLIをインストールする。&lt;br /&gt;
## &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
## SUSEを使用する場合、CyberGhost CLIの実行に必要な依存関係のライブラリは、事前にインストールしている必要がある。&amp;lt;br&amp;gt;そのため、Python 3とOpenVPNのインストールを求められたら、[N]を入力する。&lt;br /&gt;
## CyberGhost CLIのインストール時に、CyberGhostの&amp;lt;u&amp;gt;ユーザ名&amp;lt;/u&amp;gt;および&amp;lt;u&amp;gt;パスワード&amp;lt;/u&amp;gt;が求められるため、それぞれ入力する。&lt;br /&gt;
# インストールが正常に完了すると、&amp;lt;u&amp;gt;&amp;quot;Install completed ...&amp;quot;&amp;lt;/u&amp;gt;というメッセージが表示される。&lt;br /&gt;
# &amp;lt;code&amp;gt;cyberghostvpn&amp;lt;/code&amp;gt;コマンドを実行することにより、使用可能なコマンドのリストが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CyberGhost CLIのコマンド ====&lt;br /&gt;
接続先の全ての国(国のコード)を確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --traffic --country-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続先の国の都市(都市のコード)を確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --traffic --country-code &amp;lt;国のコード&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1つの都市で利用可能なサーバ(接続先のサーバ名)のリストを取得するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --traffic --country-code &amp;lt;国のコード&amp;gt; --city &amp;quot;&amp;lt;都市のコード&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続先の国を選択するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --country-code &amp;lt;国のコード&amp;gt;&lt;br /&gt;
 例. cyberghostvpn --country-code DE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続先の国の都市を選択するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --country-code &amp;lt;国のコード&amp;gt; --city &amp;quot;&amp;lt;都市のコード&amp;gt;&amp;quot;&lt;br /&gt;
 例. cyberghostvpn --country-code DE --city frankfurt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhost VPNに接続するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトでは、OpenVPNプロトコルを使用して接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
接続に成功すると、&amp;lt;u&amp;gt;&amp;quot;VPN connection established&amp;quot;&amp;lt;/u&amp;gt;というメッセージが表示される。&lt;br /&gt;
 sudo cyberghostvpn --connect&lt;br /&gt;
 # または&lt;br /&gt;
 sudo cyberghostvpn --country-code &amp;lt;国のコード&amp;gt; --city &amp;quot;&amp;lt;都市のコード&amp;gt;&amp;quot; --connect&lt;br /&gt;
 例. sudo cyberghostvpn --country-code DE --city frankfurt --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、接続先のサーバ名を知っている場合、特定のサーバに直接接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
接続に成功すると、&amp;lt;u&amp;gt;&amp;quot;VPN connection established&amp;quot;&amp;lt;/u&amp;gt;というメッセージが表示される。&lt;br /&gt;
 sudo cyberghostvpn --server &amp;lt;サーバ名&amp;gt; --connect&lt;br /&gt;
 例. sudo cyberghostvpn --server frankfurt-s402-i01 --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続が有効かどうかを確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続を終了するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --stop &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPアドレスが匿名かつプライベートなCyberGhostに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;&lt;br /&gt;
IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== CyberGhost CLIのアンインストール ====&lt;br /&gt;
CyberGhost CLIをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --uninstall&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ストリーミングを視聴する場合 ====&lt;br /&gt;
CyberGhostでは、ストリーミングに最適化されたVPNサーバを使用して、&amp;lt;br&amp;gt;&lt;br /&gt;
Netflix、Amazonプライムビデオ、BBC iPlayer等の地域制限のあるコンテンツにアクセスすることが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらのサービスのために、最適化されたVPNサーバの1つに接続する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、CyberGhost CLIにストリーミング向けVPNサーバを経由して接続するよう指示することにより行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、サポートされているストリーミングサービス(Netflix DE、Hulu、Youtube等)のリストと国名(国のコード)を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --streaming --country-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、サーバータイプ&amp;quot;Streaming&amp;quot;、サービス&amp;quot;Netflix DE&amp;quot;、国(国コード)&amp;quot;DE&amp;quot;を指定して、VPN接続している。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --streaming &#039;Netflix DE&#039; --country-code DE --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;例えば、フランスで利用可能な全てのストリーミングサービスを確認する場合は、以下のコマンドを実行する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --streaming --country-code FR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;対応するフランスのストリーミングサービスが全て表示されるので、希望するストリーミングサービスに接続する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;以下の例では、Canal+(フランスの有料民間テレビ局)向けに最適化されたVPNサーバに接続している。&amp;lt;/u&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --streaming &#039;Canal+&#039; --country-code FR --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Torrentを使用する場合 ====&lt;br /&gt;
CyberGhost CLIは、安全にTorrentを使用できる幅広いP2P Torrentサーバを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;シードキューにあるTorrentは、メイン接続にトラフィックを発生させて追跡される可能性があるため、VPNサーバに接続するまではTorrentクライアントを起動しないこと。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、P2Pファイル共有をサポートしている国のリストを取得する。&lt;br /&gt;
（各国の様々な法律や政策のため、全ての国やサーバがP2Pファイル共有をサポートしているわけではない）&lt;br /&gt;
 cyberghostvpn --torrent --country-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
P2Pファイル共有に対応している国のリストを確認した後、接続先の国のコードを入力してVPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --torrent --country-code &amp;lt;国のコード&amp;gt; --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPNサーバに接続されていることを確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPアドレスが匿名かつプライベートなCyberGhostに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;&lt;br /&gt;
IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、Torrentクライアントを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの使用手順 : NetworkManagerを使用する場合 ==&lt;br /&gt;
Cyber Ghost(OpenVPN)を設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOME / KDE 共通&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[VPN] - アカウントページ右にある[Manage Devices] - [Configure Device]を選択する。&lt;br /&gt;
# 使用するプロトコル（OpenVPN等）、使用するサーバがある国名、サーバグループを選択する。&lt;br /&gt;
#* プロトコル&lt;br /&gt;
#*: OpenVPN等を選択する。&lt;br /&gt;
#* サーバグループ&lt;br /&gt;
#*: サーバグループとOpenVPNプロトコル（UDPまたはTCP）を選択する。&lt;br /&gt;
#*: UDPは、TCPより高速に通信できるが、場合によってはダウンロード等の処理において、中断されることがある。&lt;br /&gt;
#*: TCPは、UDPよりも安定した接続が可能であるが、若干通信速度が遅くなる。突然の切断等、接続に関する問題が頻繁に発生する場合は、TCPを選択する。&lt;br /&gt;
#* 使用するサーバがある国名&lt;br /&gt;
#*: ネイティブプロトコルの接続は、1つのサーバーとしか使用できないため、接続したい国を選択する。選択した該当国内のサーバは、CyberGhostにより自動的に選択される。&lt;br /&gt;
# [Save Configuration]を選択する。&lt;br /&gt;
# 上記の設定で生成されたOpenVPNの認証情報を見るには、[View Configuration]を選択する。&lt;br /&gt;
# [Save Configuration]を選択した後、接続認証情報が生成されて、新しいページに遷移する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;※重要 : この時、以下に示す情報を保存すること。(ユーザ名とパスワードは、後で入力を求められる)&amp;lt;/u&amp;gt;&lt;br /&gt;
#* サーバグループ&lt;br /&gt;
#*: 接続先の国にあるサーバのアドレスである。(例. 12345-1-ca.cg-dialup.net)&lt;br /&gt;
#*: このアドレスは、上記で選択した国ごとに変わる。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: このプロトコルのみで生成されるユーザ名である。&lt;br /&gt;
#*: これは、CyberGhostのアカウントのユーザ名ではなく、手動設定によりCyberGhostのサーバと認証するためにのみ使用される。&lt;br /&gt;
#* パスワード (表示するには、[Show Password]オプションにチェックを入力する必要がある)&lt;br /&gt;
#*: プロトコルを使用するためにのみ生成されたパスワードである。&lt;br /&gt;
#*: これは、CyberGhostのアカウントのパスワードではなく、手動設定によりCyberGhostのサーバで認証するためにのみ使用される。&lt;br /&gt;
#* 事前共有キー&lt;br /&gt;
# [Download Configuration]を選択して、OpenVPNの設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip config.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルは、以下に示すファイルを含む。&amp;lt;br&amp;gt;接続先の国を変更する場合、再度、アカウントページで使用する場所を設定し直して、新しいOpenVPNの設定ファイルをダウンロードする必要がある。&lt;br /&gt;
#* ca.crt&lt;br /&gt;
#*: 認証局の証明書&lt;br /&gt;
#* client.crt&lt;br /&gt;
#*: ユーザ証明書ファイル&lt;br /&gt;
#* client.key&lt;br /&gt;
#*: 秘密鍵ファイル&lt;br /&gt;
#* openvpn.ovpn&lt;br /&gt;
#*: OpenVPNの設定ファイル&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/code&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、国-場所-サーバアドレスである。&amp;lt;br&amp;gt;例. UnitedStates.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるパスワードを入力する。&lt;br /&gt;
#*: ［Store the password for all users（すべてのユーザーのパスワードを保存する）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
#* [ユーザ証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;client.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
#* ユーザーキーパスワード&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるユーザーキーパスワードを入力する。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で追加したCyberGhostのOpenVPN設定が作成されて、CyberGhostのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなCyberGhostに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/code&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. UnitedStates.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にCyberGhostのVPN接続が表示されるので、CyberGhostのVPN接続を選択する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;ファイルのパスが表示されていることを確認する。&lt;br /&gt;
#* [クライアント証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;client.crt&amp;lt;/code&amp;gt;ファイルのパスが表示されていることを確認する。&lt;br /&gt;
#* 秘密鍵のパスワード&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成される秘密鍵のパスワードを入力する。&lt;br /&gt;
#* 画面右のプルダウン&lt;br /&gt;
#*: ［すべてのユーザーのパスワードを保存する]を選択する。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、CyberGhostのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの解約 ==&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[ご契約] - アカウントページ右にある[自動更新をオフにする]を選択する。&lt;br /&gt;
# 自動更新をしない場合、次回の支払い期限での契約が更新されないため、実質解約となる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの返金 ==&lt;br /&gt;
返金において、申し込みから14日以内または45日以内にする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右下にある[ヘルプ]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
# 検索窓が表示されるので、&amp;lt;u&amp;gt;refund&amp;lt;/u&amp;gt;と入力して検索する。&lt;br /&gt;
# 名前、Eメールアドレス、言語、メッセージを入力して、検索窓の右下にある[チャットを開始]を選択する。&amp;lt;br&amp;gt;なお、メッセージ欄には、&amp;lt;u&amp;gt;&amp;quot;I would like to receive refund&amp;quot;&amp;lt;/u&amp;gt;のように入力する。&lt;br /&gt;
# チャットが開始されて、アカウントの確認のために&amp;lt;u&amp;gt;Reference Number&amp;lt;/u&amp;gt;または&amp;lt;u&amp;gt;Order ID&amp;lt;/u&amp;gt;が要求される。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;Reference Number&amp;lt;/u&amp;gt;または&amp;lt;u&amp;gt;Order ID&amp;lt;/u&amp;gt;は、CyberGhostの契約(または解約)時に受信したEメールに記載されている。&lt;br /&gt;
# チャットにて、VPNを解約する理由等を質問されるため、&amp;lt;u&amp;gt;&amp;quot;I don&#039;t need to use VPN anymore.&amp;quot;&amp;lt;/u&amp;gt;等と入力する。&lt;br /&gt;
# チャットを終了するには、チャット画面下部にある[送信]を選択する。&lt;br /&gt;
# 翌日以降に返金されるはずである。&amp;lt;br&amp;gt;後日、正常に返金されているかどうかを確認すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostのアカウントの削除 ==&lt;br /&gt;
返金期間内の場合、アカウントの削除は返金処理をした後に行うこと。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[設定] - アカウントページ右下にある[マイアカウントを削除]を選択する。&lt;br /&gt;
# パスワードまたはPUKを入力して、[保存]を選択する。&lt;br /&gt;
# アカウントが削除される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_PIA_VPN&amp;diff=14589</id>
		<title>VPN - PIA VPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_PIA_VPN&amp;diff=14589"/>
		<updated>2026-03-24T11:36:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PIA VPN(Private Internet Access VPN)は、91か国に約35,000台以上のサーバを所有しており、各サーバはRAMベースであるため、安心して利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
他のVPNサービスのサーバの一部はレンタルサーバである場合が多いが、全てを所有することにより、サーバを危険にさらす可能性のある仲介者を排除することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、RAMベースのサーバは、全ての匿名化されたデータを、スイッチを押すように簡単に削除することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
実際に、IP / DNSリーク保護のおかげで、20台の別々のサーバでのテスト中、ユーザのIPが明らかになることはなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ポートフォワーディングや、難読化を伴う2重VPN接続によるSOCKS5およびShadowsocksプロキシへのアクセス等、安全にTorrentを実行するためのいくつかの機能も備えている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
小さな問題として、アメリカに拠点を置いていることである。&amp;lt;br&amp;gt;&lt;br /&gt;
アメリカは、侵襲的なプライバシー法を持っていることで知られており、5アイズ、9アイズ、14アイズアライアンスの一員でもある。&amp;lt;br&amp;gt;&lt;br /&gt;
このため、一部のプライバシー擁護派は神経質になっている。&amp;lt;br&amp;gt;&lt;br /&gt;
また、理論的には、FBIやNSAのような強引な機関は、裁判所命令を使って、疑わしいと思われるアメリカのユーザを監視することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、米国にはデータ保持に関する法律がないため、ヨーロッパでよくあるように、PIAには情報を一定期間保存する義務はない。&amp;lt;br&amp;gt;&lt;br /&gt;
また、PIAは何年も前から存在しており、そのプライバシーポリシーは常に守られているため、プライバシーの面ではPIAを推奨することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIA VPNは、個人を特定できるログを一切保持しないことを約束している。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、2016年にFBIが加入者の1人のデータを求めたが共有できるものは何も無かった。&amp;lt;br&amp;gt;&lt;br /&gt;
別の例では、2016年7月にロシア政府がPIA VPNのロシア国内サーバの一部を押収したが、ログが存在しなかったため全く何も見つからなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
この事件を受けて、PIAはロシアのゲートウェイを直ちに廃止し、ロシア領内でのサーバ運営を終了した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linux向けのPIA VPNソフトウェアは、ネイティブアプリとしてUbuntu (64ビット)、Linux Mint、Debianに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、OpenVPNによる手動セットアップにより、Fedora、Arch、Slackware等のほぼ全てのLinuxディストリビューションで利用可能であり、SUSEにおいても問題なく使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIAは、WireGuard (推奨)、OpenVPN、IPSec/IKEv2の3つのVPNプロトコルに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、SOCKS5プロキシも備えている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
料金は、1ヶ月1,304円、1年間4,359円(更新時は5,230円/年)、3年間 + 4ヶ月ボーナスで8,152円である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIA VPNの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: インターネットトラフィックに関するデータを記録または保存することはない。&lt;br /&gt;
*: これについては、裁判所の記録によって実証されている。&lt;br /&gt;
* 強力な暗号化機能&lt;br /&gt;
*: OpenVPNやWireGuard等の信頼できるオープンソースのVPNプロトコルで、個人データの安全を保つ。&lt;br /&gt;
* 広告トラッカーやマルウェアに対する保護機能&lt;br /&gt;
*: PIAのMACEは、DNSベースの広告ブロッカーであり、オンライン広告、トラッカー、マルウェアからユーザを保護する。&lt;br /&gt;
* PIAのスプリットトンネリング&lt;br /&gt;
*: VPNトンネルを自動的に使用またはバイパスするように個々のソフトウェアまたはウェブサイトのカスタムルールを設定することができる。&lt;br /&gt;
* データ漏洩の防止&lt;br /&gt;
*: キルスイッチがあるため、VPN接続が突然切断された場合でも、ファイアウォールベースのキルスイッチ機能により、データが漏洩することがない。&lt;br /&gt;
* 仮想通貨での決済&lt;br /&gt;
*: 仮想通貨や第三者のギフトカードで決済可能であるため、匿名で決済でき、身元情報をさらに保護することができる。&lt;br /&gt;
* 速度&lt;br /&gt;
*: 速度テストではあまり良い結果を出していないが、他のVPNと比較して上位にランクインしている。&lt;br /&gt;
*: ただし、遠く離れたVPNサーバを使用する時に速度低下を示すことがある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
PIA VPNは、個人を特定できるログを一切保持しないノーログポリシーを掲げている。&amp;lt;br&amp;gt;&lt;br /&gt;
このポリシーは、法廷での立証、第三者監査、透明性レポートの3つの観点から検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録しないデータ ====&lt;br /&gt;
PIAが記録しないデータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* 接続したVPNサーバ&lt;br /&gt;
* 訪問したWebサイトとドメイン&lt;br /&gt;
* 使用したアプリとオンラインサービス&lt;br /&gt;
* 検索クエリ&lt;br /&gt;
* DNSリクエスト&lt;br /&gt;
* VPN帯域幅使用量&lt;br /&gt;
* セッションタイムスタンプ (接続 / 切断時間)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIAが保有するのは、サインアップに使用したメールアドレス、課金用の決済情報、ZIP code (米国の税務目的、暗号通貨での支払いで回避可能)のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、サーバはRAM専用インフラストラクチャで実行され、ハードドライブを持たない。&amp;lt;br&amp;gt;&lt;br /&gt;
メモリはシステム再起動時にクリアされるため、ログは永続的に保存されない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、VPNサーバ上の全てのサービスに対してエラーログとデバッグ情報が無効化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法廷での立証事例 ====&lt;br /&gt;
PIAのノーログポリシーは、複数の法廷事例で実証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2016年: FBI爆弾脅迫事件 (Preston McWaters事件) =====&lt;br /&gt;
2016年3月、FBIが偽の爆弾脅迫事件に関連して、PIAに召喚状を発行した。&amp;lt;br&amp;gt;&lt;br /&gt;
PIAは東海岸からのIPアドレスクラスタのみを報告でき、容疑者特定に繋がる情報は提供できなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2018年: メディアサイトハッキング事件 (Ross M. Colby事件) =====&lt;br /&gt;
2015年7月から9月にかけて、PIA IPアドレスを使用してサンフランシスコのメディアサイトがハッキングされた事件について、2018年5月にサンノゼの連邦裁判所で審理が行われた。&amp;lt;br&amp;gt;&lt;br /&gt;
PIAは容疑者のIPアドレスを違法活動と結び付けることができず、ノーログポリシーが法廷で再び立証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2016年: ロシア政府によるサーバ押収 =====&lt;br /&gt;
2016年7月、ロシアのデータ保持法に関連して、ロシア当局がPIAのロシア国内サーバの一部を予告なく押収した。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、PIAがユーザトラフィックやセッションデータをログ記録していなかったため、当局は何も取得できなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
PIAはこの事件を受けて、ロシアのゲートウェイを直ちに廃止し、以降ロシア領内でのサーバ運営を行っていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査 (Deloitte) ====&lt;br /&gt;
PIAのノーログポリシーは、Big Four監査法人の1つであるDeloitte Audit Romaniaにより、複数回の独立監査が実施されている。&amp;lt;br&amp;gt;&lt;br /&gt;
監査は国際監査・保証基準委員会 (IAASB) が確立したISAE 3000 (Revised) に準拠して行われている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Deloitte独立監査の実績&lt;br /&gt;
! 時期 !! 監査結果&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || サーバ構成は内部プライバシーポリシーに適合、ユーザ識別やアクティビティ特定は設計されていないことを確認&lt;br /&gt;
|-&lt;br /&gt;
| 2024年4月 || VPNサーバインフラストラクチャとIT管理システムの調査でゼロログを再確認&lt;br /&gt;
|-&lt;br /&gt;
| 2025年Q4 || 第三回監査完了、プライバシーへのコミットメントを再確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポート (2025年) ====&lt;br /&gt;
PIAは四半期ごとに透明性レポートを公開しており、政府からの情報開示要請とその対応結果を開示している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 2025年の政府情報開示要請&lt;br /&gt;
! 四半期 !! 要請件数 !! ユーザデータ開示&lt;br /&gt;
|-&lt;br /&gt;
| Q2 2025 || 46件 || ゼロ&lt;br /&gt;
|-&lt;br /&gt;
| Q3 2025 || 19件 || ゼロ&lt;br /&gt;
|-&lt;br /&gt;
| Q4 2025 || 30件 || ゼロ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全案件において、PIAのシステムは活動ログを保持していないため、提供できる情報がないとの回答が行われている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Kape Technologies買収に関する懸念 ====&lt;br /&gt;
2019年11月、PIAはKape Technologies (旧Crossrider、英国・イスラエル系企業) に約9,550万ドルで買収された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Kape Technologies (旧Crossrider)には、以下の懸念事項が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザハイジャッキングおよび潜在的に望ましくないソフトウェア (PUP)の配布に関与していた過去がある。&lt;br /&gt;
* 創業者のKoby MenachemiはUnit 8200 (イスラエルのNSAに相当する機関) の出身&lt;br /&gt;
* 主要投資家のTeddy SagiはPanama Papersに記載されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、買収後もPIAのノーログポリシーは維持されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
買収時に、PIAとKape Technologiesは8つの法的拘束力を持つ原則に合意しており、プライバシーとセキュリティが最優先事項であることが公言されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、買収後の2022年、2024年、2025年のDeloitte監査で、ノーログポリシーの遵守が繰り返し確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PIA VPNの契約 ==&lt;br /&gt;
PIA VPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://jpn.privateinternetaccess.com/download/linux-vpn PIA VPNの公式Webサイト]へアクセスして、ページ右上にある[PIA VPNを入手]を選択する。&lt;br /&gt;
# VPNのプランを選択する。&lt;br /&gt;
# 支払いオプションでは、クレジットカード、PayPal、仮想通貨のいずれかを選択する。&lt;br /&gt;
# [今すぐ支払う]を選択する。&lt;br /&gt;
# 支払いが完了した後、PIAアカウントを作成するためのログイン情報（後に変更可能）と、VPNソフトウェアをダウンロードするためのリンクが記載されたメールが届く。&lt;br /&gt;
# PIAアカウントを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIA VPNでは、1ヶ月1,304円、1年間4,359円(更新時は5,230円/年)、3年間+4ヶ月ボーナスで8,152円の料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
全てのプランに30日間の返金保証が付帯している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PIA VPNソフトウェアのインストール ==&lt;br /&gt;
PIA VPNを設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://jpn.privateinternetaccess.com/download/linux-vpn PIA VPNの公式Webサイト]から、VPNソフトウェアをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x pia-linux-&amp;lt;バージョン&amp;gt;.run&amp;lt;/code&amp;gt;&lt;br /&gt;
# VPNソフトウェアをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;./pia-linux-&amp;lt;バージョン&amp;gt;.run --target &amp;lt;VPNソフトウェアのインストールディレクトリ&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# インストール完了後、VPNソフトウェアのログイン画面が表示されるので、ログインを選択して、サインアップ時に使用したEメールアドレスへ送信されたログイン情報を入力する。&lt;br /&gt;
# ログイン後、認証情報を保存する必要がある。&amp;lt;br&amp;gt;初期状態では、メイン画面の電源アイコンが黄色になっており、接続が切断されていることを意味する。&lt;br /&gt;
# 電源アイコンをクリックして接続を確立する。&amp;lt;br&amp;gt;接続を確立するのに時間が掛かることがあることに注意する。&amp;lt;br&amp;gt;もし、接続できない場合は、[https://www.privateinternetaccess.com/helpdesk/kb/articles/i-have-trouble-connecting-or-the-connection-drops-frequently-changing-ports-5 公式Webサイトにある接続に関する問題の記事]を参照すること。&lt;br /&gt;
# 正常に接続が確立する時、電源アイコンが緑色に変わり、メイン画面にVPNサーバのIPが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPNソフトウェアの設定について詳しく知りたい場合は、[https://www.privateinternetaccess.com/helpdesk/kb/articles/understanding-basic-settings-on-the-pia-client Understanding the PIA App&#039;s Basic Settings]および[https://www.privateinternetaccess.com/helpdesk/kb/articles/understanding-advanced-settings-on-the-pia-client Understanding the PIA App&#039;s Advanced Settings]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;PIA VPNは、サードパーティ製のサポート対象外のハードウェアやOSを使用しているため、VPN over Torはサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
よりセキュリティを強固にする場合、最も簡単な方法は、PIA VPNサーバに接続した状態で、PORTAL、Whonix、TAILSのいずれかを使用して設定することである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN - PIA VPN#PIA VPNソフトウェアのインストール|&amp;quot;PIA VPNソフトウェアのインストール&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_PureVPN&amp;diff=14588</id>
		<title>VPN - PureVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_PureVPN&amp;diff=14588"/>
		<updated>2026-03-24T11:18:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PureVPNは、イギリス領バージン諸島 (BVI) に本社を置くVPNサービスプロバイダーである。&amp;lt;br&amp;gt;&lt;br /&gt;
元々は香港を拠点としていたが、香港の法制度の変化に伴い、2021年後半から2024年1月にかけてBVIへ本社を移転した。&amp;lt;br&amp;gt;&lt;br /&gt;
BVIはファイブアイズ等の情報共有同盟外であり、ユーザデータの強制保管義務がない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、2025年現在、PureVPNは一部のサーバにおいてOpenVPNプロトコル経由でQuantum耐性暗号化 (ポスト量子暗号) に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
対応地域は、米国、英国、オーストラリア、ドイツ、カナダ、オランダの6か所である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの信頼性 ==&lt;br /&gt;
PureVPNはノーログVPNを謳っているが、過去に捜査機関へユーザ情報を提供した事例が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
現在はシステムアーキテクチャの改善と第三者監査により信頼性の向上を図っているが、過去の事例を踏まえた上で利用を検討する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2017年 FBI協力事件 ====&lt;br /&gt;
2017年、サイバーストーキング事件 (Ryan S. Lin被告) の捜査において、PureVPNはFBIにユーザ情報を提供した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 事件の概要&lt;br /&gt;
*: 被告は元ルームメイトの女性に対して、オンラインアカウントへのハッキング、個人写真や医療情報の窃取および数百人への配布等のサイバーストーキング行為を行った。&lt;br /&gt;
* PureVPNが提供した情報&lt;br /&gt;
*: ユーザのIPアドレスおよび接続タイムスタンプ&lt;br /&gt;
*: FBIの報告書では「PureVPNが同じ顧客が2つの異なる発信元IPアドレスからサービスにアクセスしたことを確認できた」と記載されている。&lt;br /&gt;
* 問題点&lt;br /&gt;
*: PureVPNは当時「NO browsing logs, browsing habits or anything else was, or ever will be shared」と主張していた。&lt;br /&gt;
*: しかし、実際にはIPアドレスと接続タイムスタンプを記録・提供しており、「ノーログポリシーの虚偽」として大きな批判を受けた。&lt;br /&gt;
*: PureVPNは「ブラウジングログ」と「接続ログ」は別であると弁明したが、接続ログだけでも個人の特定に十分な情報であった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 現在のノーログポリシー ====&lt;br /&gt;
2017年の事件以降、PureVPNはノーログポリシーを改定し、現在は以下の項目について記録していないと公式に主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジングアクティビティ&lt;br /&gt;
* 接続ログ&lt;br /&gt;
* VPNに割り当てられたIPレコード&lt;br /&gt;
* ユーザの元のIP&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* ブラウジング履歴および訪問サイト&lt;br /&gt;
* アウトバウンドトラフィック&lt;br /&gt;
* ユーザが生成したDNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実績 ====&lt;br /&gt;
PureVPNは複数の独立したセキュリティ監査機関によりノーログポリシーの検証を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー監査実績&lt;br /&gt;
! 監査機関 !! 時期 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| Altius IT || 2019年 || 合格&lt;br /&gt;
|-&lt;br /&gt;
| Cure53 || 2020年, 2023年 || 合格&lt;br /&gt;
|-&lt;br /&gt;
| KPMG || 2021年以降 (最終: 2023年4月) || 合格&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Altius ITの監査では、&amp;lt;u&amp;gt;特定の個人を識別したり、PureVPNサービス使用時の当該個人のアクティビティを識別できるシステム構成またはシステム/サービスログファイルの証拠は見つからなかった&amp;lt;/u&amp;gt; と結論付けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、PureVPNは常時監査ポリシー (Always-On Audit Policy) を採用しており、大手監査機関に事前通告なしでいつでも監査を実施する権限を付与している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポート (2025年上半期) ====&lt;br /&gt;
PureVPNが公開している2025年上半期 (1月〜6月) の透明性レポートの概要を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 法執行機関からのデータリクエスト : 43,358件 (前年同期比100%増加)&lt;br /&gt;
* 提供したユーザデータ : 0件&lt;br /&gt;
* 内訳&lt;br /&gt;
*: 法廷命令 (court orders) : 8件&lt;br /&gt;
*: 緊急開示要求 (emergency disclosure requests) : 4件&lt;br /&gt;
*: サブポエナ (subpoenas) : 2件&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNはシステムアーキテクチャの特性により、全てのデータリクエストへの対応が物理的に不可能であると主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去のセキュリティ脆弱性 ====&lt;br /&gt;
ノーログポリシーとは別に、PureVPNクライアントにおいて以下のセキュリティ脆弱性が報告されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年 : Linuxクライアントにおいて、DNSリーク脆弱性が発見された。(パッチ適用済み)&lt;br /&gt;
* 2024年 : Linuxクライアントにおいて、リモートコード実行 (RCE) 脆弱性が発見された。(パッチ適用済み)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合的な評価 ====&lt;br /&gt;
* 信頼できる側面&lt;br /&gt;
*: 複数の独立した第三者監査機関がノーログポリシーを検証済み&lt;br /&gt;
*: 4万件超のデータリクエストに対してゼロ開示を実現&lt;br /&gt;
*: 常時監査ポリシーおよびシステムアーキテクチャレベルでデータ保有を不可能にする設計への移行&lt;br /&gt;
* 懸念される側面&lt;br /&gt;
*: 2017年にノーログと謳いながらFBIへ情報提供を行った前科がある&lt;br /&gt;
*: Linuxクライアントにおいて重大なセキュリティ脆弱性が複数回報告されている&lt;br /&gt;
*: プライバシーを最重要視するユーザには、過去に信頼違反のないVPN (MullvadやProtonVPN等) を推奨するセキュリティ専門家が多い&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
PureVPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.purevpn.com/ PureVPNの公式Webサイト]へアクセスして、ページ上部にある[Get PureVPN]を選択する。&lt;br /&gt;
# [注文ページ]では、プラン層を選択する。&lt;br /&gt;
#* Standard&lt;br /&gt;
#*: VPN機能のみ&lt;br /&gt;
#* Plus&lt;br /&gt;
#*: VPN + パスワードマネージャー + クラウドストレージ&lt;br /&gt;
#* Max&lt;br /&gt;
#*: Plus機能 + パーソナルプライバシーマネージャー&lt;br /&gt;
# 契約期間を選択する。(1ヶ月、1年、2年、5年)&lt;br /&gt;
# メールアドレスを入力して、パスワードを設定する。&lt;br /&gt;
# 支払い方法を選択する。(クレジットカード、PayPal、Google Pay、暗号通貨)&lt;br /&gt;
# 購入内容を確認して、支払いを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPN Standardプランの料金は、2年プランで合計54.95ドル (平均2.03ドル/月) である。(2026年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
1ヶ月プランでは、11.95ドル/月である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全てのプランに31日間の返金保証が付帯している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PureVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm5-openvpn                          # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PureVPN GUIの使用 ==&lt;br /&gt;
PureVPN GUIは、debパッケージまたはSnapストア経由でインストールすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
debパッケージは、Debian / Ubuntuに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Snapストアは、Ubuntu、Debian、Fedora、Arch Linux、Manjaro、Kali Linux、RHEL 7.6以降等の多くのLinuxディストリビューションに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== debパッケージを使用する場合 ====&lt;br /&gt;
PureVPN GUIの実行に必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # Debian / Ubuntu&lt;br /&gt;
 sudo apt install libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6                    \&lt;br /&gt;
                  xdg-utils libatspi2.0-0 libuuid1 libsecret-1-0 libappindicator3-1 \&lt;br /&gt;
                  wireguard-tools&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[PureVPNの公式Webサイト https://www.purevpn.com/download/linux-vpn]にアクセスして、PureVPNをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ./PureVPN_amd64.deb&lt;br /&gt;
 # または&lt;br /&gt;
 sudo dpkg -i PureVPN_amd64.deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Snapストアを使用する場合 ====&lt;br /&gt;
Snapストア経由でPureVPN GUIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo snap install purevpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPN GUIは、以下に示すディレクトリにインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Systemdサービスユニット&lt;br /&gt;
*: /etc/systemd/system/pured.service&lt;br /&gt;
* PureVPN実行バイナリファイル&lt;br /&gt;
*: /opt/PureVPNディレクトリ&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PureVPN CLIの使用 ==&lt;br /&gt;
PureVPN CLIを使用して、オンラインのプライバシーとセキュリティを完全に制御することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIは、Ubuntu、Debian、Mint等のLinuxディストリビューションに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PureVPN CLIのインストール ====&lt;br /&gt;
PureVPN CLIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl https://apps.purevpn-tools.com/cross-platform/linux-cli/production/cli-install.sh | sudo bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールが完了した後、PureVPN CLIの環境変数&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export PATH=&amp;quot;/etc/pure-linux-cli:/etc/pure-linux-cli:$PATH&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PureVPNへログイン ====&lt;br /&gt;
 purevpn-cli --login&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PureVPNのログアウト ====&lt;br /&gt;
PureVPN CLIを使用して、ログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ログアウトする前に、PureVPNが切断されていることを確認する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --logout&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -o&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続 ====&lt;br /&gt;
任意のロケーションに接続する場合は、&amp;lt;code&amp;gt;--connect&amp;lt;/code&amp;gt;オプションまたは&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;オプションを付加して国名を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 例: USに接続する場合&lt;br /&gt;
 &lt;br /&gt;
 purevpn-cli --connect &amp;quot;United States&amp;quot;&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -c &amp;quot;US&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
推奨サーバを使用する場合は、&amp;lt;code&amp;gt;--recommended&amp;lt;/code&amp;gt;オプションまたは&amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;オプションを付加する。&amp;lt;br&amp;gt;&lt;br /&gt;
推奨サーバとは、スマートアルゴリズム (地理的距離に基づいて) により提案された国 / サーバに自動的に接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --recommended&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -r&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 切断 ====&lt;br /&gt;
PureVPNを切断する。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --disconnect&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -d&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ロケーションの確認 ====&lt;br /&gt;
ロケーションおよびロケーションコードのリストを確認することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --location&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -l&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロトコルの切り替え ====&lt;br /&gt;
VPNプロトコルの選択は、接続のパフォーマンスと安定性に大きく影響する。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNサーバに接続する場合は、正しいプロトコルを選択することが重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNでは、自動プロトコルを使用することを推奨している。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、自動プロトコルオプションが機能しない場合は、必要に応じて異なるプロトコルを切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* WireGuard (推奨)&lt;br /&gt;
*: WireGuardは、高速で安全なVPN接続を提供しており、ブラウジングやストリーミングに使用される。&lt;br /&gt;
* UDP&lt;br /&gt;
*: UDPは、主にストリーミングやダウンロードに使用される。&lt;br /&gt;
* TCP&lt;br /&gt;
*: TCPはより信頼性が高いですが、やや遅く、ブラウジングに使用される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロトコルを切り替えるコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 自動プロトコルを使用&lt;br /&gt;
 purevpn-cli --protocol auto&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -p auto&lt;br /&gt;
 &lt;br /&gt;
 # WireGuardを使用&lt;br /&gt;
 purevpn-cli --protocol wireguard&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -p wireguard&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
現在選択されているプロトコルを表示することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --protocol&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -p&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アカウントの確認 ====&lt;br /&gt;
PureVPN CLIを使用して、アカウントの詳細を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --account&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -a&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NetworkManagerの使用 ==&lt;br /&gt;
&amp;lt;u&amp;gt;RHELおよびSUSE等では、NetworkManagerおよびOpenVPN / WireGuard設定ファイルを使用して手動で設定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;openSUSE Tumbleweed / Leapについては、PureVPN公式のセットアップガイドも提供されている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNのOpenVPNファイルは不定期で更新されるため、その都度、新しいOpenVPNファイルを使用・設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GNOMEの場合 ====&lt;br /&gt;
# まず、VPN認証情報を確認するため、PureVPNメンバーエリアにログインする。&lt;br /&gt;
#: URL : https://my.purevpn.com/v2/dashboard/subscriptions&lt;br /&gt;
# 画面左にある[サブスクリプション]タブを選択する。&lt;br /&gt;
# 下にスクロールして、VPN認証情報を確認する。&lt;br /&gt;
# PureVPNのユーザ名とパスワードをコピーする。&lt;br /&gt;
# [https://support.purevpn.com/purevpn/openvpn-files PureVPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip Recommended-CA2.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NetworkManagerを使用して、OpenVPNを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/code&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[有線接続]プルダウンから[有線設定]を選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、&amp;lt;ロケーション&amp;gt;-ovpn-tcp、または、&amp;lt;ロケーション&amp;gt;-ovpn-udpである。&amp;lt;br&amp;gt;例: hu2-ovpn-tcp.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意の名前 (例: PureVPN)&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記でコピーしたユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記でコピーしたパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#*: もし、自動入力されない場合は、~/.cert/nm-openvpnディレクトリの&amp;lt;ロケーション&amp;gt;-ovpn-ca.pemファイルを指定する。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で選択したPureVPNのOpenVPN設定が作成されて、PureVPNのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== KDEの場合 ====&lt;br /&gt;
# まず、VPN認証情報を確認するため、PureVPNメンバーエリアにログインする。&lt;br /&gt;
#: URL : https://my.purevpn.com/v2/dashboard/subscriptions&lt;br /&gt;
# 画面左にある[サブスクリプション]タブを選択する。&lt;br /&gt;
# 下にスクロールして、VPN認証情報を確認する。&lt;br /&gt;
# PureVPNのユーザ名とパスワードをコピーする。&lt;br /&gt;
# [https://support.purevpn.com/purevpn/openvpn-files PureVPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。 &lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip Recommended-CA2.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NetworkManagerを使用して、OpenVPNを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/code&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&lt;br /&gt;
#: 例: hu2-ovpn-tcp.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にPureVPNのVPN接続が表示されるので、任意の名前 (PureVPN) と入力する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す設定を行う。 &lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意の名前 (例: PureVPN)&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記でコピーしたユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記でコピーしたパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#*: もし、自動入力されない場合は、~/.cert/nm-openvpnディレクトリの&amp;lt;ロケーション&amp;gt;-ovpn-ca.pemファイルを指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 接続の確認 ==&lt;br /&gt;
IPアドレスが匿名かつプライベートなPureVPNに変更されたことを確認する場合は、まず、Webブラウザのクッキーおよびキャッシュを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* IPv6のリークの確認&lt;br /&gt;
*: https://www.purevpn.com/ipv6-leak-test&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* DNSリークの確認&lt;br /&gt;
*: https://www.purevpn.com/dns-leak-test&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
PureVPNは、WireGuardの手動設定をサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザは、WireGuard VPN接続を手動で設定して、強化された暗号化と高速パフォーマンスを活用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuardのサポートを追加することにより、VPN接続の設定に関してより多くのオプションと柔軟性をユーザに提供することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardの設定を行うには、Ubuntu 21.04以降、Fedora 35以降が必要となる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardのインストール ====&lt;br /&gt;
WireGuardの設定に必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install wireguard-tools&lt;br /&gt;
&lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install wireguard-tools&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardの設定 ====&lt;br /&gt;
WireGuard設定ファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、VPN認証情報を確認するため、PureVPNメンバーエリアにログインする。&lt;br /&gt;
#: URL : https://my.purevpn.com/v2/dashboard/subscriptions&lt;br /&gt;
# 画面左にある[Manual Configuration]タブを選択する。&lt;br /&gt;
# 接続するロケーションを選択して、[ダウンロード]ボタンを押下する。&lt;br /&gt;
# 必要な情報を選択するポップアップウインドウが表示される。&lt;br /&gt;
## [プロトコルを選択]プルダウンから[WireGuard]を選択する。&lt;br /&gt;
## [Select Device]プルダウンから[Linux] (Linuxを使用している場合) を選択する。&lt;br /&gt;
## [Generate Configration]ボタンを押下する。&lt;br /&gt;
## [WireGuard Configuration:]の設定をコピーする。&amp;lt;br&amp;gt;または、.confファイルをダウンロードする。&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardの設定ファイルをダウンロードした後、必ず30分以内にファイルをコピーして接続を有効にする必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard VPN接続を設定するため、コピーまたはダウンロードしたファイル内容を書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/wireguard/wg0.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardの接続 ====&lt;br /&gt;
WireGuard接続を有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wg-quick up wg0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardの切断 ====&lt;br /&gt;
WireGuard接続を切断する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wg-quick down wg0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にするため、/etc/sysctl.dディレクトリに設定ファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/sysctl.d/99-ipv6.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/sysctl.d/99-ipv6.confファイル&lt;br /&gt;
 &lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;br /&gt;
 net.ipv6.conf.default.disable_ipv6 = 1&lt;br /&gt;
 net.ipv6.conf.lo.disable_ipv6 = 1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo sysctl -p&lt;br /&gt;
 # または&lt;br /&gt;
 sudo sysctl -p /etc/sysctl.d/99-ipv6.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 cat /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://www.whatismyip.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、Webブラウザのクッキーおよびキャッシュを削除して、DNSリークを確認するため、以下に示すURLにアクセスする。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://www.purevpn.com/dns-leak-test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;コマンドは、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;PureVPNは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PureVPN GUI / CLI または NetworkManagerを使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_PrivateVPN&amp;diff=14587</id>
		<title>VPN - PrivateVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_PrivateVPN&amp;diff=14587"/>
		<updated>2026-03-24T11:04:16Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ノーログポリシーの実態 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivateVPNは、200以上のサーバからなる小規模なネットワークを運営しており、これらは63カ国以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、ラグフリーストリーミングのための高速な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
256ビットAES暗号化、DNSリークからの保護、キルスイッチが用意されており、その厳格なノーログポリシーによって、ユーザのプライバシーを保護する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、PrivateVPNの設定に問題がある場合、ライブチャットと電子メールサポートを利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料のリモートヘルプとインストールも利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは、現在、Linux向けのCLIソフトウェアをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
高速で安定した接続と、地理的制限のあるコンテンツの確実なブロック解除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxの他にも、Windows、MacOS、Android、iOS、Amazon Fire TV用のPrivateVPNソフトウェアが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、個別の無線ルータで動作するように手動で設定することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、PrivateVPNは2009年にMartin Muller氏によりスウェーデンで設立された。(運営会社: Privat Kommunikation Sverige AB)&amp;lt;br&amp;gt;&lt;br /&gt;
2022年6月にWebホスティング企業であるMiss Groupに買収されており、創業者は離任している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの長所&lt;br /&gt;
** セットアップガイドとカスタマーサポートでユーザフレンドリーである。&lt;br /&gt;
** ストリーミングとトレント用の高速サーバーが存在する。&lt;br /&gt;
** 人気のあるストリーミングプラットフォームの一貫したブロック解除ができる。&lt;br /&gt;
** 厳格なノーログポリシーによるオンラインの匿名性。&lt;br /&gt;
** 30日間返金保証。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの短所&lt;br /&gt;
** サーバのネットワークが小さい。(全部で200程度しかない)&lt;br /&gt;
** ライブチャットが24時間利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: スウェーデンに会社があり、スウェーデンの個人情報保護法では、政府によって押収されるようなトラフィックログを保存することはない。&lt;br /&gt;
* 無制限の帯域幅と速度&lt;br /&gt;
*: 他のVPNで見られるような、ビデオのバッファリング、低速なダウンロード、ルーティングホップによるタイムアウトは無い。&lt;br /&gt;
* 無料リモートヘルプとインストール&lt;br /&gt;
*: サービスに関する問題やヘルプが必要な場合、リモートサポートは無料で行うことができる。&lt;br /&gt;
* 10台同時接続&lt;br /&gt;
*: 最大10台のデバイスを同時に接続できるVPNであり、全て固有のIPアドレスで接続できる。&lt;br /&gt;
* ポートフォワード&lt;br /&gt;
*: Torrentに不可欠なオープンポートを少なくとも1つ提供している。&lt;br /&gt;
* AES-256による2048ビットの暗号化&lt;br /&gt;
*: 軍事でも使用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PrivateVPNの料金は、月額2.00ドルからである。(2025年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
PrivateVPNはノーログVPNを標榜しており、スウェーデンの強力なプライバシー法を根拠として、データログを保存または共有する法的義務がないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivateVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジング履歴およびトラフィック宛先&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* IPアドレス (割り当てIP、接続IP両方)&lt;br /&gt;
* データコンテンツ&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、ログインメールアドレス、パスワード、支払い方法情報等のアカウント管理に必要な最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去の捜査機関へのデータ提供 ====&lt;br /&gt;
2025年時点の公開情報において、PrivateVPNが法執行機関にユーザデータを提供した具体的な事例、裁判記録、またはリークは確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは &amp;quot;ノーログポリシーを採用しているため、有事の場合でも提出できるデータが存在しない&amp;quot; という立場をとっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、この主張は第三者監査によって検証されていないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivateVPNは、独立した外部監査を一度も受けていない。&amp;lt;br&amp;gt;&lt;br /&gt;
これは業界内での重大な弱点と見なされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
競合他社との比較として、NordVPNはDeloitteによる監査 (2024年)、IPVanishはSchellman Compliance LLCによる監査 (2025年) を受けており、&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーの検証において、PrivateVPNは遅れをとっている状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する懸念 ====&lt;br /&gt;
PrivateVPNの拠点であるスウェーデンは、14 Eyes監視協定に加盟している。&amp;lt;br&amp;gt;&lt;br /&gt;
14 Eyes構成国間では、情報機関が収集した情報を共有する枠組みが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、スウェーデンのプライバシー法により、ノーログポリシーを採用しているVPNプロバイダに対するデータ保持義務は課されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、ノーログポリシーが正しく実装されている場合、14 Eyesの影響は限定的であると考えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || Martin Muller氏によりスウェーデンで設立 (運営会社: Privat Kommunikation Sverige AB)&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || Webホスティング企業のMiss Groupが買収。創業者Martin Muller氏は離任&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Miss Group傘下で運営。Miss GroupはPerwyn (プライベートエクイティ企業) が支援&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門家の評価 ====&lt;br /&gt;
2025年から2026年時点における専門家の評価は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの専門家評価&lt;br /&gt;
! 評価サイト !! スコア !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VPNMentor || 9.2/10 (193中7位) || ストリーミング性能、価格を評価&lt;br /&gt;
|-&lt;br /&gt;
| Trustpilot || 4.9/5 || 高い顧客満足度&lt;br /&gt;
|-&lt;br /&gt;
| TechRadar || 非推奨 || 投資不足による遅れを指摘&lt;br /&gt;
|-&lt;br /&gt;
| TheBestVPN || 30中22位 || 非推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な強みとして、価格競争力 (月額 $2.00から)、ストリーミング性能、基本的なプライバシー保護が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、主な弱みとして、第三者監査の欠落、限定されたサーバネットワーク、Linuxアプリの未提供、スプリットトンネリングおよび二重VPN機能の未対応が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
# [https://privatevpn.com/prices/comparitech PrivateVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、3ヶ月、3年のいずれかのプランを選択する。&lt;br /&gt;
# E-mailアドレスおよびパスワードを入力してログイン、または、PrivateVPNのアカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、Paypal、Bitcoinが使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PrivateVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ネットワークマネージャトンネルを使用する場合 (推奨) ==&lt;br /&gt;
まず、以下に示す2つのファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
* 証明書ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ca.crt&lt;br /&gt;
* 鍵ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ta.key&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[OpenVPN]を選択して、[Create]ボタンを押下する。&lt;br /&gt;
# 以下に示す情報を入力する。&amp;lt;br&amp;gt;もし、Linuxの起動時にVPNを自動的に接続する場合は、[自動的に接続する]を選択する。&lt;br /&gt;
#* 接続名&lt;br /&gt;
#*: PrivateVPN&lt;br /&gt;
#* ゲートウェイ&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#* タイプ&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* パスワード&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
#* CA証明書&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [LZOデータ圧縮を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [仮想デバイスの種類を設定]チェックボックスにチェックを入力して、[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [セキュリティタブ]を選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [相手（サーバ）の証明書使用状況の署名を確認する]チェックボックスにチェックを入力して、プルダウンから[サーバ]を選択する。&lt;br /&gt;
#*: [追加のTLS認証を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [キーファイル]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction]プルダウンから[1]を選択する。&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[VPN接続] - [PrivateVPN]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストから[OpenVPN]を選択して[作成]ボタンを押下する。&lt;br /&gt;
# [新しい接続]画面が開くので、以下に示す情報を入力する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意でよい。&lt;br /&gt;
#*: 例. PrivateVPN&lt;br /&gt;
#* [ゲートウェイ]&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#*: 例. スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: パスワードを選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [Use Compression]チェックボックスにチェックを入力して、プルダウンから[LZO]を選択する。&lt;br /&gt;
#*: [Set virtual device type:]チェックボックスにチェックを入力して、プルダウンから[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [Security]タブを選択する。&lt;br /&gt;
#*: [Cipher:]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC Authentication:]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS Settings]タブを選択する。&lt;br /&gt;
#*: [Verify peer（server） certificate usage signature]チェックボックスにチェックを入力して、プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [Key File:]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction:]プルダウンから[Client(1)]を選択する。&lt;br /&gt;
# [OK]ボタンを押下して、[OpenVPN Advanced Options]画面を閉じる。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。(この設定は不要の可能性あり)&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、PrivateVPNのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivateVPN CLIを使用する場合 ==&lt;br /&gt;
# [https://privatevpn.com/client/install.sh PrivateVPNの公式Webサイト]から、CLIソフトウェアのインストーラをダウンロードする。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;コマンド等を使用してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://privatevpn.com/client/install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたインストーラに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# スーパーユーザ権限でインストーラを実行する。&amp;lt;br&amp;gt;スーパーユーザ権限で実行する理由は、OpenVPNの接続時において、トンネルインターフェイスを作成するためである。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# /etc/openvpn/privatvpn.confファイルを編集して、接続先のVPNサーバを変更することができる。&amp;lt;br&amp;gt;サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
# WireGuardの接続に必要なツールをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にアクセスして、ログインする。&lt;br /&gt;
# [https://privatevpn.com/control-panel PrivateVPNのコントロールパネル]にアクセスする。&lt;br /&gt;
# コントロールパネル画面左にある[WireGuard Config]から、使用するVPNサーバを選択するため、[Generate Config]ボタンを押下する。&lt;br /&gt;
# コントロールパネルにWireGuardの設定が生成および表示されるので、ダウンロードアイコンを押下する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# WireGuardを使用してVPNネットワークに接続する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick up &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 正常にVPNネットワークに接続しているかどうかを確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg show&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# VPNネットワークを切断する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick down &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にする手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6を無効にするため、/etc/sysctl.confファイルに以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo vi /etc/sysctl.d/00-ipv6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /etc/sysctl.d/00-ipv6.confファイル&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.all.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.default.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.lo.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記の設定を反映する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&lt;br /&gt;
#: https://www.whatismyip.com/&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;は、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torブラウザのプロキシ設定 ==&lt;br /&gt;
==== SOCKS5プロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: SOCKS 5&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTP / HTTPSプロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: HTTP / HTTPS&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 8080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これを、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPをPrivateVPNに公開することなく、PrivateVPNに接続することを意味する。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、Torネットワークに接続する。&lt;br /&gt;
# Torブラウザで任意のWebサイトを開いて、Torブラウザのアドレスバーの左側にある鍵アイコンを選択する。&lt;br /&gt;
# &amp;quot;ガードノード(エントリーノード)&amp;quot;、&amp;quot;中間&amp;quot;、&amp;quot;出口ノード&amp;quot;を含むTorネットワークの現在の回線情報が表示される。&amp;lt;br&amp;gt;この時、ガードノード(エントリーノード)のIPアドレスをコピーする。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;最初のノードは、ガードノード(エントリーノード)と呼ばれており、これは頻繁に変更されない。&amp;lt;br&amp;gt;ただし、暫く時間が経って変更された場合、または、Torブラウザをアップデートした場合は、ガードノード(エントリーノード)のIPアドレスが変更されるため、&amp;lt;br&amp;gt;都度、OpenVPN設定ファイル内の値を変更する必要がある。&lt;br /&gt;
#  [https://privatevpn.com/client/PrivateVPN-TUN.zip PrivateVPNの公式Webサイト]にアクセスして、PrivateVPNのOpenVPN設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;TorブラウザはTCPプロトコル(443番ポート)のみで動作するため、TCPディレクトリからPrivatVPN-&amp;lt;国名&amp;gt;-&amp;lt;都市名&amp;gt;-TUN-443.ovpnを使用する必要がある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 使用するOpenVPN設定ファイルを開いて、以下に示す内容を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Windowsの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 net_gateway&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Linuxの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 &amp;lt;自宅のデフォルトゲートウェイのIPアドレス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torネットワーク経由でPrivateVPNのOpenVPNサーバに接続する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;上記で編集したOpenVPN設定ファイルをOpenVPNクライアントにインポートして接続する。&amp;lt;br&amp;gt;Torブラウザが起動していることを確認して、問題なく動作しているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivateVPN CLIまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentとの連携 ==&lt;br /&gt;
# まず、PrivateVPNサーバに接続する。&amp;lt;br&amp;gt;この時、[Port forwarding]項目に記載されているポート番号をコピーする。&lt;br /&gt;
# 次に、qBittorrentを起動して、[設定] - 画面左の[接続] - [受信接続に使用するポート]において、上記でコピーしたポート番号を入力する。&lt;br /&gt;
# 最後に、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&amp;lt;br&amp;gt;[設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* PrivateVPNソフトウェアからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* NetworkManagerからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* PrivateVPNソフトウェアからWireGuardで接続している場合&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPNのログ ==&lt;br /&gt;
VPN接続に問題がある場合は、接続ログを送信することにより、問題を迅速に特定して、適切な解決策を得られる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Manager ====&lt;br /&gt;
# VPN接続のログを表示して、生成されたログをコピーする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog &amp;gt; &amp;lt;任意のログファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/chat PrivateVPNの公式Webサイトにあるチャット]にアクセスして、チャットボックスから[Send us a message]ボタンを押下する。&lt;br /&gt;
# 上記で取得したVPN接続のログをチャットに貼り付けて、ユーザのEメールアドレスを入力する。&lt;br /&gt;
# [send]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_PrivateVPN&amp;diff=14586</id>
		<title>VPN - PrivateVPN</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_PrivateVPN&amp;diff=14586"/>
		<updated>2026-03-24T11:02:59Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivateVPNは、200以上のサーバからなる小規模なネットワークを運営しており、これらは63カ国以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、ラグフリーストリーミングのための高速な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
256ビットAES暗号化、DNSリークからの保護、キルスイッチが用意されており、その厳格なノーログポリシーによって、ユーザのプライバシーを保護する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、PrivateVPNの設定に問題がある場合、ライブチャットと電子メールサポートを利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料のリモートヘルプとインストールも利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは、現在、Linux向けのCLIソフトウェアをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
高速で安定した接続と、地理的制限のあるコンテンツの確実なブロック解除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxの他にも、Windows、MacOS、Android、iOS、Amazon Fire TV用のPrivateVPNソフトウェアが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、個別の無線ルータで動作するように手動で設定することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、PrivateVPNは2009年にMartin Muller氏によりスウェーデンで設立された。(運営会社: Privat Kommunikation Sverige AB)&amp;lt;br&amp;gt;&lt;br /&gt;
2022年6月にWebホスティング企業であるMiss Groupに買収されており、創業者は離任している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの長所&lt;br /&gt;
** セットアップガイドとカスタマーサポートでユーザフレンドリーである。&lt;br /&gt;
** ストリーミングとトレント用の高速サーバーが存在する。&lt;br /&gt;
** 人気のあるストリーミングプラットフォームの一貫したブロック解除ができる。&lt;br /&gt;
** 厳格なノーログポリシーによるオンラインの匿名性。&lt;br /&gt;
** 30日間返金保証。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの短所&lt;br /&gt;
** サーバのネットワークが小さい。(全部で200程度しかない)&lt;br /&gt;
** ライブチャットが24時間利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: スウェーデンに会社があり、スウェーデンの個人情報保護法では、政府によって押収されるようなトラフィックログを保存することはない。&lt;br /&gt;
* 無制限の帯域幅と速度&lt;br /&gt;
*: 他のVPNで見られるような、ビデオのバッファリング、低速なダウンロード、ルーティングホップによるタイムアウトは無い。&lt;br /&gt;
* 無料リモートヘルプとインストール&lt;br /&gt;
*: サービスに関する問題やヘルプが必要な場合、リモートサポートは無料で行うことができる。&lt;br /&gt;
* 10台同時接続&lt;br /&gt;
*: 最大10台のデバイスを同時に接続できるVPNであり、全て固有のIPアドレスで接続できる。&lt;br /&gt;
* ポートフォワード&lt;br /&gt;
*: Torrentに不可欠なオープンポートを少なくとも1つ提供している。&lt;br /&gt;
* AES-256による2048ビットの暗号化&lt;br /&gt;
*: 軍事でも使用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PrivateVPNの料金は、月額2.00ドルからである。(2025年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
PrivateVPNはノーログVPNを標榜しており、スウェーデンの強力なプライバシー法を根拠として、データログを保存または共有する法的義務がないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivateVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジング履歴およびトラフィック宛先&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* IPアドレス (割り当てIP、接続IP両方)&lt;br /&gt;
* データコンテンツ&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、ログインメールアドレス、パスワード、支払い方法情報等のアカウント管理に必要な最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去の捜査機関へのデータ提供 ====&lt;br /&gt;
2025年時点の公開情報において、PrivateVPNが法執行機関にユーザデータを提供した具体的な事例、裁判記録、またはリークは確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは「ノーログポリシーを採用しているため、有事の場合でも提出できるデータが存在しない」という立場をとっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、この主張は第三者監査によって検証されていないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivateVPNは、独立した外部監査を一度も受けていない。&amp;lt;br&amp;gt;&lt;br /&gt;
これは業界内での重大な弱点と見なされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
競合他社との比較として、NordVPNはDeloitteによる監査 (2024年)、IPVanishはSchellman Compliance LLCによる監査 (2025年) を受けており、&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーの検証において、PrivateVPNは遅れをとっている状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する懸念 ====&lt;br /&gt;
PrivateVPNの拠点であるスウェーデンは、14 Eyes監視協定に加盟している。&amp;lt;br&amp;gt;&lt;br /&gt;
14 Eyes構成国間では、情報機関が収集した情報を共有する枠組みが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、スウェーデンのプライバシー法により、ノーログポリシーを採用しているVPNプロバイダに対するデータ保持義務は課されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、ノーログポリシーが正しく実装されている場合、14 Eyesの影響は限定的であると考えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || Martin Muller氏によりスウェーデンで設立 (運営会社: Privat Kommunikation Sverige AB)&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || Webホスティング企業のMiss Groupが買収。創業者Martin Muller氏は離任&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Miss Group傘下で運営。Miss GroupはPerwyn (プライベートエクイティ企業) が支援&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門家の評価 ====&lt;br /&gt;
2025年から2026年時点における専門家の評価は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの専門家評価&lt;br /&gt;
! 評価サイト !! スコア !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VPNMentor || 9.2/10 (193中7位) || ストリーミング性能、価格を評価&lt;br /&gt;
|-&lt;br /&gt;
| Trustpilot || 4.9/5 || 高い顧客満足度&lt;br /&gt;
|-&lt;br /&gt;
| TechRadar || 非推奨 || 投資不足による遅れを指摘&lt;br /&gt;
|-&lt;br /&gt;
| TheBestVPN || 30中22位 || 非推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な強みとして、価格競争力 (月額2.00ドルから)、ストリーミング性能、基本的なプライバシー保護が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、主な弱みとして、第三者監査の欠落、限定されたサーバネットワーク、Linuxアプリの未提供、スプリットトンネリングおよび二重VPN機能の未対応が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
# [https://privatevpn.com/prices/comparitech PrivateVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、3ヶ月、3年のいずれかのプランを選択する。&lt;br /&gt;
# E-mailアドレスおよびパスワードを入力してログイン、または、PrivateVPNのアカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、Paypal、Bitcoinが使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PrivateVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ネットワークマネージャトンネルを使用する場合 (推奨) ==&lt;br /&gt;
まず、以下に示す2つのファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
* 証明書ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ca.crt&lt;br /&gt;
* 鍵ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ta.key&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[OpenVPN]を選択して、[Create]ボタンを押下する。&lt;br /&gt;
# 以下に示す情報を入力する。&amp;lt;br&amp;gt;もし、Linuxの起動時にVPNを自動的に接続する場合は、[自動的に接続する]を選択する。&lt;br /&gt;
#* 接続名&lt;br /&gt;
#*: PrivateVPN&lt;br /&gt;
#* ゲートウェイ&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#* タイプ&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* パスワード&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
#* CA証明書&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [LZOデータ圧縮を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [仮想デバイスの種類を設定]チェックボックスにチェックを入力して、[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [セキュリティタブ]を選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [相手（サーバ）の証明書使用状況の署名を確認する]チェックボックスにチェックを入力して、プルダウンから[サーバ]を選択する。&lt;br /&gt;
#*: [追加のTLS認証を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [キーファイル]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction]プルダウンから[1]を選択する。&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[VPN接続] - [PrivateVPN]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストから[OpenVPN]を選択して[作成]ボタンを押下する。&lt;br /&gt;
# [新しい接続]画面が開くので、以下に示す情報を入力する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意でよい。&lt;br /&gt;
#*: 例. PrivateVPN&lt;br /&gt;
#* [ゲートウェイ]&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#*: 例. スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: パスワードを選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [Use Compression]チェックボックスにチェックを入力して、プルダウンから[LZO]を選択する。&lt;br /&gt;
#*: [Set virtual device type:]チェックボックスにチェックを入力して、プルダウンから[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [Security]タブを選択する。&lt;br /&gt;
#*: [Cipher:]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC Authentication:]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS Settings]タブを選択する。&lt;br /&gt;
#*: [Verify peer（server） certificate usage signature]チェックボックスにチェックを入力して、プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [Key File:]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction:]プルダウンから[Client(1)]を選択する。&lt;br /&gt;
# [OK]ボタンを押下して、[OpenVPN Advanced Options]画面を閉じる。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。(この設定は不要の可能性あり)&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、PrivateVPNのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivateVPN CLIを使用する場合 ==&lt;br /&gt;
# [https://privatevpn.com/client/install.sh PrivateVPNの公式Webサイト]から、CLIソフトウェアのインストーラをダウンロードする。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;コマンド等を使用してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://privatevpn.com/client/install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたインストーラに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# スーパーユーザ権限でインストーラを実行する。&amp;lt;br&amp;gt;スーパーユーザ権限で実行する理由は、OpenVPNの接続時において、トンネルインターフェイスを作成するためである。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# /etc/openvpn/privatvpn.confファイルを編集して、接続先のVPNサーバを変更することができる。&amp;lt;br&amp;gt;サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
# WireGuardの接続に必要なツールをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にアクセスして、ログインする。&lt;br /&gt;
# [https://privatevpn.com/control-panel PrivateVPNのコントロールパネル]にアクセスする。&lt;br /&gt;
# コントロールパネル画面左にある[WireGuard Config]から、使用するVPNサーバを選択するため、[Generate Config]ボタンを押下する。&lt;br /&gt;
# コントロールパネルにWireGuardの設定が生成および表示されるので、ダウンロードアイコンを押下する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# WireGuardを使用してVPNネットワークに接続する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick up &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 正常にVPNネットワークに接続しているかどうかを確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg show&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# VPNネットワークを切断する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick down &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にする手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6を無効にするため、/etc/sysctl.confファイルに以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo vi /etc/sysctl.d/00-ipv6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /etc/sysctl.d/00-ipv6.confファイル&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.all.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.default.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.lo.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記の設定を反映する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&lt;br /&gt;
#: https://www.whatismyip.com/&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;は、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torブラウザのプロキシ設定 ==&lt;br /&gt;
==== SOCKS5プロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: SOCKS 5&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTP / HTTPSプロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: HTTP / HTTPS&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 8080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これを、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPをPrivateVPNに公開することなく、PrivateVPNに接続することを意味する。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、Torネットワークに接続する。&lt;br /&gt;
# Torブラウザで任意のWebサイトを開いて、Torブラウザのアドレスバーの左側にある鍵アイコンを選択する。&lt;br /&gt;
# &amp;quot;ガードノード(エントリーノード)&amp;quot;、&amp;quot;中間&amp;quot;、&amp;quot;出口ノード&amp;quot;を含むTorネットワークの現在の回線情報が表示される。&amp;lt;br&amp;gt;この時、ガードノード(エントリーノード)のIPアドレスをコピーする。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;最初のノードは、ガードノード(エントリーノード)と呼ばれており、これは頻繁に変更されない。&amp;lt;br&amp;gt;ただし、暫く時間が経って変更された場合、または、Torブラウザをアップデートした場合は、ガードノード(エントリーノード)のIPアドレスが変更されるため、&amp;lt;br&amp;gt;都度、OpenVPN設定ファイル内の値を変更する必要がある。&lt;br /&gt;
#  [https://privatevpn.com/client/PrivateVPN-TUN.zip PrivateVPNの公式Webサイト]にアクセスして、PrivateVPNのOpenVPN設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;TorブラウザはTCPプロトコル(443番ポート)のみで動作するため、TCPディレクトリからPrivatVPN-&amp;lt;国名&amp;gt;-&amp;lt;都市名&amp;gt;-TUN-443.ovpnを使用する必要がある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 使用するOpenVPN設定ファイルを開いて、以下に示す内容を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Windowsの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 net_gateway&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Linuxの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 &amp;lt;自宅のデフォルトゲートウェイのIPアドレス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torネットワーク経由でPrivateVPNのOpenVPNサーバに接続する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;上記で編集したOpenVPN設定ファイルをOpenVPNクライアントにインポートして接続する。&amp;lt;br&amp;gt;Torブラウザが起動していることを確認して、問題なく動作しているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivateVPN CLIまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentとの連携 ==&lt;br /&gt;
# まず、PrivateVPNサーバに接続する。&amp;lt;br&amp;gt;この時、[Port forwarding]項目に記載されているポート番号をコピーする。&lt;br /&gt;
# 次に、qBittorrentを起動して、[設定] - 画面左の[接続] - [受信接続に使用するポート]において、上記でコピーしたポート番号を入力する。&lt;br /&gt;
# 最後に、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&amp;lt;br&amp;gt;[設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* PrivateVPNソフトウェアからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* NetworkManagerからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* PrivateVPNソフトウェアからWireGuardで接続している場合&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPNのログ ==&lt;br /&gt;
VPN接続に問題がある場合は、接続ログを送信することにより、問題を迅速に特定して、適切な解決策を得られる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Manager ====&lt;br /&gt;
# VPN接続のログを表示して、生成されたログをコピーする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog &amp;gt; &amp;lt;任意のログファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/chat PrivateVPNの公式Webサイトにあるチャット]にアクセスして、チャットボックスから[Send us a message]ボタンを押下する。&lt;br /&gt;
# 上記で取得したVPN接続のログをチャットに貼り付けて、ユーザのEメールアドレスを入力する。&lt;br /&gt;
# [send]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=VPN_-_IP_VANISH&amp;diff=14585</id>
		<title>VPN - IP VANISH</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=VPN_-_IP_VANISH&amp;diff=14585"/>
		<updated>2026-03-24T10:51:01Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
IP VANISHは、ログを一切取らないVPNサービスであり、インターネットのための安全な環境を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続が確立すると、全てのオンライントラフィック（Webブラウジング、動画ストリーミング、ファイル共有等）は暗号化されたトンネルを通過して、識別IPアドレスは隠蔽される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、122カ国以上にある150以上の場所に、3200台以上のVPNサーバを配置している。(2025年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IP VANISHは、電話、メール、ライブチャットによる年中無休のカスタマーサポートを行っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
IP VANISHはノーログVPNを標榜しているが、過去にはノーログの主張に反してユーザ情報を捜査機関に提供した事例が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2016年の捜査機関へのデータ提供事件 ====&lt;br /&gt;
2016年5月から6月にかけて、米国国土安全保障省 (DHS) が児童ポルノ関連事件を捜査する過程で、容疑者が使用したIPアドレスをIP VANISHまで追跡した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
当時、IP VANISHは &amp;quot;ノーログポリシーを厳格に遵守&amp;quot; と公言していたにもかかわらず、以下に示す経緯でユーザ情報を提供した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# DHSからの最初の問い合わせに対して、IP VANISHは &amp;quot;ログは保持していない&amp;quot; と回答した。&lt;br /&gt;
# しかし、DHSがより詳細な捜査令状を発行した後、IP VANISHは方針を変更した。&lt;br /&gt;
# 接続ログを含む詳細な個人情報を当局に開示した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
当時の運営会社はHighwinds Network Group (Mudhook Media) であった。&amp;lt;br&amp;gt;&lt;br /&gt;
この事件は、IP VANISHのノーログ主張に対する重大な信頼性の問題を引き起こし、VPN業界全体の透明性向上への圧力につながった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
IP VANISHは設立以降、複数回の経営変更を経ている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IP VANISHの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2012年 || Mudhook Media Inc により設立 (Highwinds Network Groupの独立子会社)&lt;br /&gt;
|-&lt;br /&gt;
| 2016年 || DHS事件が発生 (上記参照)&lt;br /&gt;
|-&lt;br /&gt;
| 2017年2月 || StackPathが買収。買収時に独立監査を実施し、ログシステムが存在しないことを確認&lt;br /&gt;
|-&lt;br /&gt;
| 2019年4月 || J2 Global (現 Ziff Davis) がStackPathから買収&lt;br /&gt;
|-&lt;br /&gt;
| 2021年 || J2 Globalが企業分割し、デジタルメディアおよびサイバーセキュリティ部門がZiff Davisとして独立上場 (NASDAQ: ZD)&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Ziff Davis / NetProtect / VIPRE Security Group傘下で運営&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査による検証 ====&lt;br /&gt;
2017年のStackPath買収以降、IP VANISHは独立した第三者機関による監査を実施している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年: Leviathan Security Groupによる監査&lt;br /&gt;
*: IP VANISHがプライバシーポリシーのノーログ主張に準拠していることを確認した。&lt;br /&gt;
* 2025年2月: Schellman Compliance LLCによる監査 (2025年4月に結果発表)&lt;br /&gt;
*: サーバ構成およびITシステム全体の技術的検証を実施した。&lt;br /&gt;
*: エンジニアリングチームおよびオペレーションチームへの無制限アクセスが許可された。&lt;br /&gt;
*: ログ構成の検査、サーバイメージの検査、シミュレートされたユーザセッション、テストトラフィックの実施、リアルタイム検証等が行われた。&lt;br /&gt;
*: 監査結果として、ユーザ活動またはメタデータのログ証拠なし、元々のIPアドレスの非記録確認、トラフィック検査なしが確認された。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性への取り組み ====&lt;br /&gt;
現在のIP VANISHは、以下の取り組みにより透明性の向上を図っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 四半期ごとの透明性報告書を公開&lt;br /&gt;
*: 2025年Q4報告では、法的請求25件を受領したが0件のデータ提供、DMCA通知28,636件を受領したが0件のデータ提供であった。&lt;br /&gt;
* Trust Centerを開設し、全てのノーログ監査結果を公開&lt;br /&gt;
* VPN Trust Initiativeの創立メンバーとして、VPN業界全体のプライバシーおよびセキュリティ基準の向上に参加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 残る懸念点 ====&lt;br /&gt;
一方で、以下の懸念点が専門家から指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 米国に拠点を置いているため、Five Eyes監視協定の対象国である。&lt;br /&gt;
* 2016年の信頼侵害は事実として消えず、経営体制が複数回変わっている。&lt;br /&gt;
* 現在の独立監査があっても根本的な信頼性の懸念が残るとする専門家の意見もある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IP VANISHの契約 ==&lt;br /&gt;
IP VANISHの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://support.ipvanish.com/hc/en-us IP VANISHの公式Webサイト]へアクセスして、ページ上部にある[Start Now]を選択する。&lt;br /&gt;
# [Pick your package]では、VPNのプランを選択する。&lt;br /&gt;
# [Select your plan]では、月間または年間のプランを選択する。&lt;br /&gt;
# [Create your account]では、新規アカウントを作成する。&lt;br /&gt;
# [Choose your payment method]では、支払い方法(クレジットカードまたはPayPal)を選択する。&lt;br /&gt;
# [I agree to the automatic renewal terms above.]チェックボックスにチェックを入力する。&lt;br /&gt;
# [Subscribe Now]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IP VANISHの料金は、年間39.99ドル(更新時では、年間99.99ドル)である。(2025年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IP VANISHの設定 ==&lt;br /&gt;
IP VANISH(OpenVPN)を設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== NetworkManagerを使用する場合 ====&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# [https://www.ipvanish.com/software/configs/configs.zip IP VANISHの公式Webサイト]から、OpenVPNファイルをダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://www.ipvanish.com/software/configs/configs.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip config.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/code&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[有線接続]プルダウンから[有線設定]を選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、国-場所-サーバアドレスである。&amp;lt;br&amp;gt;例. ipvanish-AU-Sydney-syd-a01.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: IP VANISHのユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: IP VANISHのパスワードを入力する。&lt;br /&gt;
#*: ［Store the password for all users（すべてのユーザーのパスワードを保存する）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.ipvanish.com.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で選択したIP VANISHのOpenVPN設定が作成されて、IP VANISHのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなIP VANISHに変更されたことを確認する場合は、http://ipchicken.com にアクセスする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [https://www.ipvanish.com/software/configs/configs.zip IP VANISHの公式Webサイト]から、OpenVPNファイルをダウンロードする。&amp;lt;br&amp;gt;または、以下のコマンドを実行してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://www.ipvanish.com/software/configs/configs.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip config.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/code&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したconfigディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. ipvanish-UK-London-lon-a01.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にIP VANISHのVPN接続が表示されるので、IP VANISHのVPN接続を選択する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、IP VANISHのユーザ名とパスワードを入力する。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、上記のセクションで作成したOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
# [https://www.ipvanish.com/what-is-my-ip-address/ IP Checker]にアクセスして、VPNを通して接続されているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenVPNコマンドを使用する場合 ====&lt;br /&gt;
# IP VANISHのOpenVPN設定ファイルを[https://www.ipvanish.com/software/configs/configs.zip IP VANISHの公式Webサイト]からダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;解凍したディレクトリには、OpenVPNファイルと証明書ファイル(.crt拡張子)の2つがある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記で編集したOpenVPN設定ファイルを使用して、OpenVPNを&amp;lt;u&amp;gt;コマンドから&amp;lt;/u&amp;gt;起動する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cd &amp;lt;OpenVPNの設定ファイルがあるディレクトリ&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt; --ca &amp;lt;証明書ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WebブラウザからIP VANISHに接続する ==&lt;br /&gt;
# [https://support.ipvanish.com/hc/en-us/articles/360001410573-How-to-Configure-the-SOCKS5-Proxy-in-Firefox- SOCKS5のガイド]に従って、FireFoxのSocks5プロキシを設定する。&amp;lt;br&amp;gt;IPVanishは、Webトラフィックを匿名化するため、[https://addons.mozilla.org/ja/firefox/addon/foxyproxy-standard/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search FoxyProxy Standardアドオン]をインストールしてSOCKS5プロキシを構成することを推奨している。&lt;br /&gt;
# Firefoxのアドオンページに移動して、検索ボックスで&amp;quot;FoxyProxy Standard&amp;quot;と検索する。&lt;br /&gt;
# FirefoxにFoxyProxy Standardアドオンをインストールする。&lt;br /&gt;
# FoxyProxy Standardのアイコンから[オプション]を選択して、FoxyProxy Standardの設定画面を表示する。&lt;br /&gt;
# 設定画面左にある[Add]ボタンを押下して、IP VanishのSOCKS5プロキシを設定する。&lt;br /&gt;
##* Title&lt;br /&gt;
##*: IPVanish Proxy&lt;br /&gt;
##* Proxy Type&lt;br /&gt;
##*: SOCKS5&lt;br /&gt;
##* Proxy IP address, DNS name&lt;br /&gt;
##*: SOCKS5プロキシのアドレス、SOCKS5プロキシのユーザ名およびパスワードは、[https://account.ipvanish.com/login IP Vanishのマイアカウントページ]にあるSOCKS5プロキシタブで見つけることができる。&lt;br /&gt;
##* Port&lt;br /&gt;
##*: 1080&lt;br /&gt;
##* Username&lt;br /&gt;
##*: IP Vanishのユーザ名&lt;br /&gt;
##* Password&lt;br /&gt;
##*: IP Vanishのパスワード&lt;br /&gt;
## 設定画面左にある全てのトグルスイッチを有効化する。&lt;br /&gt;
## [Save]ボタンを押下する。&lt;br /&gt;
## 新しいページに自動的に遷移するので、設定画面上部にあるプルダウンから[Turn Off（Use Firefox Settings）]を選択して、上記で追加したSOCKS5プロキシサーバを選択する。&lt;br /&gt;
## 設定画面左にある[What&#039;s My IP]を選択して、SOCKS5プロキシサーバ経由で接続されていることを確認する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ipvanish.com/what-is-my-ip-address/ IP Checker]にアクセスして、VPNを通して接続されているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;IP VANISHは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN - IP VANISH#IP VANISHの設定|&amp;quot;IP VANISHの設定&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=GitHub_-_API&amp;diff=14584</id>
		<title>GitHub - API</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=GitHub_-_API&amp;diff=14584"/>
		<updated>2026-03-24T10:37:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub APIは、GitHubのデータやサービスにプログラムからアクセスするためのインターフェースである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHub APIには2種類のAPIが提供されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;center&amp;gt; {| class=&amp;quot;wikitable&amp;quot; |+ GitHub APIの種類 |- ! 種類 !! 説明 |- | REST API || ベースURL: https://api.github.com/&amp;lt;br&amp;gt;HTTPメソッド (GET、POST、PATCH、PUT、DELETE) を使用してリソースを操作する。&amp;lt;br&amp;gt;シンプ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub APIは、GitHubのデータやサービスにプログラムからアクセスするためのインターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub APIには2種類のAPIが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub APIの種類&lt;br /&gt;
|-&lt;br /&gt;
! 種類 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| REST API || ベースURL: https://api.github.com/&amp;lt;br&amp;gt;HTTPメソッド (GET、POST、PATCH、PUT、DELETE) を使用してリソースを操作する。&amp;lt;br&amp;gt;シンプルなリクエスト・レスポンスモデルで、幅広い用途に対応する。&lt;br /&gt;
|-&lt;br /&gt;
| GraphQL API || エンドポイント: https://api.github.com/graphql&amp;lt;br&amp;gt;必要なデータのみを指定して取得できる柔軟なクエリ言語を使用する。&amp;lt;br&amp;gt;複数リソースのデータを1回のリクエストで取得できるため、オーバーフェッチを防止できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
両APIとも認証が必要な操作と不要な操作があるが、認証を行うことでレート制限が緩和され、プライベートリポジトリにもアクセス可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 認証 ==&lt;br /&gt;
GitHub APIの認証方式は複数存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
用途に応じて適切な認証方式を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Personal Access Token ====&lt;br /&gt;
Personal Access Token (PAT) は、個人のGitHubアカウントの代わりにAPIリクエストを認証するためのトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PATには2種類ある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Fine-grained Personal Access Token (推奨) =====&lt;br /&gt;
Fine-grained PATは、より細かい権限制御が可能な新しい形式のトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 特定のリポジトリに対してのみアクセス権を付与できる。&lt;br /&gt;
* 各操作 (エンドポイント) 単位で権限を設定できる。&lt;br /&gt;
* 有効期限の設定が必須である。&lt;br /&gt;
* GitHub.comの[Settings] - [Developer settings] - [Personal access tokens] - [Fine-grained tokens]から作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Classic Personal Access Token =====&lt;br /&gt;
Classic PATは、従来のスコープベースのトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;repo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;admin:org&amp;lt;/code&amp;gt; 等のスコープ単位で権限を付与する。&lt;br /&gt;
* 全リポジトリへのアクセスが許可されるため、Fine-grained PATより権限が広くなりやすい。&lt;br /&gt;
* GitHub.comの[Settings] - [Developer settings] - [Personal access tokens] - [Tokens (classic)]から作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PATを使用する時は、リクエストヘッダに以下に示す形式で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&lt;br /&gt;
 または&lt;br /&gt;
 Authorization: token &amp;lt;YOUR_TOKEN&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Apps ====&lt;br /&gt;
GitHub Appsは、GitHubプラットフォーム上に構築するアプリケーションのための認証方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Appsは2段階の認証方式を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* JWT認証 (アプリ自身の認証)&lt;br /&gt;
*: アプリのプライベートキーを使用してJWT (JSON Web Token) を生成する。&lt;br /&gt;
*: JWTは10分間有効である。&lt;br /&gt;
*: インストールアクセストークンの取得に使用する。&lt;br /&gt;
* インストールアクセストークン&lt;br /&gt;
*: JWTを使用して &amp;lt;code&amp;gt;POST /app/installations/{installation_id}/access_tokens&amp;lt;/code&amp;gt; に対してリクエストを送信することで取得する。&lt;br /&gt;
*: 短期間 (1時間) で自動失効する。&lt;br /&gt;
*: 実際のAPIリクエストにはインストールアクセストークンを使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OAuth Apps ====&lt;br /&gt;
OAuth Appsは、ユーザの代わりにGitHub APIにアクセスするための認証方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OAuthフローを通じてユーザの認可を得る。&lt;br /&gt;
* ユーザアクセストークンを取得してAPIリクエストに使用する。&lt;br /&gt;
* GitHub AppsのOAuth機能と比較して、権限管理の粒度が粗い。&lt;br /&gt;
* 新規の用途には、GitHub Appsの使用が推奨される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GITHUB_TOKEN ====&lt;br /&gt;
&amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; は、GitHub Actionsワークフロー内で自動的に生成されるシークレットトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ワークフロー実行ごとに自動生成される。&lt;br /&gt;
* ワークフローが完了すると自動的に失効する。&lt;br /&gt;
* リポジトリのActionsの設定でデフォルトの権限を調整できる。&lt;br /&gt;
* 外部リソースへのアクセスには別途認証が必要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Actionsのワークフロー内では以下に示すように使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 - name: GitHub APIを呼び出す&lt;br /&gt;
   run: |&lt;br /&gt;
      curl -H &amp;quot;Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}&amp;quot; \&lt;br /&gt;
           https://api.github.com/repos/${{ github.repository }}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証方法の比較 ====&lt;br /&gt;
下表に、各認証方式の特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 認証方式の比較&lt;br /&gt;
! 認証方式 !! 用途 !! 権限の粒度 !! 有効期限&lt;br /&gt;
|-&lt;br /&gt;
| Fine-grained PAT || 個人の開発、スクリプト || リポジトリ単位・操作単位 || 設定必須 (最大1年)&lt;br /&gt;
|-&lt;br /&gt;
| Classic PAT || 個人の開発、スクリプト || スコープ単位 || 設定可能 (無期限も可)&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Apps || サードパーティアプリ、CI/CD || リポジトリ単位・権限単位 || インストールトークンは1時間&lt;br /&gt;
|-&lt;br /&gt;
| OAuth Apps || ユーザ認可が必要なアプリ || スコープ単位 || 設定による&lt;br /&gt;
|-&lt;br /&gt;
| GITHUB_TOKEN || GitHub Actionsワークフロー || リポジトリ権限に準拠 || ワークフロー終了まで&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== REST API ==&lt;br /&gt;
==== エンドポイントの構造 ====&lt;br /&gt;
GitHub REST APIのベースURLは https://api.github.com/ である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エンドポイントは以下の形式で構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 https://api.github.com/{リソースパス}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、リソースパスの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ REST APIの主要なエンドポイント例&lt;br /&gt;
|-&lt;br /&gt;
! エンドポイント !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/repos/{owner}/{repo}&amp;lt;/code&amp;gt; || 特定リポジトリの情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues&amp;lt;/code&amp;gt; || リポジトリのIssue一覧&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/user&amp;lt;/code&amp;gt; || 認証済みユーザの情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/orgs/{org}&amp;lt;/code&amp;gt; || 組織の情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、HTTPメソッドと操作の対応を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! HTTPメソッド !! 操作内容&lt;br /&gt;
|-&lt;br /&gt;
| GET || リソースの取得&lt;br /&gt;
|-&lt;br /&gt;
| POST || リソースの作成&lt;br /&gt;
|-&lt;br /&gt;
| PATCH || リソースの部分更新&lt;br /&gt;
|-&lt;br /&gt;
| PUT || リソースの置換・関連付け&lt;br /&gt;
|-&lt;br /&gt;
| DELETE || リソースの削除&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リクエストとレスポンス ====&lt;br /&gt;
GitHub REST APIのリクエストには、以下に示すヘッダを設定することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要なリクエストヘッダ&lt;br /&gt;
! ヘッダ名 !! 説明 !! 例&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Authorization&amp;lt;/code&amp;gt; || 認証トークン || &amp;lt;u&amp;gt;Bearer ghp_xxxxxxxxxxxx&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Accept&amp;lt;/code&amp;gt; || レスポンス形式の指定 || &amp;lt;u&amp;gt;application/vnd.github+json&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-GitHub-Api-Version&amp;lt;/code&amp;gt; || APIバージョンの指定 || &amp;lt;u&amp;gt;2022-11-28&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;User-Agent&amp;lt;/code&amp;gt; || アプリケーション識別子 || &amp;lt;u&amp;gt;MyApp/1.0&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レスポンスは、JSON形式で返される。&amp;lt;br&amp;gt;&lt;br /&gt;
日時は、ISO 8601形式 (例: &amp;lt;u&amp;gt;2024-01-15T12:00:00Z&amp;lt;/u&amp;gt;) で表現される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ページネーション ====&lt;br /&gt;
複数件のリソースを返すエンドポイントでは、ページネーションが使用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;per_page&amp;lt;/code&amp;gt; クエリパラメータでページあたりの件数を指定する。(最大100)&lt;br /&gt;
* &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; クエリパラメータでページ番号を指定する。&lt;br /&gt;
* レスポンスの &amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; ヘッダに次ページ、前ページ等のURLが含まれる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; ヘッダの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Link: &amp;lt;https://api.github.com/repos/owner/repo/issues?page=2&amp;gt;; rel=&amp;quot;next&amp;quot;,&lt;br /&gt;
       &amp;lt;https://api.github.com/repos/owner/repo/issues?page=10&amp;gt;; rel=&amp;quot;last&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; の値は &amp;lt;u&amp;gt;next&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;prev&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;first&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;last&amp;lt;/u&amp;gt; の4種類がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要なエンドポイント ====&lt;br /&gt;
下表に、よく使用される主要なエンドポイントを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要エンドポイント一覧&lt;br /&gt;
! カテゴリ !! メソッド !! エンドポイント !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}&amp;lt;/code&amp;gt; || リポジトリ情報の取得&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ || POST || &amp;lt;code&amp;gt;/user/repos&amp;lt;/code&amp;gt; || リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/contents/{path}&amp;lt;/code&amp;gt; || ファイル内容の取得&lt;br /&gt;
|-&lt;br /&gt;
| Issues || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues&amp;lt;/code&amp;gt; || Issue一覧の取得&lt;br /&gt;
|-&lt;br /&gt;
| Issues || POST || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues&amp;lt;/code&amp;gt; || Issueの作成&lt;br /&gt;
|-&lt;br /&gt;
| Issues || PATCH || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues/{issue_number}&amp;lt;/code&amp;gt; || Issueの更新&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/pulls&amp;lt;/code&amp;gt; || PR一覧の取得&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || POST || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/pulls&amp;lt;/code&amp;gt; || PRの作成&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || PUT || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/pulls/{pull_number}/merge&amp;lt;/code&amp;gt; || PRのマージ&lt;br /&gt;
|-&lt;br /&gt;
| ユーザ || GET || &amp;lt;code&amp;gt;/user&amp;lt;/code&amp;gt; || 認証済みユーザ情報の取得&lt;br /&gt;
|-&lt;br /&gt;
| ユーザ || GET || &amp;lt;code&amp;gt;/users/{username}&amp;lt;/code&amp;gt; || 特定ユーザ情報の取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用例 ====&lt;br /&gt;
curlを使用したREST APIのリクエスト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* リポジトリ情報の取得&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -H &amp;quot;Accept: application/vnd.github+json&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;X-GitHub-Api-Version: 2022-11-28&amp;quot; \&lt;br /&gt;
      https://api.github.com/repos/octocat/hello-world&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Issueの作成&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -X POST \&lt;br /&gt;
      -H &amp;quot;Accept: application/vnd.github+json&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;X-GitHub-Api-Version: 2022-11-28&amp;quot; \&lt;br /&gt;
      https://api.github.com/repos/octocat/hello-world/issues \&lt;br /&gt;
      -d &#039;{&amp;quot;title&amp;quot;:&amp;quot;バグ報告&amp;quot;,&amp;quot;body&amp;quot;:&amp;quot;バグの詳細説明&amp;quot;,&amp;quot;labels&amp;quot;:[&amp;quot;bug&amp;quot;]}&#039;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Issue一覧の取得 (ページネーション使用)&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -H &amp;quot;Accept: application/vnd.github+json&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;X-GitHub-Api-Version: 2022-11-28&amp;quot; \&lt;br /&gt;
      &amp;quot;https://api.github.com/repos/octocat/hello-world/issues?per_page=50&amp;amp;page=1&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GraphQL API ==&lt;br /&gt;
==== GraphQLとは ====&lt;br /&gt;
GraphQLは、APIのためのクエリ言語であり、必要なデータのみを指定して取得できる仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
REST APIと比較した時のGraphQL APIのメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ REST APIと比較したGraphQL APIのメリット&lt;br /&gt;
|-&lt;br /&gt;
! 観点 !! メリット&lt;br /&gt;
|-&lt;br /&gt;
| データ取得の効率性 || 必要なフィールドのみを指定して取得するため、不要なデータの転送を削減できる。&lt;br /&gt;
|-&lt;br /&gt;
| リクエスト回数の削減 || 複数のリソースに関するデータを1回のリクエストで取得できる。&lt;br /&gt;
|-&lt;br /&gt;
| APIの明確性 || 型システムによりAPIの構造が明確である。&lt;br /&gt;
|-&lt;br /&gt;
| クライアントの柔軟性 || クライアント側でデータ要件を柔軟に調整できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エンドポイント ====&lt;br /&gt;
GitHub GraphQL APIのエンドポイントは以下の1つのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 https://api.github.com/graphql&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
REST APIとは異なり、全てのリクエストは &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; メソッドで送信する。&amp;lt;br&amp;gt;&lt;br /&gt;
リクエストボディにJSONとしてクエリを含める。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -X POST \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
      https://api.github.com/graphql \&lt;br /&gt;
      -d &#039;{&amp;quot;query&amp;quot;: &amp;quot;{ viewer { login } }&amp;quot;}&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クエリの基本 ====&lt;br /&gt;
GraphQLのクエリは、取得したいデータの構造を宣言的に記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 認証済みユーザの情報を取得するクエリの例&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query { viewer { login name email } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 特定リポジトリの情報を取得するクエリの例&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query { repository(owner: \&amp;quot;octocat\&amp;quot;, name: \&amp;quot;hello-world\&amp;quot;) { name description stargazerCount forkCount } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 横断検索 (search) を使用したクエリの例&lt;br /&gt;
*: searchは最大1,000件の結果を返す。&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query { search(query: \&amp;quot;repo:octocat/hello-world is:issue is:open\&amp;quot;, type: ISSUE, first: 10) { issueCount nodes { ... on Issue { title number } } } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ミューテーション ====&lt;br /&gt;
GraphQLでデータを変更する操作には、ミューテーション (mutation) を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Issueにリアクションを追加するミューテーションの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;mutation { addReaction(input: {subjectId: \&amp;quot;MDU6SXNzdWUx\&amp;quot;, content: THUMBS_UP}) { reaction { content } subject { id } } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 変数の使用 ====&lt;br /&gt;
GraphQLでは、クエリと変数を分離して記述できる。&amp;lt;br&amp;gt;&lt;br /&gt;
変数を使用することにより、クエリの再利用性が向上して、特殊文字のエスケープが不要になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query GetRepository($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { name description stargazerCount issues(first: 5, states: OPEN) { nodes { title number } } } }&amp;quot;,&lt;br /&gt;
    &amp;quot;variables&amp;quot;: {&lt;br /&gt;
       &amp;quot;owner&amp;quot;: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
       &amp;quot;name&amp;quot;: &amp;quot;hello-world&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub CLI (gh) ==&lt;br /&gt;
==== インストールと認証 ====&lt;br /&gt;
GitHub CLI (gh) は、コマンドラインからGitHubの操作を行うための公式ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # MacOS (Homebrew)&lt;br /&gt;
 brew install gh&lt;br /&gt;
 &lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gh&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install gh&lt;br /&gt;
 &lt;br /&gt;
 # Debian / Ubuntu&lt;br /&gt;
 sudo apt install gh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、認証を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 対話的な認証フロー&lt;br /&gt;
 gh auth login&lt;br /&gt;
 &lt;br /&gt;
 # 認証状態の確認&lt;br /&gt;
 gh auth status&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数を使用した認証 (CI/CD環境等)&lt;br /&gt;
 export GH_TOKEN=&amp;lt;YOUR_TOKEN&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
下表に、GitHub CLIで使用できる主要なコマンドを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub CLI 主要コマンド一覧&lt;br /&gt;
! コマンド !! 主なサブコマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh repo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;clone&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;fork&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt; || リポジトリの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh issue&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;close&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;edit&amp;lt;/code&amp;gt; || Issueの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh pr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;checkout&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; || Pull Requestの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh release&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;download&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt; || リリースの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh workflow&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;enable&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt; || GitHub Actionsワークフローの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh api&amp;lt;/code&amp;gt; || - || REST / GraphQL APIの直接呼び出し&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh alias&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt; || コマンドエイリアスの管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # リポジトリのクローン&lt;br /&gt;
 gh repo clone octocat/hello-world&lt;br /&gt;
 &lt;br /&gt;
 # Issue一覧の表示&lt;br /&gt;
 gh issue list --repo octocat/hello-world --state open&lt;br /&gt;
 &lt;br /&gt;
 # Pull Requestの作成&lt;br /&gt;
 gh pr create --title &amp;quot;機能追加&amp;quot; --body &amp;quot;機能の説明&amp;quot; --base main&lt;br /&gt;
 &lt;br /&gt;
 # ワークフローの手動実行&lt;br /&gt;
 gh workflow run deploy.yml --ref main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh api ====&lt;br /&gt;
&amp;lt;code&amp;gt;gh api&amp;lt;/code&amp;gt; コマンドを使用することにより、REST API および GraphQL APIを直接呼び出すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # REST API (GET)&lt;br /&gt;
 gh api repos/octocat/hello-world&lt;br /&gt;
 &lt;br /&gt;
 # REST API (POST) : Issueの作成&lt;br /&gt;
 gh api repos/octocat/hello-world/issues \&lt;br /&gt;
    --method POST \&lt;br /&gt;
    --field title=&amp;quot;バグ報告&amp;quot; \&lt;br /&gt;
    --field body=&amp;quot;バグの詳細説明&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # GraphQL APIの呼び出し&lt;br /&gt;
 gh api graphql \&lt;br /&gt;
    --field query=&#039;query { viewer { login name } }&#039;&lt;br /&gt;
 &lt;br /&gt;
 # ページネーションを自動処理して全件取得&lt;br /&gt;
 gh api --paginate repos/octocat/hello-world/issues&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エイリアス ====&lt;br /&gt;
よく使用するコマンドにエイリアスを設定することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # エイリアスの設定&lt;br /&gt;
 gh alias set prl &#039;pr list --state open&#039;&lt;br /&gt;
 &lt;br /&gt;
 # エイリアスの一覧表示&lt;br /&gt;
 gh alias list&lt;br /&gt;
 &lt;br /&gt;
 # エイリアスの削除&lt;br /&gt;
 gh alias delete prl&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Octokit ==&lt;br /&gt;
Octokitは、GitHub APIの公式クライアントライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各言語向けに提供されており、APIの呼び出しを簡略化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Octokit.js ====&lt;br /&gt;
Octokit.jsは、JavaScript / TypeScript向けのGitHub APIクライアントライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザ、Node.js、Denoの各環境で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install @octokit/rest&lt;br /&gt;
 # または&lt;br /&gt;
 npm install octokit&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 import { Octokit } from &amp;quot;@octokit/rest&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 // インスタンスの作成&lt;br /&gt;
 const octokit = new Octokit({&lt;br /&gt;
    auth: &amp;quot;YOUR_TOKEN&amp;quot;,&lt;br /&gt;
 });&lt;br /&gt;
 &lt;br /&gt;
 // リポジトリ情報の取得&lt;br /&gt;
 const { data: repo } = await octokit.rest.repos.get({&lt;br /&gt;
    owner: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
    repo: &amp;quot;hello-world&amp;quot;,&lt;br /&gt;
 });&lt;br /&gt;
 console.log(repo.name);&lt;br /&gt;
 &lt;br /&gt;
 // Issueの作成&lt;br /&gt;
 const { data: issue } = await octokit.rest.issues.create({&lt;br /&gt;
    owner: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
    repo: &amp;quot;hello-world&amp;quot;,&lt;br /&gt;
    title: &amp;quot;バグ報告&amp;quot;,&lt;br /&gt;
    body: &amp;quot;バグの詳細説明&amp;quot;,&lt;br /&gt;
 });&lt;br /&gt;
 console.log(issue.number);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ページネーションを自動処理する &amp;lt;code&amp;gt;paginate()&amp;lt;/code&amp;gt; メソッドの使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 // 全Issue一覧の取得 (自動ページネーション)&lt;br /&gt;
 const issues = await octokit.paginate(octokit.rest.issues.listForRepo, {&lt;br /&gt;
    owner: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
    repo: &amp;quot;hello-world&amp;quot;,&lt;br /&gt;
    state: &amp;quot;open&amp;quot;,&lt;br /&gt;
    per_page: 100,&lt;br /&gt;
 });&lt;br /&gt;
 &lt;br /&gt;
 console.log(`取得件数: ${issues.length}`);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Octokit.rb ====&lt;br /&gt;
Octokit.rbは、Ruby向けのGitHub APIクライアントライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gem install octokit&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
 require &amp;quot;octokit&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # クライアントの作成&lt;br /&gt;
 client = Octokit::Client.new(access_token: &amp;quot;YOUR_TOKEN&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 # リポジトリ情報の取得&lt;br /&gt;
 repo = client.repository(&amp;quot;octocat/hello-world&amp;quot;)&lt;br /&gt;
 puts repo.name&lt;br /&gt;
 &lt;br /&gt;
 # Issueの作成&lt;br /&gt;
 issue = client.create_issue(&amp;quot;octocat/hello-world&amp;quot;, &amp;quot;バグ報告&amp;quot;, &amp;quot;バグの詳細説明&amp;quot;)&lt;br /&gt;
 puts issue.number&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webhook ==&lt;br /&gt;
==== Webhookとは ====&lt;br /&gt;
WebhookはGitHub上でイベントが発生した時に、指定したURLに対してHTTP POSTリクエストを自動的に送信する仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Webhookを使用することにより、リポジトリへのプッシュ、IssueやPull Requestの作成・更新、デプロイイベントの発生等、様々なGitHubイベントに反応した自動化を実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Webhookの設定 ====&lt;br /&gt;
Webhookは、リポジトリ または Organizationの設定から作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Webhookの設定項目&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| ペイロードURL || Webhookのイベント発生時にリクエストを受信するエンドポイントのURL&amp;lt;br&amp;gt;公開されたHTTPSのURLである必要がある。&lt;br /&gt;
|-&lt;br /&gt;
| コンテンツタイプ || &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt; (推奨)&amp;lt;br&amp;gt;または&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;application/x-www-form-urlencoded&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;を選択する。&lt;br /&gt;
|-&lt;br /&gt;
| シークレット || Webhookのペイロードを検証するための秘密の文字列&amp;lt;br&amp;gt;設定することでHTTPリクエストの正当性を確認できる。&lt;br /&gt;
|-&lt;br /&gt;
| イベントの選択 || 通知を受けたいイベントを個別に選択、または、全イベントを受信するかを設定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== イベントの種類 ====&lt;br /&gt;
GitHubでは、70以上のWebhookイベントが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主要なイベントを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要Webhookイベント&lt;br /&gt;
! イベント名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;push&amp;lt;/code&amp;gt; || リポジトリへのコミットのプッシュ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pull_request&amp;lt;/code&amp;gt; || Pull Requestの作成、更新、クローズ等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;issues&amp;lt;/code&amp;gt; || Issueの作成、更新、クローズ等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt; || ブランチやタグの作成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt; || ブランチやタグの削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;release&amp;lt;/code&amp;gt; || リリースの公開・更新等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;workflow_run&amp;lt;/code&amp;gt; || GitHub Actionsワークフローの実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;code_scanning_alert&amp;lt;/code&amp;gt; || コードスキャンアラートの検出&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;secret_scanning_alert&amp;lt;/code&amp;gt; || シークレットスキャンアラートの検出&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シークレットによる検証 ====&lt;br /&gt;
Webhookのシークレットを設定している場合、GitHubはリクエストに &amp;lt;code&amp;gt;X-Hub-Signature-256&amp;lt;/code&amp;gt; ヘッダを付与する。&amp;lt;br&amp;gt;&lt;br /&gt;
このヘッダの値はHMAC-SHA256アルゴリズムを使用して計算されたシグネチャである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
受信側でシグネチャを検証することにより、リクエストが正当なGitHubからのものであることを確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Node.jsでの検証例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 const crypto = require(&amp;quot;crypto&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 function verifyWebhookSignature(payload, signature, secret) {&lt;br /&gt;
    const hmac = crypto.createHmac(&amp;quot;sha256&amp;quot;, secret);&lt;br /&gt;
    const digest = &amp;quot;sha256=&amp;quot; + hmac.update(payload).digest(&amp;quot;hex&amp;quot;);&lt;br /&gt;
    return crypto.timingSafeEqual(&lt;br /&gt;
       Buffer.from(digest),&lt;br /&gt;
       Buffer.from(signature)&lt;br /&gt;
    );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Express.jsでの使用例&lt;br /&gt;
 app.post(&amp;quot;/webhook&amp;quot;, (req, res) =&amp;gt; {&lt;br /&gt;
    const signature = req.headers[&amp;quot;x-hub-signature-256&amp;quot;];&lt;br /&gt;
    const isValid = verifyWebhookSignature(&lt;br /&gt;
       req.rawBody,&lt;br /&gt;
       signature,&lt;br /&gt;
       process.env.WEBHOOK_SECRET&lt;br /&gt;
    );&lt;br /&gt;
 &lt;br /&gt;
    if (!isValid) {&lt;br /&gt;
       return res.status(401).send(&amp;quot;Unauthorized&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // Webhookペイロードの処理&lt;br /&gt;
    const event = req.headers[&amp;quot;x-github-event&amp;quot;];&lt;br /&gt;
    console.log(`イベント受信: ${event}`);&lt;br /&gt;
    res.status(200).send(&amp;quot;OK&amp;quot;);&lt;br /&gt;
 });&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、配信時に付与される主要なヘッダを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Webhookリクエストの主要なHTTPヘッダ&lt;br /&gt;
|-&lt;br /&gt;
! ヘッダー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-GitHub-Event&amp;lt;/code&amp;gt; || イベントの種類 (例: &amp;lt;u&amp;gt;push&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;pull_request&amp;lt;/u&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-GitHub-Delivery&amp;lt;/code&amp;gt; || 配信を識別するUUID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-Hub-Signature-256&amp;lt;/code&amp;gt; || HMAC-SHA256によるシグネチャ (シークレット設定時のみ)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ペイロードの制限 ====&lt;br /&gt;
Webhookのペイロードには最大25[MB]の制限がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ペイロードがこの制限を超える場合、GitHubはWebhookを送信せずに、配信履歴に記録される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;大量のコミットを含むプッシュイベント等で発生する可能性があるため、注意が必要である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub Apps ==&lt;br /&gt;
==== GitHub Appsとは ====&lt;br /&gt;
&amp;lt;u&amp;gt;GitHub Appsは、GitHubプラットフォーム上に構築するアプリケーションの形式であり、OAuth Appsより推奨される認証方式である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Appsの主な特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Fine-grained permissionsにより、必要な権限のみを要求できる。&lt;br /&gt;
* 特定のリポジトリにのみインストールすることが可能である。&lt;br /&gt;
* ユーザの代わりではなく、アプリケーション自身として動作できる。&lt;br /&gt;
* SAML SSOが有効なOrganizationでは自動的に認可される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OAuth Appsとの違い ====&lt;br /&gt;
下表に、GitHub AppsとOAuth Appsの主な違いを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Apps vs OAuth Apps&lt;br /&gt;
! 比較項目 !! GitHub Apps !! OAuth Apps&lt;br /&gt;
|-&lt;br /&gt;
| 推奨度 || 推奨 || 非推奨 (新規用途)&lt;br /&gt;
|-&lt;br /&gt;
| 権限の粒度 || リポジトリ / 操作単位 || スコープ単位&lt;br /&gt;
|-&lt;br /&gt;
| インストール単位 || Organization または ユーザ || ユーザ&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリの限定 || 特定リポジトリのみ可能 || 全リポジトリ対象&lt;br /&gt;
|-&lt;br /&gt;
| 動作主体 || アプリ自身またはユーザ || ユーザのみ&lt;br /&gt;
|-&lt;br /&gt;
| レート制限 || インストールごとにスケーリング || ユーザごと&lt;br /&gt;
|-&lt;br /&gt;
| SAML SSO対応 || 自動認可 || ユーザによる認可が必要&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Appの作成 ====&lt;br /&gt;
GitHub Appを新規作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHub.comにログインして、[Settings]を開く。&lt;br /&gt;
# 左側のサイドバーから[Developer settings]を選択する。&lt;br /&gt;
# [GitHub Apps]を選択して、[New GitHub App]ボタンを押下する。&lt;br /&gt;
# アプリ名、ホームページURL、Webhook URL等の必須情報を入力する。&lt;br /&gt;
# 必要な権限 (Permissions) を設定する。&lt;br /&gt;
# サブスクライブするイベントを選択する。&lt;br /&gt;
# プライベートキーを生成してダウンロードする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証方式 ====&lt;br /&gt;
GitHub Appsでは3種類の認証方式が提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== JWT認証 (アプリ自身の認証) =====&lt;br /&gt;
アプリ自身を認証するためにJWT (JSON Web Token) を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アプリのIDとプライベートキーを使用してJWTを生成する。&lt;br /&gt;
* JWTの有効期限は最大10分である。&lt;br /&gt;
* インストールアクセストークンの取得等、アプリレベルの操作に使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 import jwt from &amp;quot;jsonwebtoken&amp;quot;;&lt;br /&gt;
 import fs from &amp;quot;fs&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 const APP_ID = &amp;quot;YOUR_APP_ID&amp;quot;;&lt;br /&gt;
 const PRIVATE_KEY = fs.readFileSync(&amp;quot;private-key.pem&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 const payload = {&lt;br /&gt;
    iat: Math.floor(Date.now() / 1000) - 60,&lt;br /&gt;
    exp: Math.floor(Date.now() / 1000) + (10 * 60),&lt;br /&gt;
    iss: APP_ID,&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 const token = jwt.sign(payload, PRIVATE_KEY, { algorithm: &amp;quot;RS256&amp;quot; });&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== インストールアクセストークン =====&lt;br /&gt;
特定のインストールのリソースにアクセスするための短期トークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* JWTを使用して &amp;lt;u&amp;gt;POST /app/installations/{installation_id}/access_tokens&amp;lt;/u&amp;gt; に対してリクエストを送信することで取得する。&lt;br /&gt;
* 有効期限は1時間で、自動的に失効する。&lt;br /&gt;
* 特定のリポジトリやリソースへのアクセスに使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ユーザアクセストークン =====&lt;br /&gt;
&amp;lt;u&amp;gt;ユーザがGitHub Appを認可した後に取得できるトークンであり、ユーザの代わりにAPIを呼び出す場合に使用する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== レート制限 ==&lt;br /&gt;
==== プライマリレート制限 ====&lt;br /&gt;
GitHub APIには、APIの悪用を防ぐためのレート制限が設けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、プライマリレート制限の上限を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プライマリレート制限&lt;br /&gt;
! 認証状態 !! 上限 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| 認証なし || 60リクエスト / 時間 || IPアドレスごとに適用&lt;br /&gt;
|-&lt;br /&gt;
| PAT認証済み || 5,000リクエスト / 時間 || ユーザごとに適用&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Enterprise Cloud || 15,000リクエスト / 時間 || Organizationメンバー&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Apps (インストール) || 最低5,000リクエスト / 時間 || リポジトリ数に応じてスケーリング&lt;br /&gt;
|-&lt;br /&gt;
| GITHUB_TOKEN (Actions) || 1,000リクエスト / 時間 || リポジトリごとに適用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セカンダリレート制限 ====&lt;br /&gt;
プライマリレート制限に加えて、サーバへの過負荷を防ぐためのセカンダリレート制限が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
セカンダリレート制限の主な内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 同時接続数&lt;br /&gt;
*: 最大100接続まで&lt;br /&gt;
* REST API&lt;br /&gt;
*: 1分あたり900ポイントまで&lt;br /&gt;
* GraphQL API&lt;br /&gt;
*: 1分あたり2,000ポイントまで&lt;br /&gt;
* コンテンツ作成 (Issueの作成等)&lt;br /&gt;
*: 1時間あたり制限あり&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
セカンダリレート制限に達した場合、レスポンスに &amp;lt;code&amp;gt;retry-after&amp;lt;/code&amp;gt; ヘッダが含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
このヘッダの値 (秒数) だけ待機してから再試行する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
継続して制限に達する場合は指数バックオフを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 確認方法 ====&lt;br /&gt;
現在のレート制限の状態は、レスポンスヘッダまたは専用のエンドポイントで確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、レスポンスヘッダで確認できる情報を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ レート制限関連レスポンスヘッダ&lt;br /&gt;
! ヘッダ名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-limit&amp;lt;/code&amp;gt; || 時間あたりの最大リクエスト数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-remaining&amp;lt;/code&amp;gt; || 現在の期間内の残りリクエスト数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-reset&amp;lt;/code&amp;gt; || レート制限がリセットされるUNIXタイムスタンプ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-used&amp;lt;/code&amp;gt; || 現在の期間内に使用したリクエスト数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;retry-after&amp;lt;/code&amp;gt; || セカンダリレート制限に達した場合の待機秒数&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
専用エンドポイントでレート制限を確認することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
このエンドポイントへのリクエスト自体はレート制限のカウントに含まれない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      https://api.github.com/rate_limit&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レスポンスの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;resources&amp;quot;: {&lt;br /&gt;
       &amp;quot;core&amp;quot;: {&lt;br /&gt;
          &amp;quot;limit&amp;quot;: 5000,&lt;br /&gt;
          &amp;quot;remaining&amp;quot;: 4999,&lt;br /&gt;
          &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
          &amp;quot;used&amp;quot;: 1&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;graphql&amp;quot;: {&lt;br /&gt;
          &amp;quot;limit&amp;quot;: 5000,&lt;br /&gt;
          &amp;quot;remaining&amp;quot;: 4999,&lt;br /&gt;
          &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
          &amp;quot;used&amp;quot;: 1&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;search&amp;quot;: {&lt;br /&gt;
          &amp;quot;limit&amp;quot;: 30,&lt;br /&gt;
          &amp;quot;remaining&amp;quot;: 29,&lt;br /&gt;
          &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
          &amp;quot;used&amp;quot;: 1&lt;br /&gt;
       }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rate&amp;quot;: {&lt;br /&gt;
       &amp;quot;limit&amp;quot;: 5000,&lt;br /&gt;
       &amp;quot;remaining&amp;quot;: 4999,&lt;br /&gt;
       &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
       &amp;quot;used&amp;quot;: 1&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
* [https://docs.github.com/ja/rest GitHub REST API公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/graphql GitHub GraphQL API公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/apps GitHub Apps公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/webhooks GitHub Webhooks公式ドキュメント]&lt;br /&gt;
* [https://cli.github.com/manual/ GitHub CLI公式マニュアル]&lt;br /&gt;
* [https://github.com/octokit GitHub Octokit公式リポジトリ]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,GitHub,API,REST API,GraphQL,GitHub Apps,OAuth,Webhook,Octokit,GitHub CLI,gh,Personal Access Token,PAT,Rate Limit,SUSE,Linux&lt;br /&gt;
|description={{PAGENAME}} - GitHub APIの使い方に関するリファレンスガイド | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>https://mochiu.net/index.php?title=GitHub_-_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=14583</id>
		<title>GitHub - セキュリティ</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=GitHub_-_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=14583"/>
		<updated>2026-03-24T09:56:05Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHubのセキュリティ機能は、ソフトウェアサプライチェーン全体を保護するための統合的なセキュリティプラットフォームである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHubセキュリティは以下に示す3つの柱で構成されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; * Secret Scanning *: APIキー、パスワード、トークンなどの認証情報がコードに混入することを検出・防止する機能である。 *: Git履歴全体お…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHubのセキュリティ機能は、ソフトウェアサプライチェーン全体を保護するための統合的なセキュリティプラットフォームである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubセキュリティは以下に示す3つの柱で構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Secret Scanning&lt;br /&gt;
*: APIキー、パスワード、トークンなどの認証情報がコードに混入することを検出・防止する機能である。&lt;br /&gt;
*: Git履歴全体およびIssues、PR、Discussions、Wikiもスキャン対象となる。&lt;br /&gt;
* Code Scanning&lt;br /&gt;
*: CodeQLをはじめとする静的解析エンジンによりコードの脆弱性を自動検出する機能である。&lt;br /&gt;
*: PR作成時にインライン表示でフィードバックを提供する。&lt;br /&gt;
* Supply Chain Security&lt;br /&gt;
*: Dependabotによる依存関係の脆弱性検出、自動修正PR作成、Dependency Graphによる依存関係の可視化を提供する機能である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Advanced Security (GHAS) は、これらのセキュリティ機能を包括的に提供するアドオンである。&amp;lt;br&amp;gt;&lt;br /&gt;
GHASはGitHub Code Security (CodeQL、Dependabotの高度機能) とGitHub Secret Protectionの2つのプロダクトで構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
公開リポジトリでは一部の機能が無料で利用できるが、プライベートリポジトリでの利用にはGitHub Enterprise Cloudまたはサーバライセンスが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dependabot ==&lt;br /&gt;
==== Dependabotとは ====&lt;br /&gt;
Dependabotは、リポジトリの依存関係を継続的に監視し、脆弱性の検出・修正および最新バージョンへの更新を自動化するGitHubの機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dependabotは、以下に示す3つのコンポーネントで構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dependabotのコンポーネント&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Alerts || 脆弱な依存関係を検出してアラートを通知する。&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Security Updates || セキュリティ上の脆弱性を修正するパッチを自動的にPRとして作成する。&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Version Updates || 依存関係を最新バージョンに更新するPRを定期的に作成する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependabot Alerts ====&lt;br /&gt;
Dependabot Alertsは、リポジトリで使用している依存関係にGitHub Advisory Databaseに登録された既知の脆弱性が含まれている場合に、自動でアラートを生成する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
脆弱性の検出時、書き込み権限 / メンテナンス権限 / 管理者権限を持つユーザに通知が送信される。&amp;lt;br&amp;gt;&lt;br /&gt;
通知の設定は個人レベル・リポジトリレベル・組織レベルのそれぞれで制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アラートはリポジトリの[Security]タブからも確認でき、影響を受けるパッケージ名 / 脆弱性の種類 / 重大度 (Critical/High/Medium/Low) が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependabot Security Updates ====&lt;br /&gt;
Dependabot Security Updatesは、Dependabot Alertsで脆弱性が検出された時に、脆弱性を修正したバージョンへの更新PRを自動的に作成する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動作成されるPRには、以下に示す情報が含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 変更対象のパッケージ名とバージョン&lt;br /&gt;
* 修正される脆弱性の内容 (CVE番号・説明)&lt;br /&gt;
* リリースノートおよびコミット履歴へのリンク&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRをマージすることにより、最小限の変更で脆弱性を解消できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependabot Version Updates ====&lt;br /&gt;
Dependabot Version Updatesは、依存関係を定期的にチェックして、新しいバージョンが利用可能になった時にPRを作成する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を有効化するには、リポジトリに &amp;lt;u&amp;gt;.github/dependabot.yml&amp;lt;/u&amp;gt; ファイルを作成して設定を記述する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== dependabot.ymlの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.github/dependabot.yml&amp;lt;/u&amp;gt; ファイルの基本的な設定項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: 2&lt;br /&gt;
 updates:&lt;br /&gt;
   - package-ecosystem: &amp;quot;npm&amp;quot;&lt;br /&gt;
     directory: &amp;quot;/&amp;quot;&lt;br /&gt;
     schedule:&lt;br /&gt;
       interval: &amp;quot;weekly&amp;quot;&lt;br /&gt;
     allow:&lt;br /&gt;
       - dependency-type: &amp;quot;direct&amp;quot;&lt;br /&gt;
     ignore:&lt;br /&gt;
       - dependency-name: &amp;quot;example-package&amp;quot;&lt;br /&gt;
         versions: [&amp;quot;1.x&amp;quot;, &amp;quot;2.x&amp;quot;]&lt;br /&gt;
     commit-message:&lt;br /&gt;
       prefix: &amp;quot;chore&amp;quot;&lt;br /&gt;
       include: &amp;quot;scope&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主要な設定項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ dependabot.ymlの主要な設定項目&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; || 設定ファイルのバージョンを指定する。&amp;lt;br&amp;gt;現在は &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; のみ有効である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;updates&amp;lt;/code&amp;gt; || 更新設定のリストを記述する。&amp;lt;br&amp;gt;複数のエコシステムを対象にする場合は複数のエントリを記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;package-ecosystem&amp;lt;/code&amp;gt; || 監視対象のパッケージエコシステムを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt; || パッケージマニフェストファイルが存在するディレクトリを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;schedule.interval&amp;lt;/code&amp;gt; || 更新チェックの頻度を指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;daily&amp;lt;/code&amp;gt; (毎日)、&amp;lt;code&amp;gt;weekly&amp;lt;/code&amp;gt; (週次)、&amp;lt;code&amp;gt;monthly&amp;lt;/code&amp;gt; (月次)から選択する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;allow&amp;lt;/code&amp;gt; || 更新を許可する依存関係の種類を制限する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; (直接依存)または &amp;lt;code&amp;gt;indirect&amp;lt;/code&amp;gt; (間接依存)を指定できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt; || 更新対象から除外するパッケージや特定バージョンを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;commit-message&amp;lt;/code&amp;gt; || DependabotがPRを作成する時のコミットメッセージのプレフィックスを設定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応パッケージエコシステム ====&lt;br /&gt;
下表に、Dependabotが対応しているパッケージエコシステムを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dependabot対応エコシステム一覧&lt;br /&gt;
! エコシステム !! package-ecosystemの値 !! マニフェストファイル&lt;br /&gt;
|-&lt;br /&gt;
| npm (Node.js) || &amp;lt;code&amp;gt;npm&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| pip (Python) || &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;requirements.txt&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;Pipfile&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Maven (Java) || &amp;lt;code&amp;gt;maven&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;pom.xml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gradle (Java/Kotlin) || &amp;lt;code&amp;gt;gradle&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;build.gradle&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Composer (PHP) || &amp;lt;code&amp;gt;composer&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;composer.json&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RubyGems (Ruby) || &amp;lt;code&amp;gt;bundler&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;Gemfile&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cargo (Rust) || &amp;lt;code&amp;gt;cargo&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Go modules || &amp;lt;code&amp;gt;gomod&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;go.mod&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NuGet (.NET) || &amp;lt;code&amp;gt;nuget&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;*.csproj&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;packages.config&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Pub (Dart/Flutter) || &amp;lt;code&amp;gt;pub&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;pubspec.yaml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Actions || &amp;lt;code&amp;gt;github-actions&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;.github/workflows/*.yml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Docker || &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;Dockerfile&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Terraform || &amp;lt;code&amp;gt;terraform&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;*.tf&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Auto-Triage Rules ====&lt;br /&gt;
Auto-Triage Rulesは、Dependabot Alertsを自動で仕分けするルールを定義する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
この機能により、特定の条件に合致するアラートを自動で却下・スヌーズ・承認することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織レベルまたはリポジトリレベルで設定でき、以下に示すような条件を組み合わせてルールを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 脆弱性の重大度 (Critical / High / Medium / Low)&lt;br /&gt;
* 脆弱性の種類 (CWEコード)&lt;br /&gt;
* 対象のスコープ (runtime / development)&lt;br /&gt;
* パッケージ名&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、開発依存関係 (devDependencies) の低・中程度の脆弱性を自動で却下するルールを設定することにより、アラートの過負荷を軽減できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Scanning ==&lt;br /&gt;
==== Code Scanningとは ====&lt;br /&gt;
Code Scanningは、コードに含まれるセキュリティ上の脆弱性やプログラミング上の問題を自動的に発見するGitHubの静的解析機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRの作成 / プッシュのタイミングでスキャンが実行されて、検出された問題はPR上にインラインコメントとして表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
また、全てのアラートは、リポジトリの[Security]タブでも管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトの解析エンジンとしてCodeQLが使用されるが、SARIFファイルを通じてサードパーティの静的解析ツールとも統合できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CodeQL ====&lt;br /&gt;
CodeQLは、GitHubが開発したセマンティックコード解析エンジンであり、コードをデータとして扱い、クエリによって脆弱性のパターンを検索する仕組みを持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CodeQLが対応している言語を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* C / C++&lt;br /&gt;
* C#&lt;br /&gt;
* Go&lt;br /&gt;
* Java / Kotlin&lt;br /&gt;
* JavaScript / TypeScript&lt;br /&gt;
* Python&lt;br /&gt;
* Ruby&lt;br /&gt;
* Swift&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CodeQLは、SQLインジェクション、クロスサイトスクリプティング、バッファオーバーフロー、安全でない暗号化処理等の脆弱性パターンを検出できる。&amp;lt;br&amp;gt;&lt;br /&gt;
ローカル環境での分析には、CodeQL CLIが利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セットアップ ====&lt;br /&gt;
Code Scanningのセットアップ方法は、デフォルトセットアップと詳細セットアップの2種類がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デフォルトセットアップ =====&lt;br /&gt;
デフォルトセットアップは、GitHubが自動的に解析設定を管理するセットアップ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Security]タブを開く。&lt;br /&gt;
# [Code scanning]セクションの[Set up]ボタンを押下する。&lt;br /&gt;
# [Default]を選択して、セットアップを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリで使用されている言語が自動検出されて、適切なCodeQLクエリスイートが適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
設定変更が不要な場合やすぐに利用を開始したい場合に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 詳細セットアップ =====&lt;br /&gt;
詳細セットアップは、GitHub Actionsのワークフローファイル (YAML) を自分でカスタマイズするセットアップ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Security]タブを開く。&lt;br /&gt;
# [Code scanning]セクションの[Set up]ボタンを押下する。&lt;br /&gt;
# [Advanced]を選択する。&lt;br /&gt;
# 生成された &amp;lt;u&amp;gt;.github/workflows/codeql.yml&amp;lt;/u&amp;gt; ファイルを編集して、コミットする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムクエリの追加、スキャン対象の絞り込み、スケジュールの変更等、詳細な制御が必要な場合に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.github/workflows/codeql.yml&amp;lt;/u&amp;gt; ファイルの基本的な構成例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: &amp;quot;CodeQL&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
   push:&lt;br /&gt;
     branches: [ &amp;quot;main&amp;quot; ]&lt;br /&gt;
   pull_request:&lt;br /&gt;
     branches: [ &amp;quot;main&amp;quot; ]&lt;br /&gt;
   schedule:&lt;br /&gt;
     - cron: &#039;0 0 * * 1&#039;&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
   analyze:&lt;br /&gt;
     name: Analyze&lt;br /&gt;
     runs-on: ubuntu-latest&lt;br /&gt;
     permissions:&lt;br /&gt;
       actions: read&lt;br /&gt;
       contents: read&lt;br /&gt;
       security-events: write&lt;br /&gt;
 &lt;br /&gt;
     strategy:&lt;br /&gt;
       matrix:&lt;br /&gt;
         language: [ &#039;javascript&#039;, &#039;python&#039; ]&lt;br /&gt;
 &lt;br /&gt;
     steps:&lt;br /&gt;
       - name: Checkout repository&lt;br /&gt;
         uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
       - name: Initialize CodeQL&lt;br /&gt;
         uses: github/codeql-action/init@v3&lt;br /&gt;
         with:&lt;br /&gt;
           languages: ${{ matrix.language }}&lt;br /&gt;
 &lt;br /&gt;
       - name: Perform CodeQL Analysis&lt;br /&gt;
         uses: github/codeql-action/analyze@v3&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Code Scanning Alerts ====&lt;br /&gt;
Code Scanningで検出されたアラートは、以下に示す方法で確認・管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PRでのインライン表示&lt;br /&gt;
*: PRの差分ビューに対して、問題のある行に直接コメントとしてアラートが表示される。&lt;br /&gt;
*: 開発者がコードレビュー時にセキュリティ問題を認識できる。&lt;br /&gt;
* Securityタブでの管理&lt;br /&gt;
*: リポジトリの[Security]タブから全てのCode Scanningアラートを一覧表示できる。&lt;br /&gt;
*: 言語、ルール、重大度、ステータスでフィルタリングして管理できる。&lt;br /&gt;
*: アラートを &amp;lt;u&amp;gt;Open&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Fixed&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Dismissed&amp;lt;/u&amp;gt; の状態で管理できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;アラートを却下 (Dismiss) する時は、却下理由 (false positive / won&#039;t fix / used in tests等) を記録することが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SARIFとの統合 ====&lt;br /&gt;
SARIF (Static Analysis Results Interchange Format) は、静的解析ツールの結果を表現するためのJSONベースの標準フォーマットである。&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Code Scanningは、SARIFファイルのインポートに対応しており、CodeQL以外の静的解析ツールの結果もGitHub上で一元管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SARIFファイルは、以下に示すGitHub Actionsアクションを使用してアップロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 - name: Upload SARIF file&lt;br /&gt;
   uses: github/codeql-action/upload-sarif@v3&lt;br /&gt;
   with:&lt;br /&gt;
     sarif_file: results.sarif&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、SARIFとの統合に対応した主なサードパーティツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ サードパーティ製静的解析ツールの例&lt;br /&gt;
|-&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| SonarQube / SonarCloud || オープンソースおよびプロプライエタリなコード品質・セキュリティ解析ツール&lt;br /&gt;
|-&lt;br /&gt;
| Fortify Static Code Analyzer || Micro Focusが提供するエンタープライズ向け静的解析ツール&lt;br /&gt;
|-&lt;br /&gt;
| Checkmarx || エンタープライズ向けアプリケーションセキュリティテストプラットフォーム&lt;br /&gt;
|-&lt;br /&gt;
| Semgrep || オープンソースの軽量静的解析ツール&amp;lt;br&amp;gt;カスタムルールを記述しやすい特徴を持つ。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Secret Scanning ==&lt;br /&gt;
==== Secret Scanningとは ====&lt;br /&gt;
&amp;lt;u&amp;gt;Secret Scanningは、APIキー、パスワード、トークン、証明書等の機密情報 (シークレット) がリポジトリに誤ってコミットされることを検出・防止する機能である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コードベース全体だけでなく、Git履歴全体も対象としてスキャンが実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 検出対象 ====&lt;br /&gt;
Secret Scanningが検出するシークレットのパターンは、以下に示す4種類に分類される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Secret Scanningの検出パターン種別&lt;br /&gt;
|-&lt;br /&gt;
! 種別 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Partner secrets || GitHubがパートナー企業と連携して定義したパターンである。&amp;lt;br&amp;gt;検出した場合、パートナー企業に対してシークレットの無効化を自動通知する。&amp;lt;br&amp;gt;AWS、Google、Azure、Slack、Stripe等、多数のサービスプロバイダーに対応している。&lt;br /&gt;
|-&lt;br /&gt;
| Non-provider patterns || 特定のサービスに紐付かない一般的なシークレットパターンである。&amp;lt;br&amp;gt;プライベートキー、汎用的なトークンパターン等が含まれる。&lt;br /&gt;
|-&lt;br /&gt;
| Custom patterns || ユーザが正規表現で定義した自社固有のシークレットパターンである。&amp;lt;br&amp;gt;リポジトリ、組織、エンタープライズの各レベルで設定できる。&lt;br /&gt;
|-&lt;br /&gt;
| AI-powered detection || 機械学習モデルを使用して、パターン定義のない未知のシークレットを検出する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スキャン対象 ====&lt;br /&gt;
下表に、Secret Scanningのスキャン対象範囲を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Secret Scanningのスキャン対象&lt;br /&gt;
|-&lt;br /&gt;
! 対象 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Gitコミット履歴全体 || リポジトリ作成時からの全コミット履歴をスキャンする。&amp;lt;br&amp;gt;過去に誤ってコミットされたシークレットも検出できる。&lt;br /&gt;
|-&lt;br /&gt;
| Issues || Issueのタイトル、本文、コメントをスキャンする。&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || PRのタイトル、本文、コメント、レビューコメントをスキャンする。&lt;br /&gt;
|-&lt;br /&gt;
| Discussions || Discussionsの投稿内容をスキャンする。&lt;br /&gt;
|-&lt;br /&gt;
| Wiki || リポジトリのWikiページをスキャンする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Push Protection ====&lt;br /&gt;
Push Protectionは、シークレットを含むコミットをプッシュ時の段階でブロックする機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
Push Protectionはコマンドライン (CLI)、GitHub WebUI、GitHub APIのいずれの方法でのプッシュに対しても機能する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シークレットが検出された場合、プッシュはブロックされて、開発者に警告が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
開発者はシークレットを除去してから再プッシュ、または、以下に示す理由を指定してブロックをバイパスすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
* これは偽陽性である (It&#039;s a false positive)&lt;br /&gt;
* 本番環境では使用しない (It&#039;s only used for tests)&lt;br /&gt;
* リスクを承知の上でプッシュする (I&#039;ll fix this later)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
バイパスが実行された場合、その操作はログに記録されて、アラートが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Push Protectionは、リポジトリ / ユーザ / 組織の各レベルで有効化・設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムパターン ====&lt;br /&gt;
カスタムパターンを使用することにより、自社固有のシークレット形式を正規表現で定義してスキャン対象に追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings] - [Advanced Security] - [Custom patterns]を開く。&lt;br /&gt;
# [New pattern]を選択する。&lt;br /&gt;
# パターン名、正規表現、サンプル文字列を入力する。&lt;br /&gt;
# [Save and dry run]でテストを実行して検出結果を確認する。&lt;br /&gt;
# 問題がなければパターンを公開する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムパターンはリポジトリレベル、組織レベル、エンタープライズレベルで設定でき、上位レベルで設定したパターンは下位レベルのリポジトリに継承される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドライラン (dry run) 機能を使用することにより、実際にアラートを生成する前にパターンの検出精度を検証できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Validity Checks ====&lt;br /&gt;
Validity Checksは、検出されたシークレットが実際に有効であるかどうかをサービスプロバイダーに問い合わせて確認する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
この機能により、既に無効化されたシークレットに関するアラートと今まさに有効なシークレットに関するアラートを区別して優先度を付けることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効性のステータスは、&amp;lt;u&amp;gt;Active&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Inactive&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Unknown&amp;lt;/u&amp;gt; の3種類で表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応しているシークレットの種類は、GitHubが定義したPartner secretsの範囲内に限られる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティポリシー ==&lt;br /&gt;
==== SECURITY.md ====&lt;br /&gt;
&amp;lt;u&amp;gt;SECURITY.md&amp;lt;/u&amp;gt; ファイルは、脆弱性の報告方法を説明するセキュリティポリシー文書である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このファイルはリポジトリのルートディレクトリ・&amp;lt;u&amp;gt;docs/&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;.github/&amp;lt;/u&amp;gt; のいずれかに配置することにより、リポジトリのSecurityタブに自動的に表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;SECURITY.md&amp;lt;/u&amp;gt; ファイルには、以下に示す情報を記載することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
* サポートしているバージョンの一覧&lt;br /&gt;
* 脆弱性の報告先 (メールアドレス・連絡フォーム等)&lt;br /&gt;
* 報告から対応完了までのプロセスと期待されるタイムライン&lt;br /&gt;
* 公開ポリシー (responsible disclosureポリシー)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティアドバイザリ ====&lt;br /&gt;
セキュリティアドバイザリは、リポジトリのセキュリティ上の問題を非公開で協議・修正して、修正後に公開するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリメンテナーは[Security]タブからドラフトアドバイザリを作成して、信頼できる協力者を招待して非公開の環境で脆弱性の詳細を共有できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
修正が完了した後、アドバイザリを公開することにより、CVE番号のリクエストやGitHub Advisory Databaseへの登録が行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プライベート脆弱性報告 ====&lt;br /&gt;
Private Vulnerability Reporting (プライベート脆弱性報告) は、セキュリティリサーチャーがリポジトリメンテナーに対して脆弱性を非公開で報告するための仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を有効化すると、リポジトリの[Security]タブに[Report a vulnerability]ボタンが表示され、誰でも非公開の脆弱性報告フォームからメンテナーに連絡できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
報告内容はメンテナーとリポートした人だけが閲覧でき、修正作業を非公開の環境で進めることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のレビュー ==&lt;br /&gt;
==== Dependency Graph ====&lt;br /&gt;
Dependency Graphは、リポジトリで使用している全ての依存関係を自動的に解析して可視化する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリのInsightsセクションから確認でき、直接依存関係だけでなく間接依存関係 (依存関係の依存関係) も表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dependency Graphは以下に示す機能の基盤となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
* Dependabot Alertsの脆弱性検出&lt;br /&gt;
* Dependabot Security UpdatesのPR作成&lt;br /&gt;
* Dependency ReviewのPRチェック&lt;br /&gt;
* SBOMの生成&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応しているマニフェストファイル形式は、npm、pip、Maven、Gradle、Composer、RubyGems、Cargo、Go modules、NuGet等、多数に及ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependency Review ====&lt;br /&gt;
Dependency Reviewは、PRのマージ前に依存関係の変更内容をチェックする機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRで追加 / 更新 / 削除される依存関係に対して、以下に示す情報を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 追加されるパッケージに既知の脆弱性が含まれていないか&lt;br /&gt;
* ライセンスが組織のポリシーに適合しているか&lt;br /&gt;
* 旧バージョンや非推奨パッケージでないか&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dependency Reviewを自動化するには、&amp;lt;code&amp;gt;actions/dependency-review-action&amp;lt;/code&amp;gt; を使用したGitHub Actionsワークフローを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Dependency Review&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
   pull_request:&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
   dependency-review:&lt;br /&gt;
     runs-on: ubuntu-latest&lt;br /&gt;
     steps:&lt;br /&gt;
       - name: Checkout repository&lt;br /&gt;
         uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
       - name: Dependency Review&lt;br /&gt;
         uses: actions/dependency-review-action@v4&lt;br /&gt;
         with:&lt;br /&gt;
           fail-on-severity: moderate&lt;br /&gt;
           deny-licenses: GPL-3.0, AGPL-3.0&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SBOM ====&lt;br /&gt;
SBOM (Software Bill of Materials、ソフトウェア部品表) は、ソフトウェアに含まれる全ての依存関係コンポーネントを一覧化した文書である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubはDependency Graphの情報をもとに、SPDX形式またはCycloneDX形式のSBOMファイルを生成・エクスポートする機能を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SBOMはコンプライアンス監査、サプライチェーンのリスク評価、インシデント対応において使用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリの[Insights] - [Dependency Graph]ページからSBOMをダウンロードできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ概要ダッシュボード ==&lt;br /&gt;
==== 組織レベル ====&lt;br /&gt;
組織のセキュリティ概要ダッシュボードは、組織内の全リポジトリのセキュリティ状況を一元的に把握するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ダッシュボードでは以下の情報を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
* トレンド分析&lt;br /&gt;
*: 組織全体のアラート数の時系列推移を可視化する。&lt;br /&gt;
*: 特定の期間にアラートが急増したリポジトリを特定できる。&lt;br /&gt;
* カバレッジ監視&lt;br /&gt;
*: 各セキュリティ機能 (Code Scanning / Secret Scanning / Dependabot Alerts) の有効化状況を確認できる。&lt;br /&gt;
*: 未設定のリポジトリを特定して対応できる。&lt;br /&gt;
* Push Protectionの有効性&lt;br /&gt;
*: 組織全体でのPush Protectionのブロック状況、バイパス状況を確認できる。&lt;br /&gt;
* CodeQL PR分析&lt;br /&gt;
*: PRに対してCode Scanningが実行されているリポジトリの割合を確認できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このダッシュボードは、GitHub Enterprise CloudまたはGitHub Advanced Security (GHAS) ライセンスが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリレベル ====&lt;br /&gt;
リポジトリレベルのセキュリティ情報は、各リポジトリのSecurityタブから確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Securityタブでは、以下に示す情報を管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Securityタブの機能一覧&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Overview || リポジトリのセキュリティ機能の有効化状況とアラートの概要を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Alerts || 脆弱な依存関係のアラート一覧を表示・管理する。&lt;br /&gt;
|-&lt;br /&gt;
| Code Scanning Alerts || Code Scanningで検出されたアラート一覧を表示・管理する。&lt;br /&gt;
|-&lt;br /&gt;
| Secret Scanning Alerts || 検出されたシークレットのアラート一覧を表示・管理する。&lt;br /&gt;
|-&lt;br /&gt;
| Security policy || &amp;lt;u&amp;gt;SECURITY.md&amp;lt;/u&amp;gt; ファイルの内容を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| Security advisories || リポジトリのセキュリティアドバイザリを管理する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub Advisory Database ==&lt;br /&gt;
==== CVEデータベース ====&lt;br /&gt;
GitHub Advisory Databaseは、GitHubが管理するオープンソースソフトウェアの脆弱性データベースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月時点で、レビュー済みのアドバイザリが27,583件、未レビューのアドバイザリが294,507件以上登録されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データベースのコンテンツはCC-BY-4.0ライセンスの下で公開されており、オープンソースプロジェクトからの貢献も受け付けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各アドバイザリには以下の情報が含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
* CVE識別子 (CVE番号)&lt;br /&gt;
* GHSA識別子 (GitHub独自の識別子)&lt;br /&gt;
* 影響を受けるパッケージ・バージョン範囲&lt;br /&gt;
* 脆弱性の種類 (CWEコード)&lt;br /&gt;
* 重大度スコア (CVSS)&lt;br /&gt;
* 修正バージョン&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応しているエコシステムは、npm、Maven、Composer、Go、pip、RubyGems、NuGet、Cargo、Pub、GitHubActions等、多岐にわたる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アドバイザリの検索 ====&lt;br /&gt;
GitHub Advisory Databaseは、[https://github.com/advisories GitHub Advisory Database]から検索できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す条件でアドバイザリを検索およびフィルタリングできる。&amp;lt;br&amp;gt;&lt;br /&gt;
* エコシステム (npm / Maven / pip 等)&lt;br /&gt;
* 重大度 (Critical / High / Medium / Low)&lt;br /&gt;
* CWEコード (脆弱性の種類)&lt;br /&gt;
* CVE番号による直接検索&lt;br /&gt;
* キーワード検索&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIを使用してアドバイザリを検索することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 特定パッケージの脆弱性を検索する&lt;br /&gt;
 gh api /advisories?affects=npm/lodash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、GraphQL APIを使用することにより、プログラムからアドバイザリデータを取得して、独自のセキュリティダッシュボードを構築することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>