1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スマホのClaudeでObsidianを遠隔操作しよう!VPSにobsidian-mcp(Remote MCP)を立てて“ポケット秘書化"

1
Last updated at Posted at 2026-02-15

はじめに 📱

外出先からでも、優雅にObsidianを扱えたら素敵だと思いませんか。
本記事では、スマホのClaudeからObsidianを遠隔操作する方法を整理します。
スマホのClaudeから、Obsidian Vaultを遠隔で読み書き・検索できるようにします。

この記事で使うコアOSS🙇‍♀️

この仕組みのコア技術は、eddmannさんが公開されている obsidian-mcp です。この記事はこのMCPサーバーを利用し、スマホClaudeからObsidianを扱えるところまで持っていく手順になります。

できること✨

  • 🔎 Vault全体を検索(あいまい検索/完全一致)

  • 📖 ノートを読む(単体/複数まとめ読み)

  • ✍️ ノートを書く(新規作成・全文更新・末尾追記・差分パッチ適用)

  • 🧩 ピンポイント編集(指定箇所の挿入/置換)

  • 🗂️ ファイル一覧(Vault全体 / 特定フォルダ)

  • 🧹 ノート整理(移動/リネーム/削除、フォルダ作成)

  • 🏷️ タグ運用(追加/削除/一括リネーム/管理)

  • 🗓️ 今日のジャーナルに自動でログを残す(任意)

※以後、本文中の「obsidian-mcp」は基本このリポジトリを指します。

こんなことが可能です

  • 検索: 「Claude、Vaultから MCP を含むノートを探して上位3件」

  • 読む: 「path/to/note.md を要約して」

  • 書く: 「Daily/2026-02-11.md に追記して」

前提

  • Obsidian Sync(任意):複数端末(PC/スマホ)でVaultを同期するため。

    • ここは他の方法(Onedrive)でも可能です

    • 目安:$4/月(年払い) or $5/月(月払い)

  • Claude Pro(必須):Connectors(Remote MCP)を使うため。

    • 目安:$20/月(Web課金)
  • ドメイン(必須):HTTPS化(Let’s Encrypt)と mcp.example.com のようなサブドメイン運用のため。自分はお名前.comで管理してます。

    • 目安:年1,000〜3,000円くらい
  • VPS(必須):obsidian-mcp を常時稼働させるため。

    • 例:さくらVPS
      • ubuntu(24.04)/1Gプラン
      • 料金:935円/月

全て2026/02月時点の内容です

全体の設計概要

全体設計図

Gemini_Generated_Image_vvlh6bvvlh6bvvlh.png

この手順でやること

  • VPSを用意してUbuntuを初期セットアップ

  • Obsidian VaultをGitリポジトリ化してGitHub Private Repoへ

  • VPSにobsidian-mcpを npm でデプロイ

  • Nginx + Let’s EncryptでHTTPS化

  • Claude(Connectors)にRemote MCPとして登録

検証環境(例)


目次

  • Phase 1: Obsidian VaultをGitリポジトリ化

  • Phase 1.5: Obsidian Gitプラグインで同期を楽にする

  • Phase 2: GitHub Personal Access Token(PAT)作成

  • Phase 3: VPSセットアップ(Ubuntu)

  • Phase 4: ドメイン/DNS(mcpサブドメイン)

  • Phase 5: Nginx + HTTPS(certbot)

  • Phase 6: obsidian-mcp をnpmでデプロイ

  • Phase 7: 常駐化(pm2)

  • Phase 8: Claude(Connectors)にRemote MCPとして登録


Phase 1: Obsidian VaultをGitリポジトリ化

やりたいこと:Obsidianのノート群(Vault)を Gitでバージョン管理できる状態にします。これが後半で「VPSから読み書きする」ための土台になります。

まずは手元(PC)のObsidian VaultをGitリポジトリ化します。  

この時作成するリポジトリは絶対にPrivateにしておいてください。

1-1. VaultでGit init

目的:PC上のVaultフォルダをGit管理下にPrivateで置きます。これは後述のObsidian-mcpのためです

#PC上のvaultが存在するフォルダに移動
cd /path/to/your-obsidian-vault

git init

#ignore設定
#パスワードとかあるページは絶対にignoreしてください
cat << 'EOF' > .gitignore
.obsidian/workspace*
.obsidian/hotkeys.json
.smart-env/
.trash/
.DS_Store
Thumbs.db
EOF

git add .
git commit -m "Initial vault commit"

1-2. GitHubにPrivate Repoを作る

目的:Vaultの置き場(リモート)を用意します。外部に出るので Private必須です。

  • GitHubで新規リポジトリ作成

  • Visibilityは Private(重要)

1-3. remoteを追加してpush

目的:ローカルのVaultをGitHubへ送って、以後の同期の基準点を作ります。

git remote add origin https://github.com/YOUR_USERNAME/obsidian-vault.git
git branch -M main
git push -u origin main

Phase 1.5: Obsidian側の同期を楽にする(obsidian-git プラグイン)

やりたいこと:PC上のObsidianアプリ内から Pull/Commit/Push を回せるようにして、日常運用をラクにします。

