Skip to main content
Glama
anpigon

Obsidian Omnisearch MCP Server

by anpigon

MCP サーバー Obsidian Omnisearch

鍛冶屋のバッジ REST API インターフェースを通じて Obsidian Vault 検索機能を提供する FastMCP ベースのサーバー。

概要

このプロジェクトは、Obsidian Vault のノートをプログラムで検索できる検索サービスを実装します。FastMCP を使用することで、検索機能を他のサービスと統合できるツールとして公開できます。

Related MCP server: Obsidian MCP Server

特徴

  • Obsidian Vaultのノートを検索する

  • REST API統合

  • 一致するノートへの絶対パスを返します

  • FastMCPツールとの簡単な統合

前提条件

  • Python 3.x

  • Omnisearchプラグインがインストールされ実行されているObsidian

  • FastMCPライブラリ

  • 現役の黒曜石保管庫

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の MCP Server Obsidian Omnisearch を自動的にインストールするには:

npx -y @smithery/cli install @anpigon/mcp-server-obsidian-omnisearch --client claude

手動インストール

  1. リポジトリをクローンします。

git clone https://github.com/anpigon/mcp-server-obsidian-omnisearch.git
cd mcp-server-obsidian-omnisearch
  1. 依存関係をインストールします:

uv install

構成

サーバー実行時に、Obsidian の金庫パスがコマンド ライン引数として提供されるようになりました。

python server.py /path/to/your/obsidian/vault

使用法

Obsidian オムニサーチ API

Obsidian Omnisearch コミュニティ プラグインを実行する必要があります: https://publish.obsidian.md/omnisearch/Inject+Omnisearch+results+into+your+search+engine

クロードデスクトップ

MacOSの場合: ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows の場合: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "obsidian-omnisearch": {
      "command": "uv",
      "args": [
        "--directory",
        "<dir_to>/mcp-server-obsidian-omnisearch",
        "run",
        "mcp-server-obsidian-omnisearch",
        "/path/to/your/obsidian/vault"
      ]
    }
  }
}
{
  "mcpServers": {
    "obsidian-omnisearch": {
      "command": "uvx",
      "args": [
        "mcp-server-obsidian-omnisearch",
        "/path/to/your/obsidian/vault"
      ]
    }
  }
}

APIリファレンス

検索ノート

  • 関数: obsidian_notes_search(query: str)

  • 説明: Obsidian ノートを検索し、一致するノートへの絶対パスを返します

  • パラメータ:

    • query : 検索クエリ文字列

  • 戻り値: 一致するノートへの絶対パスのリスト

発達

建築と出版

配布用のパッケージを準備するには:

  1. 依存関係を同期し、ロックファイルを更新します。

uv sync
  1. パッケージディストリビューションをビルドします。

uv build

これにより、 dist/ディレクトリにソースとホイールのディストリビューションが作成されます。

  1. PyPI に公開:

uv publish

注: 環境変数またはコマンド フラグを使用して PyPI 資格情報を設定する必要があります。

  • トークン: --tokenまたはUV_PUBLISH_TOKEN

  • またはユーザー名/パスワード: --username / UV_PUBLISH_USERNAMEおよび--password / UV_PUBLISH_PASSWORD

デバッグ

MCPサーバーはstdio経由で実行されるため、デバッグが困難になる場合があります。最適なデバッグ環境を実現するには、 MCP Inspectorの使用を強くお勧めします。

次のコマンドを使用して、 npm経由で MCP Inspector を起動できます。

npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-obsidian-omnisearch run mcp-server-obsidian-omnisearch

起動すると、ブラウザでアクセスしてデバッグを開始できる URL がインスペクタに表示されます。

次のコマンドでサーバー ログを監視することもできます。

tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-server-obsidian-omnisearch.log

依存関係

  • ファストMCP

  • リクエスト

  • urllib

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

Available Tools

2 tools
read_noteC

Read and return the contents of an Obsidian note file.

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions reading and returning contents, which implies a read-only operation, but doesn't specify error handling (e.g., what happens if the file doesn't exist), permissions required, or format of returned data. This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficient for a tool that reads files. It doesn't cover error cases, return format, or parameter details, leaving the agent with incomplete information to use the tool effectively in a real-world context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, and the description doesn't explain the 'filepath' parameter beyond what's implied by the tool name. It doesn't specify the expected format (e.g., relative vs absolute path, file extension requirements) or provide examples, failing to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Read and return the contents') and resource ('an Obsidian note file'), making the tool's purpose immediately understandable. However, it doesn't differentiate from the sibling tool 'obsidian_notes_search', which likely serves a different purpose (searching vs reading specific files).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'obsidian_notes_search', nor does it mention any prerequisites or contextual constraints. It merely states what the tool does without indicating appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • Changedobsidian_notes_search1 field changed
      • removedInput schema / properties / query / title
        Removed value: -"Query"
    • Changedread_note1 field changed
      • removedInput schema / properties / filepath / title
        Removed value: -"Filepath"
  2. 2 tool updates
    • First observedobsidian_notes_search
    • First observedread_note

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one searches for notes and returns paths, while the other reads the content of a specific note. There is no overlap or ambiguity between them.

Naming Consistency5/5

Both tools follow a consistent snake_case naming pattern with clear verb_noun structure (obsidian_notes_search, read_note). The naming is predictable and readable throughout.

Tool Count2/5

With only two tools, the server feels thin for its purpose of Obsidian Omnisearch. While the tools cover basic search and read operations, the scope suggests more functionality (e.g., create, update, delete notes, or advanced search features) would be expected.

Completeness2/5

The server is severely incomplete for an Obsidian search domain. It lacks any CRUD operations (create, update, delete notes) and advanced search capabilities (e.g., filtering by tags, dates). Agents will hit dead ends when trying to perform common note management tasks.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers