obsidian-mcp-secure について
obsidian-mcp-secureは、Local REST APIプラグインを介してObsidianのノートを読み書きし、Claude DesktopなどのMCPクライアントと接続するサーバーです。専用のノート操作ツールを備え、パスと入力の検証、破壊的操作の確認、監査ログでアクセスを管理します。
主な機能
- 01ノートの読み取り、一覧表示、検索
- 02ノートの作成、編集、削除
- 03名前によるノート検索とタグ一覧
- 04ノート間のwikilinks追加
- 05パス制限と入力検証
- 06ツール呼び出しの監査ログ記録
活用シーン
- 01会話中にノートを検索して読む
- 02Obsidianノートの作成や更新
- 03削除確認を伴うノート整理
- 04タグ検索と関連ノートのリンク
MCP 対応
MCPサーバーとしてObsidianのノート操作ツールを対応クライアントに提供し、Local REST APIプラグイン経由でローカルのvaultにアクセスします。stdio接続に対応し、ツール呼び出しを監査ログに記録します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y obsidian-mcp-secureOBSIDIAN_API_KEYシークレットAPI Key generated by Obsidian's Local REST API plugin (Settings -> Local REST API -> API Key)OBSIDIAN_HOSTHost of the Local REST API (default: http://127.0.0.1)OBSIDIAN_PORTPort of the Local REST API (default: 27123)LOG_DIRDirectory for audit logs (default: ./logs)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
obsidian-mcp-secure
Obsidian の Vault を、MCP 対応のあらゆる AI クライアントで利用できる信頼性の高いデータソースに変える、安全な Model Context Protocol サーバーです。OWASP Top 10 の対策と完全な監査ログを備え、一から構築されています。
公式 Anthropic MCP Registry に io.github.dewtech-technologies/obsidian-mcp-secure として掲載されています。
🧭 位置づけ — Obsidian 用プラグインではありません
逆です。これは、Claude Desktop(またはあらゆる MCP クライアント)が Obsidian 内を安全に読み書きできるようにするブリッジです。AI アシスタントはいつもの場所にとどまり、Vault はアクセス可能な構造化された監査可能なデータソースになります。
┌─────────────────┐ MCP ┌──────────────────────┐ HTTP ┌────────────────────┐ FS ┌─────────────┐
│ │ stdio │ │ :27123 │ │ │ │
│ Claude Desktop │ ───────▶ │ obsidian-mcp-secure │ ───────▶ │ Local REST API │ ─────▶ │ Vault .md │
│ (AI client) │ │ (this package) │ │ (Obsidian plugin) │ │ │
└─────────────────┘ └──────────────────────┘ └────────────────────┘ └─────────────┘
| パイプライン上の役割 | コンポーネント |
|---|---|
| 会話する場所 | Claude Desktop(またはあらゆる MCP クライアント) |
| ブリッジ/アクセス制御 | obsidian-mcp-secure(このパッケージ) |
| Obsidian 内のデータゲートウェイ | Local REST API plugin(Adam Coddington 作) |
| ナレッジ | Vault 内の .md ファイル |
一言で言えば: Claude は頭脳、この MCP は腕、Obsidian は記憶です。
Obsidian と AI の連携手段をもう一つ追加する理由
Claude を Obsidian の中に取り込むプラグインはあります。これはその逆で、次の理由から作られています。
- アシスタントは Claude Desktop です — 汎用的な会話を行う場所です。ノートは、Web、GitHub、ファイルシステムなどと並び、Claude がアクセスできる多くのコンテキストの一つになります。
- セキュリティを最優先しています — 攻撃対象領域を意図的に限定し、シェルアクセスを許可せず、パストラバーサルをブロックし、Zod で入力を検証し、すべての呼び出しを監査します。
- ビルド不要、アカウント不要 —
npx obsidian-mcp-secureを実行するだけです。Windows、macOS、Linux で同じように動作します。 - 組み合わせて利用できます — この MCP を fetch、filesystem、git、GitHub などと組み合わせると、Claude は一つの会話の中で Vault と外部ソースを相互参照できます。
🛠️ 利用可能なツール
| ツール | 用途 |
|---|---|
read_note | パスを指定してノートを読み取ります |
list_notes | Vault またはサブディレクトリ内のファイル/フォルダーを一覧表示します |
create_note | 新しい .md ノートを作成します |
edit_note | 既存のノートを上書きします(以前の内容は監査ログに記録されます) |
delete_note | ノートを削除します — confirm: true が必要です(そうでない場合は Zod が拒否します) |
search_notes | Obsidian 独自の検索エンジンを使って全文検索/タグ検索を行います |
find_note_by_name | 名前の一部からノートを検索します — 大文字と小文字を区別せず、完全なパスも不要です |
list_tags | Vault 内のすべてのタグを使用回数とともに列挙します。名前または頻度で並べ替えられます |
create_backlinks | ノートの ## Relacionadas セクションに [[wikilinks]] を追加します — 明示的に記録され、監査可能です |
🔒 セキュリティ — OWASP Top 10
| 制御項目 | 実装 |
|---|---|
| A01 — アクセス制御の不備 | パストラバーサルをブロック(../、..\\、エンコードされた表記);.md 拡張子を必須化 |
| A02 — 暗号化の失敗 | API キーは .env またはプロセス環境変数から読み込みます。ハードコードせず、ログにも記録しません |
| A03 — インジェクション | すべての入力を Zod スキーマで検証します。eval、exec、シェルは使用しません |
| A04 — 安全でない設計 | ノートの最大サイズは 512 KB、検索結果の上限は 50 件です。破壊的な操作には明示的な confirm: true が必要です |
| A05 — セキュリティ設定の不備 | ホストとして受け付けるのは 127.0.0.1 / localhost のみです |
| A09 — ログ記録とモニタリング | サイズに基づくローテーション(5 MB / 10 ファイル)を備えた winston による完全な監査ログ |
すべてのツール呼び出しで、action、params(サニタイズ済み)、success、error、timestamp を含む監査ログが出力されます。
⚡ インストール
前提条件
- Vault を開いた状態の Obsidian Desktop
- Local REST API plugin(Adam Coddington 作)。コミュニティプラグインからインストールして有効にし、次の操作を行います。
- **「Enable Non-encrypted (HTTP) Server」**をオンにします(自己署名証明書を使う HTTPS より簡単です)
- プラグインの設定画面に表示される API Key をコピーします
- Node.js 18+
- Claude Desktop(またはほかの MCP 対応クライアント)
Claude Desktop の設定
Windows では %APPDATA%\Claude\claude_desktop_config.json を、macOS では ~/Library/Application Support/Claude/claude_desktop_config.json を開き、次を追加します。
{
"mcpServers": {
"obsidian-secure": {
"command": "npx",
"args": ["-y", "obsidian-mcp-secure"],
"env": {
"OBSIDIAN_API_KEY": "your-api-key-from-the-plugin",
"OBSIDIAN_HOST": "http://127.0.0.1",
"OBSIDIAN_PORT": "27123",
"LOG_DIR": "C:/path/to/your/logs"
}
}
}
}
Windows のヒント:
npxがエラーを出さずに失敗する場合は、"command": "npx"を"command": "npx.cmd"に変更してください。一部の Claude Desktop ビルドでは、PATH 上のnpxを直接解決できません。
Claude Desktop を再起動すると(トレイ → Quit を選択してから再度開きます)、9 個のツールが obsidian-secure の下に表示されます。
🤝 おすすめの併用ツール
MCP の真価は組み合わせて使えることにあります。「ノートを読む → URL を取得する → 自分の適用方法が正しいか教えてもらう」というワークフローを実現するには、この MCP と一緒に公式の fetch MCP を追加してください。
{
"mcpServers": {
"obsidian-secure": { "...": "as above" },
"fetch": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"]
}
}
}
これで Claude は、1 つの会話の中で Vault とリアルタイムのウェブの両方を利用できます。
💬 プロンプトの例
obsidian-secure と fetch を有効にした状態で、次のように依頼できます。
「ノート
Projeto API Atendimento.mdを読んでから、https://developers.facebook.com/docs/whatsapp を取得し、自分の実装が最新のベストプラクティスに沿っているか教えてください。」
「Vault からタグ
#ideiaを検索し、最も頻繁に登場する 3 つのアイデアを要約してください。その後、要約を含むIdeias recorrentes.mdという新しいノートを作成してください。」
「
Atomic Habits - Resumo.mdを読んで、https://jamesclear.com/atomic-habits を取得し、自分のノートが原文と異なる部分を指摘してください。」
Claude がツール呼び出しを自動的に調整するため、手動で連鎖させる必要はありません。
🧩 Obsidian 内プラグインとの比較
ワークフローが Obsidian のサイドバー内で完結する場合は、obsidian-claude-code のようなプラグインが適しています。この MCP は異なる使い方を想定しています。
| 項目 | obsidian-claude-code(Obsidian 内) | obsidian-mcp-secure(本ツール) |
|---|---|---|
| AI の利用場所 | Obsidian 内のサイドバー | Claude Desktop(または任意の MCP クライアント) |
| セットアップ | git clone + bun build | npx obsidian-mcp-secure |
| ツール | 読み取り/書き込み/編集 + Bash + Grep + Glob + WebFetch | 用途に特化した、Zod で検証される 9 個のツール |
| セキュリティ対策 | 開発マシンのシェルに完全アクセス | 厳格な許可リスト、監査済み、OWASP Top 10 対応 |
| 配布方法 | 手動でクローン。Bun が必要 | npm + 公式 MCP Registry |
| ほかのソースとの組み合わせ | 独自のサンドボックス内で利用 | MCP 対応クライアントなら fetch、GitHub、filesystem などと組み合わせ可能 |
| 最適なユーザー | Obsidian を中心に使う開発者 | Claude Desktop を主な作業環境とするプロフェッショナル |
どちらも有効な選択肢です。それぞれ異なるニーズに適しています。
🔧 環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
OBSIDIAN_API_KEY | ✅ | — | Local REST API プラグインの API キー |
OBSIDIAN_HOST | http://127.0.0.1 | ホスト(127.0.0.1 と localhost のみ使用できます) | |
OBSIDIAN_PORT | 27123 | プラグインの HTTP サーバーのポート | |
LOG_DIR | ./logs | 監査ログファイルのディレクトリ |
🗺️ ロードマップ
✅ v1.2.1 でリリース済み
- バグ修正:
find_note_by_nameがフルパス(フォルダー+ファイル名)を検索 - バグ修正:
list_tagsがすべての API レスポンス形式(オブジェクト、文字列の配列、tagCount/taggedFilesCountを含むオブジェクトの配列)を正規化
✅ v1.2.0 でリリース済み
- Claude Desktop にワンクリックでインストールできる DXT パッケージ(
npm run build:dxt)
✅ v1.1.0 でリリース済み
-
find_note_by_name— Vault 全体を対象とした、部分一致・大文字小文字を区別しない名前検索 -
create_backlinks—[[wikilinks]]で関連するノートを接続(明示的で監査可能) -
list_tags— Vault 内のすべてのタグを使用回数とともに一覧表示 - Vitest によるユニットテストスイート(70 件のテスト — utils、ハンドラー、HTTP クライアント)
- すべての PR で実行される CI パイプライン:テスト+カバレッジ+
npm audit+静的セキュリティ分析
🔜 次の予定
- Smithery への掲載
- 共有/複数ユーザー環境向けの読み取り専用モードフラグ
アイデアや PR を歓迎します。CONTRIBUTING.md をご覧ください。
📜 ライセンス
MIT — LICENSE をご覧ください。
🙏 クレジット
- Anthropic による Model Context Protocol
- Adam Coddington による Local REST API プラグイン — これを実現する基盤です
- Dewtech で Wanderson Leandro が開発
セキュリティ上の問題について:SECURITY.md で報告手順をご確認ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。