ここで obsidian-git プラグインを使います

  • 役割:Desktop/モバイルのObsidianから、Vaultを Pull/Commit/Push してGitHubと同期する

  • 嬉しい点:CLIでいちいちgit叩かなくても、Obsidianの中で自動的にGitと連携してくれます

参考リンク
「Obsidian Git」を導入してみた。

1.5-1. インストール

目的:Obsidian上でGit操作できる“手足”を入れます。

  • Obsidian → Settings → Community plugins → Browse

  • Obsidian Git を検索してインストール

1.5-2. 最低限の設定(おすすめ)

目的:同期を自動化しつつ、競合地獄に入りにくい強さに調整します。

  • Auto pull interval(例:5〜10分)

  • Auto backup(commit)interval(例:10〜30分)

  • On startup: pull / On file change: (好み)

1.5-3. コンフリクト対応

コンフリクトの対応については以下が詳しいです。
参考:Obsidian Gitのコンフリクトについて


Phase 2: GitHub Personal Access Token(PAT)作成

やりたいこと:VPS上のobsidian-mcpがGitHubのVaultを操作できるように、PATを用意します。
後で必要になるのでTokenは控えておいてください。

2-1. PAT作成ページを開く

目的:GitHub上でトークン発行ページへ。

  1. GitHub → Settings → Developer settings → Personal access tokens

2-2. Token (classic) を作成

目的:obsidian-mcp がGitHubへアクセスするためのトークンを発行します。

  1. Token (classic) を作成

2-3. Scopeを最小にする(repoのみ)

目的:漏洩時の被害を小さくします。基本は repo のみ

  1. Scopeは repo のみ

image.png

漏洩に注意。絶対に公開しない。


Phase 3: VPSセットアップ(Ubuntu)

やりたいこと:obsidian-mcpを置く“常時稼働の箱”を作ります。ここがスマホClaudeの呼び出し先になります。

3-1. VPSを用意

目的:サーバーを確保します。

  • 例:Ubuntu 24.04 / 1GB以上

  • 自分はさくらインターネットのVPSを使いました

こちらから申請可能:さくらVPS

3-2. SSH鍵ログイン

目的:パスワードログインを避けて、安全にサーバーへ入れるようにします。

ssh-keygen -t ed25519
ssh-copy-id ubuntu@YOUR_VPS_IP

3-3. Firewall(ufw)

目的:必要なポート(22/80/443)だけ開けて、他は閉じます。

ubuntu@:sudo ufw allow 22
ubuntu@sudo ufw allow 3000
ubuntu@sudo ufw allow 80
ubuntu@sudo ufw allow 443
ubuntu@sudo ufw enable
ubuntu@sudo ufw status

次のようにALLOWが出ていればOK

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
3000                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
3000 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

3-4. パケットフィルターも確認する

目的:ufwを開けても、VPS側のパケットフィルターで22/3000/80/443が閉じていると到達しません。さくらVPSの場合、コントロールパネル側で 22/3000/HTTP(80) / HTTPS(443) を許可しておきます。

image.png


Phase 4: ドメイン/DNS(mcpサブドメイン)

やりたいこと:mcp.example.com みたいなURLでVPSに到達できるようにします。HTTPS化やConnector登録が楽になります。
自分は お名前.com でドメイン管理しています。
ここではドメインを持ってること前提です。

4-1. DNSにAレコードを追加(お名前.com想定)

目的:サブドメインをVPSのIPへ向けます。

お名前.com の場合だいたいこの導線です:

  • お名前.com(Navi)→ DNSDNSレコード設定 → 対象ドメインを選択 → DNSレコード設定を利用する

