概要
インストール
ツールリスト
コンテンツ詳細
代替品
Obsidian MCPサーバーとは?
これはModel Context Protocol (MCP)サーバーで、ClaudeなどのAIアシスタントがあなたのObsidianノートライブラリと相互作用できるようにします。ObsidianのLocal REST APIプラグインを通じて、ノートの読み取り、作成、検索、管理機能を提供します。Obsidian MCPサーバーの使い方は?
まずObsidianでLocal REST APIプラグインをインストールして有効にし、APIキーを取得します。次に、あなたのAIツール(例:Claude Desktop)を設定し、MCPサーバーをこのサービスに向けます。起動後、自然言語でノートライブラリと対話できます。適用シナリオ
AIアシスタントにノート内容を処理してもらう必要があるユーザーに適しています。例えば、ノートの迅速な検索、新しいノートの作成、タグの管理、リンク関係の分析などです。知識管理、プロジェクト計画、日常の記録に特に適しています。主な機能
利点と制限
使い方
使用例
よくある質問
関連リソース
インストール
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": ["obsidian-mcp"],
"env": {
"OBSIDIAN_REST_API_KEY": "your-api-key-here"
}
}
}
}
{
"mcpServers": {
"obsidian": {
"command": "/path/to/python",
"args": ["-m", "src.server"],
"cwd": "/path/to/obsidian-mcp",
"env": {
"PYTHONPATH": "/path/to/obsidian-mcp",
"OBSIDIAN_REST_API_KEY": "your-api-key-here"
}
}
}
}
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": ["obsidian-mcp"],
"env": {
"OBSIDIAN_REST_API_KEY": "your-api-key-here",
"OBSIDIAN_API_URL": "https://localhost:27124"
}
}
}
}
🚀 Obsidian MCP Server
Model Context Protocol (MCP)サーバーです。ClaudeなどのAIアシスタントがObsidianのボールトとやり取りできるようにします。このサーバーは、Local REST APIプラグインを通じて、Obsidian内のノートの読み取り、作成、検索、管理を行うツールを提供します。
✨ 主な機能
- 📖 ノートの読み書き - 自動上書き保護付きで、Obsidianのボールトに完全にアクセスできます。
- 🔍 スマート検索 - 内容、タグ、または変更日付でノートを検索できます。
- 📁 ボールトのブラウズ - ディレクトリごとにノートとフォルダを一覧表示し、移動できます。
- 🏷️ タグ管理 - タグの追加、削除、整理ができます(フロントマターとインラインタグの両方をサポート)。
- 🔗 リンク管理 - 逆リンクの検索、外部リンクの分析、壊れたリンクの特定ができます。
- 📊 ノートの洞察 - 単語数やリンク分析などの統計情報を取得できます。
- 🎯 AI最適化 - 明確なエラーメッセージとスマートなデフォルト設定で、AIとのやり取りを改善します。
- 🔒 セキュア - APIキー認証とローカル専用接続で保護されています。
- ⚡ パフォーマンス最適化 - 大規模なボールトでも並列操作とバッチ処理が可能です。
- 🚀 一括操作 - フォルダ階層の作成や、フォルダ全体とその内容の移動ができます。
📦 インストール
クイックインストール
-
Obsidianのインストールと設定
- ObsidianでLocal REST APIプラグインをインストールします。
- 設定 > コミュニティプラグインでプラグインを有効にします。
- 設定 > Local REST APIに移動します。
- APIキーをコピーします(2ステップで必要になります)。
-
AIツールの設定
Claude Desktop
Claude Desktopの設定ファイルを編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "obsidian": { "command": "uvx", "args": ["obsidian-mcp"], "env": { "OBSIDIAN_REST_API_KEY": "your-api-key-here" } } } }
Cursor IDE
Cursorの設定に追加します。
- プロジェクト固有: プロジェクトディレクトリ内の
.cursor/mcp.json
- グローバル: ホームディレクトリ内の
~/.cursor/mcp.json
{ "mcpServers": { "obsidian": { "command": "uvx", "args": ["obsidian-mcp"], "env": { "OBSIDIAN_REST_API_KEY": "your-api-key-here" } } } }
その後、設定 → Cursor設定 → MCPを有効にします。
Windsurf IDE
Windsurfの設定ファイルを編集します。
- 場所:
~/.codeium/windsurf/mcp_config.json
{ "mcpServers": { "obsidian": { "command": "uvx", "args": ["obsidian-mcp"], "env": { "OBSIDIAN_REST_API_KEY": "your-api-key-here" } } } }
その後、Windsurf設定 → 高度な設定 → カスケード → サーバーの追加 → リフレッシュします。
your-api-key-here
をObsidianからコピーしたAPIキーに置き換えます。⚠️ 重要提示
HTTPSまたはカスタムポートを使用している場合、
"OBSIDIAN_API_URL": "https://localhost:27124"
をenvセクションに追加してください。詳細は高度な設定を参照してください。 - macOS:
-
AIツールを再起動して、新しい設定を読み込みます。
以上で完了です!これでAIツールからObsidianのボールトにアクセスできるようになります。
💡 使用建议
これは
uvx
を使用しており、自動的にサーバーをダウンロードし、分離された環境で実行します。ほとんどのユーザーは他に何もインストールする必要はありません。uv
がインストールされていない場合は、pipx install obsidian-mcp
を使用し、設定内のコマンドを"obsidian-mcp"
に変更することもできます。
試してみる
以下は、始めるための例のプロンプトです。
- "今週変更したすべてのノートを表示して"
- "今日の会議の議題を含む新しい日次ノートを作成して"
- "プロジェクト計画に関するすべてのノートを検索して"
- "Ideas/startup.mdノートを読み取って"
開発用インストール
-
リポジトリをクローン
git clone https://github.com/natestrong/obsidian-mcp cd obsidian-mcp
-
Python環境をセットアップ
# pyenvを使用する場合(推奨) pyenv virtualenv 3.12.9 obsidian-mcp pyenv activate obsidian-mcp # またはvenvを使用する場合 python -m venv venv source venv/bin/activate # Windowsの場合はvenv\Scripts\activate
-
依存関係をインストール
pip install -r requirements.txt
-
Obsidian Local REST APIをセットアップ
- ObsidianでLocal REST APIプラグインをインストールします。
- Obsidianの設定でプラグインを有効にします。
- プラグインの設定からAPIキーをコピーします。
- ポート番号をメモします(デフォルト: HTTPは27123、HTTPSは27124)。
-
環境変数を設定
export OBSIDIAN_REST_API_KEY="your-api-key-here" # export OBSIDIAN_API_URL="https://localhost:27124" # オプション: HTTPSを使用する場合のみ
-
Claude Desktopに追加(開発用)
Claude Desktopの設定ファイルを編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "obsidian": { "command": "/path/to/python", "args": ["-m", "src.server"], "cwd": "/path/to/obsidian-mcp", "env": { "PYTHONPATH": "/path/to/obsidian-mcp", "OBSIDIAN_REST_API_KEY": "your-api-key-here" } } } }
- macOS:
📚 詳細ドキュメント
プロジェクト構造
obsidian-mcp/
├── src/
│ ├── server.py # 豊富なパラメータスキーマを持つメインエントリポイント
│ ├── tools/ # ツールの実装
│ │ ├── note_management.py # CRUD操作
│ │ ├── search_discovery.py # 検索とナビゲーション
│ │ ├── organization.py # タグ、移動、メタデータ
│ │ └── link_management.py # 逆リンク、外部リンク、壊れたリンク
│ ├── models/ # 検証用のPydanticモデル
│ │ └── obsidian.py # ノート、検索結果、ボールトアイテムのモデル
│ ├── utils/ # 共有ユーティリティ
│ │ ├── obsidian_api.py # REST APIクライアントラッパー
│ │ ├── validators.py # パス検証、サニタイズ
│ │ └── validation.py # 包括的なパラメータ検証
│ └── constants.py # APIエンドポイント、デフォルト、拡張エラーメッセージ
├── tests/
│ ├── run_tests.py # スマートテストランナー
│ ├── test_unit.py # モックを使用した単体テスト
│ ├── test_integration.py # 統合テスト
│ ├── test_live.py # 実際のObsidianを使用したライブテスト
│ ├── test_comprehensive.py # 完全なワークフロー検証
│ └── test_data_validation.py # 戻り値のテスト
├── docs/ # 追加のドキュメント
├── requirements.txt # Pythonの依存関係
├── CLAUDE.md # Claude Codeの指示書
└── README.md
利用可能なツール
ノート管理
read_note
特定のノートの内容とメタデータを読み取ります。
パラメータ:
path
: ノートのパス(例: "Daily/2024-01-15.md")
戻り値:
{
"path": "Daily/2024-01-15.md",
"content": "# Daily Note\n\nContent here...",
"metadata": {
"tags": ["daily", "journal"],
"aliases": [],
"frontmatter": {}
}
}
create_note
新しいノートを作成するか、既存のノートを更新します。
パラメータ:
path
: ノートを作成するパスcontent
: ノートのMarkdown内容(整理のためにタグを追加することを検討してください)overwrite
(デフォルト:false
): 既存のノートを上書きするかどうか
ベストプラクティス:
- ノートを作成する際に関連するタグを追加して、整理を維持します。
list_tags
を使用して既存のタグを確認し、一貫性を維持します。- タグはインラインハッシュタグ (
#tag
) またはフロントマターに追加できます。
update_note
既存のノートの内容を更新します。
⚠️ 重要提示 デフォルトでは、このツールはノートの内容全体を置き換えます。既存の内容を保持する必要がある場合は、常に最初にノートを読み取ってください。
パラメータ:
path
: 更新するノートのパスcontent
: 新しいMarkdown内容(appendを使用しない限り、既存の内容を置き換えます)create_if_not_exists
(デフォルト:false
): 存在しない場合は作成するmerge_strategy
(デフォルト:"replace"
): 内容を処理する方法"replace"
: ノートの内容全体を上書きします(デフォルト)"append"
: 既存の内容の末尾に新しい内容を追加します
安全な更新パターン:
- 内容を保持するために、常に最初に読み取ります。
- 必要に応じて内容を変更します。
- 完全な新しい内容で更新します。
- または、appendモードを使用して内容を末尾に追加します。
delete_note
ボールトからノートを削除します。
パラメータ:
path
: 削除するノートのパス
検索と探索
search_notes
特定のテキストまたはタグを含むノートを検索します。
パラメータ:
query
: 検索クエリ(Obsidianの検索構文をサポート)context_length
(デフォルト:100
): 一致箇所の周りに表示する文字数
検索構文:
- テキスト検索:
"machine learning"
- タグ検索:
tag:project
またはtag:#project
- パス検索:
path:Daily/
- 組み合わせ:
tag:urgent TODO
search_by_date
作成日または変更日でノートを検索します。
パラメータ:
date_type
(デフォルト:"modified"
): "created" または "modified"days_ago
(デフォルト:7
): 遡る日数operator
(デフォルト:"within"
): "within"(過去N日以内)または "exactly"(正確にN日前)
戻り値:
{
"query": "Notes modified within last 7 days",
"count": 15,
"results": [
{
"path": "Daily/2024-01-15.md",
"date": "2024-01-15T10:30:00",
"days_ago": 1
}
]
}
使用例:
- "今日変更したすべてのノートを表示して" →
search_by_date("modified", 0, "within")
- "今週変更したすべてのノートを表示して" →
search_by_date("modified", 7, "within")
- "過去30日以内に作成されたノートを見つけて" →
search_by_date("created", 30, "within")
- "正確に2日前に変更されたノートはどれですか?" →
search_by_date("modified", 2, "exactly")
list_notes
ボールト内のノートを、オプションで再帰的に一覧表示します。
パラメータ:
directory
(オプション): 一覧表示する特定のディレクトリ(例: "Daily", "Projects")recursive
(デフォルト:true
): すべてのノートを再帰的に一覧表示する
戻り値:
{
"directory": "Daily",
"recursive": true,
"count": 365,
"notes": [
{"path": "Daily/2024-01-01.md", "name": "2024-01-01.md"},
{"path": "Daily/2024-01-02.md", "name": "2024-01-02.md"}
]
}
list_folders
ボールト内のフォルダを、オプションで再帰的に一覧表示します。
パラメータ:
directory
(オプション): 一覧表示する特定のディレクトリrecursive
(デフォルト:true
): すべてのネストされたサブフォルダを含める
戻り値:
{
"directory": "Projects",
"recursive": true,
"count": 12,
"folders": [
{"path": "Projects/Active", "name": "Active"},
{"path": "Projects/Archive", "name": "Archive"},
{"path": "Projects/Ideas", "name": "Ideas"}
]
}
整理
create_folder
ボールト内に新しいフォルダを作成し、パス内のすべての親フォルダも作成します。
パラメータ:
folder_path
: 作成するフォルダのパス(例: "Apple/Studies/J71P")create_placeholder
(デフォルト:true
): プレースホルダーファイルを作成するかどうか
戻り値:
{
"folder": "Apple/Studies/J71P",
"created": true,
"placeholder_file": "Apple/Studies/J71P/.gitkeep",
"folders_created": ["Apple", "Apple/Studies", "Apple/Studies/J71P"]
}
注意: このツールは、必要なすべての親フォルダを作成します。たとえば、"Apple" は存在するが "Studies" が存在しない場合、"Studies" と "J71P" の両方を作成します。
move_note
ノートを新しい場所に移動します。
パラメータ:
source_path
: ノートの現在のパスdestination_path
: ノートの新しいパスupdate_links
(デフォルト:true
): 他のノート内のリンクを更新する(将来的な機能強化)
move_folder
フォルダ全体とその内容を新しい場所に移動します。
パラメータ:
source_folder
: 現在のフォルダパス(例: "Projects/Old")destination_folder
: 新しいフォルダパス(例: "Archive/Projects/Old")update_links
(デフォルト:true
): 他のノート内のリンクを更新する(将来的な機能強化)
戻り値:
{
"source": "Projects/Completed",
"destination": "Archive/2024/Projects",
"moved": true,
"notes_moved": 15,
"folders_moved": 3,
"links_updated": 0
}
add_tags
ノートのフロントマターにタグを追加します。
パラメータ:
path
: ノートのパスtags
: 追加するタグのリスト(# プレフィックスなし)
update_tags
ノートのタグを更新します - すべてのタグを置き換えるか、既存のタグとマージします。
パラメータ:
path
: ノートのパスtags
: 設定する新しいタグ(# プレフィックスなし)merge
(デフォルト:false
): trueの場合、既存のタグに追加します。falseの場合、すべてのタグを置き換えます。
AIワークフローに最適:
ユーザー: "このノートが何に関するものか教えて、適切なタグを追加して"
AI: [ノートを読み取り] "このノートは機械学習の研究に関するものです..."
AI: [update_tagsを使用してタグを設定: ["ai", "research", "neural-networks"]]
remove_tags
ノートのフロントマターからタグを削除します。
パラメータ:
path
: ノートのパスtags
: 削除するタグのリスト
get_note_info
ノートの完全な内容を取得せずに、メタデータと統計情報を取得します。
パラメータ:
path
: ノートのパス
戻り値:
{
"path": "Projects/AI Research.md",
"exists": true,
"metadata": {
"tags": ["ai", "research"],
"aliases": [],
"frontmatter": {}
},
"stats": {
"size_bytes": 4523,
"word_count": 823,
"link_count": 12
}
}
list_tags
ボールト全体で使用されているすべての一意のタグを、使用統計とともに一覧表示します。
パラメータ:
include_counts
(デフォルト:true
): 各タグの使用回数を含めるsort_by
(デフォルト:"name"
): "name" または "count" でソートする
戻り値:
{
"total_tags": 25,
"tags": [
{"name": "project", "count": 42},
{"name": "meeting", "count": 38},
{"name": "idea", "count": 15}
]
}
パフォーマンスに関する注意:
- 小規模なボールト(1000ノート未満)では高速です。
- 大規模なボールトでは数秒かかる場合があります。
- 最適化のために並列バッチ処理を使用しています。
リンク管理
⚡ パフォーマンスに関する注意 リンク管理ツールはv1.1.5で大幅に最適化されました。
- リンクの有効性チェックが 84倍高速化
- 壊れたリンクの検出が 96倍高速化
- 逆リンク検索が 2倍高速化
- 自動キャッシュとバッチ処理が含まれています。
get_backlinks
特定のノートにリンクしているすべてのノートを見つけます。
パラメータ:
path
: 逆リンクを見つけるノートのパスinclude_context
(デフォルト:true
): リンクの周りのテキストコンテキストを含めるかどうかcontext_length
(デフォルト:100
): 含めるコンテキストの文字数
戻り値:
{
"target_note": "Projects/AI Research.md",
"backlink_count": 5,
"backlinks": [
{
"source_path": "Daily/2024-01-15.md",
"link_text": "AI Research",
"link_type": "wiki",
"context": "...working on the [[AI Research]] project today..."
}
]
}
使用例:
- ある概念やトピックを参照しているノートを理解する
- ノート間の関係を発見する
- ノートの接続のメンタルマップを構築する
get_outgoing_links
特定のノートからのすべてのリンクを一覧表示します。
パラメータ:
path
: リンクを抽出するノートのパスcheck_validity
(デフォルト:false
): リンク先のノートが存在するかどうかをチェックする
戻り値:
{
"source_note": "Projects/Overview.md",
"link_count": 8,
"links": [
{
"path": "Projects/AI Research.md",
"display_text": "AI Research",
"type": "wiki",
"exists": true
}
]
}
使用例:
- ノートが参照しているものを理解する
- 移動/削除する前にノートの依存関係を確認する
- インデックスまたはハブノートの構造を探索する
find_broken_links
ボールト内、特定のディレクトリ内、または単一のノート内のすべての壊れたリンクを見つけます。
パラメータ:
directory
(オプション): チェックする特定のディレクトリ(デフォルトはボールト全体)single_note
(オプション): この特定のノートのみを壊れたリンクについてチェックする
戻り値:
{
"directory": "/",
"broken_link_count": 3,
"affected_notes": 2,
"broken_links": [
{
"source_path": "Projects/Overview.md",
"broken_link": "Projects/Old Name.md",
"link_text": "Old Project",
"link_type": "wiki"
}
]
}
使用例:
- ノートの名前を変更または削除した後
- 定期的なボールトのメンテナンス
- フォルダ構造を再編成する前
🔧 テスト
テストの実行
# すべてのテストを実行
python tests/run_tests.py
# 特定のテストタイプを実行
python tests/run_tests.py unit # 単体テスト(pytestが必要)
python tests/run_tests.py integration # 統合テスト(pytestが必要)
python tests/run_tests.py live # 実際のObsidianを使用したライブテスト
# 個々のテストファイルを実行
python tests/test_comprehensive.py # 完全なワークフローテスト
python tests/test_data_validation.py # データ構造の検証
MCPインスペクターを使用したテスト
- Obsidianが実行中で、Local REST APIプラグインが有効になっていることを確認
- MCPインスペクターを実行
npx @modelcontextprotocol/inspector python -m src.server
http://localhost:5173
でインスペクターUIを開く- 実際のボールトでツールを対話的にテスト
Claude Desktopとの統合
開発用インストールについては、上記の開発用インストールセクションを参照してください。
拡張エラーハンドリング
サーバーは、AIシステムがエラーから回復できるように、詳細で実行可能なエラーメッセージを提供します。
エラーメッセージの例
無効なパス
Invalid note path: '../../../etc/passwd'.
Valid paths must: 1) End with .md or .markdown, 2) Use forward slashes (e.g., 'folder/note.md'),
3) Not contain '..' or start with '/', 4) Not exceed 255 characters.
Example: 'Daily/2024-01-15.md' or 'Projects/My Project.md'
空の検索クエリ
Search query cannot be empty.
Valid queries: 1) Keywords: 'machine learning',
2) Tags: 'tag:#project', 3) Paths: 'path:Daily/',
4) Combined: 'tag:#urgent TODO'
無効な日付パラメータ
Invalid date_type: 'invalid'.
Must be either 'created' or 'modified'.
Use 'created' to find notes by creation date, 'modified' for last edit date
トラブルシューティング
"Connection refused"エラー
- Obsidianが実行中であることを確認してください。
- Local REST APIプラグインが有効になっていることを確認してください。
- ポートが一致していることを確認してください(デフォルト: HTTPは27123、HTTPSは27124)。
- APIキーが正しいことを確認してください。
- 拡張エラーでは、使用されている正確なURLとポートが表示されます。
タグが表示されない
- タグが正しくフォーマットされていることを確認してください(# プレフィックスの有無を問わず)。
- Local REST APIプラグインが最新バージョンであることを確認してください。
- フロントマター内のタグはYAML配列形式である必要があります:
tags: [tag1, tag2]
。 - インラインタグは# プレフィックスを使用する必要があります:
#project #urgent
。
"Certificate verify failed"エラー
これはLocal REST APIの自己署名証明書による正常なエラーです。サーバーが自動的に処理します。
"Module not found"エラー
- 仮想環境がアクティブになっていることを確認してください。
- プロジェクトのルートから実行してください:
python -m src.server
。 - PYTHONPATHにプロジェクトディレクトリが含まれていることを確認してください。
ノートを一覧表示するときに結果が空になる
list_notes
を使用するときにディレクトリを指定してください(例: "Daily", "Projects")。- ルートディレクトリの一覧表示には再帰的な実装が必要です。
- ノートがサブディレクトリにあるかどうかを確認してください。
タグが更新されない
- ノートにフロントマターセクションがあることを確認してください。
- フロントマターには
tags:
フィールドが含まれている必要があります(空でも可)。 - サーバーは現在、フロントマタータグとインラインハッシュタグの両方を正しく読み取ります。
AIアシスタントのベストプラクティス
データ損失の防止
- 更新する前に必ず読み取る -
update_note
ツールはデフォルトで内容を置き換えます。 - 追加にはappendモードを使用する - 既存のノートに追加する場合は、
merge_strategy="append"
を使用します。 - ノートの存在を確認する - 変更する前に
read_note
を使用してノートが存在することを確認します。 - 上書きについて明確にする - 意図的に内容を置き換える場合のみ、
overwrite=true
を使用します。
推奨されるワークフロー
安全なノート編集:
- まず既存のノートを読み取ります。
- 必要に応じて内容を変更します。
- 完全な新しい内容で更新します。
日次ノートへの追加:
merge_strategy="append"
を使用して、既存の内容を失わずにエントリを追加します。
新しいノートの作成:
create_note
をoverwrite=false
(デフォルト)で使用して、誤った上書きを防止します。- 整理を維持するために関連するタグを追加します。
list_tags
を使用して既存のタグを確認し、重複を避けます。
タグによる整理:
- 新しいタグを作成する前に、
list_tags
で既存のタグを確認します。 - 一貫した命名を維持します(例: "project" を使い、"projects" を使わない)。
- 強力な検索とフィルタリングを可能にするためにタグを使用します。
セキュリティに関する考慮事項
- APIキーを秘密に保つ - バージョン管理にコミットしないでください。
- サーバーはすべてのパスを検証し、ディレクトリトラバーサル攻撃を防止します。
- Obsidianとの通信は、デフォルトでHTTP(ローカルホストのみ)または自己署名証明書付きのHTTPSを使用します。
- サーバーはREST APIを通じてローカル接続のみを受け付けます。
開発
コードスタイル
- MCPの実装にFastMCPフレームワークを使用しています。
- 型安全と検証のためにPydanticモデルを使用しています。
- 関心事を分離したモジュール化されたアーキテクチャです。
- 包括的なエラーハンドリングとユーザーフレンドリーなメッセージを備えています。
新しいツールの追加
src/tools/
以下の適切なモジュールにツール関数を作成します。- 必要に応じて
src/models/
にPydanticモデルを追加します。 src/server.py
で@mcp.tool()
デコレータを使用してツールを登録します。- 包括的なドキュメント文字列を含めます。
tests/
にテストを追加します。- デプロイ前にMCPインスペクターでテストします。
変更履歴
v1.1.7 (2025-01-10)
- 🔄 デフォルトのAPIエンドポイントをHTTP (
http://127.0.0.1:27123
) に変更して、セットアップを容易にしました。 - 📝 ドキュメントを更新して、デフォルトをHTTP、HTTPSをオプションとして反映しました。
- 🔧 URL内の末尾のスラッシュを自動的に処理することに関する注意事項を追加しました。
- ✨ ゼロコンフィギュレーションセットアップで、初めてのユーザー体験を改善しました。
v1.1.6 (2025-01-10)
- 🐛 大きなノートを作成または更新するときのタイムアウトエラーを修正しました。
- ⚡ 大きなコンテンツでの信頼性を向上させるために、グレースフルなタイムアウトハンドリングを追加しました。
- 🔧 成功した操作での誤った失敗を防ぐために、エラー報告を改善しました。
v1.1.5 (2025-01-09)
- ⚡ リンク管理の大幅なパフォーマンス最適化
- リンクの有効性チェックが84倍高速化
- 壊れたリンクの検出が96倍高速化
- 逆リンク検索が2倍高速化
- 自動キャッシュとバッチ処理を追加
- 🔧 大規模なボールトでの並列操作を最適化しました。
- 📝 パフォーマンスに関する考慮事項のドキュメントを強化しました。
v1.1.4 (2025-01-09)
- 🔗 包括的なボールト分析のためのリンク管理ツールを追加しました。
get_backlinks
- 特定のノートにリンクしているすべてのノートを見つけます。get_outgoing_links
- ノートからのすべてのリンクを、有効性チェック付きで一覧表示します。find_broken_links
- ボールトのメンテナンスのために壊れたリンクを特定します。
- 🔧 URLの構築を修正して、HTTPS(デフォルト)とHTTPの両方のエンドポイントをサポートしました。
- 📝 リンク解析を強化して、ウィキスタイルとMarkdownの両方のリンクを処理できるようにしました。
- ⚡ 逆リンク検索を最適化して、さまざまなパス形式を処理できるようにしました。
v1.1.3 (2025-01-09)
- 🐛
search_by_date
を修正して、今日変更されたノート(days_ago=0)を正しく見つけるようにしました。 - ✨ ボールトのフォルダ構造を探索するための
list_folders
ツールを追加しました。 - ✨ 完全なフォルダ階層を作成する
create_folder
ツールを追加しました。 - ✨ 一括フォルダ操作のための
move_folder
ツールを追加しました。 - ✨ AI駆動のタグ管理のための
update_tags
ツールを追加しました。 - 🐛 タグの読み取りを修正して、フロントマターとインラインハッシュタグの両方を正しく処理するようにしました。
- ✨ 既存のタグを使用統計とともに発見する
list_tags
ツールを追加しました。 - ⚡ 大規模なボールトでの並列バッチ処理により、パフォーマンスを最適化しました。
- 📝 MCPのベストプラクティスに従って、ドキュメントとエラーメッセージを改善しました。
- 🎯 整理を改善するために、
create_note
を強化してタグの使用を促進しました。
v1.1.2 (2025-01-09)
- PyPIパッケージのドキュメントを修正しました。
v1.1.1 (2025-01-06)
- 最初のPyPIリリース
公開(メンテナー用)
新しいバージョンをPyPIに公開するには、次の手順を実行します。
# 1. pyproject.tomlでバージョンを更新
# 2. 古いビルドをクリーンアップ
rm -rf dist/ build/ *.egg-info/
# 3. パッケージをビルド
python -m build
# 4. パッケージをチェック
twine check dist/*
# 5. PyPIにアップロード
twine upload dist/* -u __token__ -p $PYPI_API_KEY
# 6. gitタグを作成してプッシュ
git tag -a v1.1.7 -m "Release version 1.1.7"
git push origin v1.1.7
ユーザーは、次のコマンドでインストールして実行できます。
# uvxを使用する場合(推奨 - インストール不要)
uvx obsidian-mcp
# またはpipxでグローバルにインストール
pipx install obsidian-mcp
obsidian-mcp
# またはpipでインストール
pip install obsidian-mcp
obsidian-mcp
設定
高度な設定
非標準の設定を使用している場合、次の環境変数を使用してサーバーの動作をカスタマイズできます。
OBSIDIAN_API_URL
- デフォルトのAPIエンドポイントを上書きします(デフォルト:http://127.0.0.1:27123
)- HTTPSエンドポイントを使用している場合(例:
https://localhost:27124
)、またはLocal REST APIプラグインの設定でポート番号を変更した場合に使用します。 - セットアップを容易にするために、デフォルトでHTTPエンドポイントが使用されます。
- 注意: 末尾のスラッシュは自動的に処理されます(
http://127.0.0.1:27123
とhttp://127.0.0.1:27123/
の両方が機能します)。
- HTTPSエンドポイントを使用している場合(例:
HTTPSまたは非標準の設定の例:
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": ["obsidian-mcp"],
"env": {
"OBSIDIAN_REST_API_KEY": "your-api-key-here",
"OBSIDIAN_API_URL": "https://localhost:27124"
}
}
}
}
貢献
- リポジトリをフォークします。
- 機能ブランチを作成します (
git checkout -b feature/amazing-tool
)。 - 新しい機能のテストを書きます。
- すべてのテストが通過することを確認します。
- 変更をコミットします (
git commit -m 'Add amazing tool'
)。 - ブランチにプッシュします (
git push origin feature/amazing-tool
)。 - プルリクエストを開きます。
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
謝辞
- Anthropic - Model Context Protocolを作成してくれた方々
- Obsidianチーム - 素晴らしいノートアプリを開発してくれた方々
- coddingtonbear - Local REST APIプラグインを開発してくれた方
- dsp-ant - FastMCPフレームワークを開発してくれた方








厳選MCPサービス