Aレコード例:

  • 種別:A

  • ホスト:mcp(= mcp.example.com

  • 値:VPSのIP(例:xxx.xxx.xxx.xxx

  • TTL:デフォルトのままでOK

4-2. 反映確認

目的:nslookup が狙いのIPを返すのを確認します。

補足:反映は数分で終わることもありますが、DNS事業者によっては時間がかかることもあります。IPが一致するまで待つのが正解です。

nslookup mcp.example.com

ここでVPSのIPアドレスが返ってきたら成功です。


Phase 5: Nginx + HTTPS(certbot)

やりたいこと:通信をHTTPSにして、Claudeから安全に接続できる入口(リバプロ)を作ります。

5-1. インストール

目的:リバプロ(Nginx)と証明書発行(certbot)の道具を入れます。

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

5-2. Nginx(まずHTTPでリバプロ)

目的:外からのアクセスを、obsidian-mcpのポートへ中継します(後でHTTPS化)。

sudo nano /etc/nginx/sites-available/obsidian-mcp
server {
  listen 80;
  server_name mcp.example.com;

  location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}
sudo ln -s /etc/nginx/sites-available/obsidian-mcp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

5-3. SSL証明書(Let’s Encrypt)

目的:無料の証明書でHTTPSを有効化し、ブラウザ/Claudeに信頼される接続にします。

sudo certbot --nginx -d mcp.example.com

5-4. HTTPS疎通チェック(healthだけ見ればOK)

目的:Nginx / TLS / obsidian-mcp が通っているか、確認します。

curl -i https://mcp.example.com/health
  • 200 OK が返れば成功です

Phase 6: obsidian-mcp をnpmでデプロイ

やりたいこと:VPSでobsidian-mcpを動かし、GitHubのVaultを読み書きできるAPI(MCP)を公開します。

注意:自分はDockerで転ぶことがあったので、ここでは npm を使います。

6-1. clone & install

目的:サーバー本体(obsidian-mcp)を持ってきて、依存関係を入れます。

cd ~
git clone https://github.com/eddmann/obsidian-mcp.git obsidian-mcp-src
cd obsidian-mcp-src
npm install

6-2. .env を作る

目的:Vaultの場所・GitHub鍵・OAuthなど、動作に必要な設定を全部ここに集めます。

cp .env.example .env

.envには以下の値を入力します

# Git Repository
# Phase1のリポジトリ
VAULT_REPO=https://github.com/YOUR_USERNAME/obsidian-vault.git
VAULT_BRANCH=main
# Phase2のPAT
GIT_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

# OAuth(openssl rand -hex 32 などでこちら側で生成したトークンを設定
# この値はあとのClaudeからのMCP接続時に使用するので控えておく
OAUTH_CLIENT_ID=obsidian-mcp-client
OAUTH_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PERSONAL_AUTH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Base URL(HTTPS)
# ドメインを設定しておきます
BASE_URL=https://mcp.example.com

6-3. Claude登録チェック対策:GET /mcp を200で返す

基本はobsidian-mcpは6-2までのセットアップで終了なのですが、
自分の環境ではそのままではobsidian-mcpはclaudeからの接続時にエラーとなってしまいました。

原因はデフォルトだと405で登録で転ぶことでした。
したがって、GETだけ200を返すためにコードに少し手を入れます(POSTは従来どおりMCP本体)。

編集するファイル

nano packages/app/src/server/shared/mcp-routes.ts

編集前(問題のあるコード):

app.get('/mcp', (_req, res) => {
  res.status(405).json({
    error: 'method_not_allowed',
    error_description: 'SSE streaming is not supported in Lambda',
  });
});

編集後(修正版):

app.get('/mcp', (_req, res) => {
  res.status(200).json({
    status: 'ok',
    message: 'MCP endpoint is POST /mcp',
    auth: 'Bearer token required',
  });
});
  • 200 OK になればOKです ✅

6-4. 起動(まずはHTTP)

目的:まずローカルでプロセスが生きていることを確認してから、外部公開へ進みます。

npm run dev:http

Phase 7: 常駐化(pm2)

やりたいこと:サーバー再起動やプロセス落ちでも自動復帰するようにして、運用を安定させます。

7-1. pm2を入れる

目的:プロセスマネージャを導入します。

sudo npm i -g pm2
pm2 -v

7-2. obsidian-mcpをpm2で起動

目的:落ちたら再起動、ログもまとめて見られるようにします。

cd ~/obsidian-mcp-src
pm2 start "npm run dev:http" --name obsidian-mcp
pm2 status
pm2 logs obsidian-mcp

7-3. OS再起動でも自動復帰(pm2 startup)

目的:サーバー再起動後にもpm2がプロセスを復元します。

pm2 startup
# 表示されたコマンド(sudo ...)をそのまま実行
pm2 save

7-4. 停止/再起動/削除(運用コマンド)

目的:日常運用で使う最低限のコマンドを置いておきます。

pm2 restart obsidian-mcp
pm2 stop obsidian-mcp
pm2 delete obsidian-mcp
pm2 save

Phase 8: Claude(Connectors)にRemote MCPとして登録

やりたいこと:Claudeに「このMCPサーバーを使っていいよ」と教えて、スマホからツールとして呼び出せるようにします。

8-1. Connectors画面を開く

目的:Remote MCP(カスタムコネクタ)を追加する入口に行きます。

  1. claude.ai → Settings → Connectors

image.png

8-2. コネクタ接続

目的:Claudeがあなたのサーバーに接続できるかを、最初に通します。ここが通らないと次画面に進めません。

入力する項目(例):

  • 名前:(任意)

  • リモートMCPサーバーURL:https://mcp.example.com/mcp

  • Client ID:obsidian-mcp-client

  • OAUTH_CLIENT_SECRET:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ここで入れる Client ID / OAUTH_CLIENT_SECRET は、Phase 6 の .envOAUTH_CLIENT_ID / OAUTH_CLIENT_SECRET)と一致している必要があります。

image.png

8-4. Personal Auth Token設定

8-3が成功すると以下の画面に遷移するので、「Allow Acess」をクリック
image.png

その後さらに
画面遷移後に出てくる Personal Auth Token の入力欄に、Phase 6 の .env と同じ値を入れて接続します。

使ってみる(最小例)

  • 検索: 「Vaultから MCP を含むノートを探して上位3件」

  • 読む: 「path/to/note.md を要約して」

  • 書く: 「Daily/2026-02-11.md に追記して」

以上です。お疲れ様でした。
これで外出先からでも、あなたのVaultにClaudeが触れられます。
ぜひ優雅なClaude/Obsidianライフを!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?