Obsidian Omnisearch MCP Server
MCP 서버 Obsidian Omnisearch
REST API 인터페이스를 통해 Obsidian 볼트 검색 기능을 제공하는 FastMCP 기반 서버입니다.
개요
이 프로젝트는 Obsidian 볼트 노트를 프로그래밍 방식으로 검색할 수 있는 검색 서비스를 구현합니다. FastMCP를 사용하여 검색 기능을 다른 서비스와 통합 가능한 도구로 제공합니다.
Related MCP server: Obsidian MCP Server
특징
흑요석 보관소 노트 검색
REST API 통합
일치하는 노트에 대한 절대 경로를 반환합니다.
FastMCP 도구와의 쉬운 통합
필수 조건
파이썬 3.x
Omnisearch 플러그인이 설치되고 실행 중인 Obsidian
FastMCP 라이브러리
활성 흑요석 금고
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop용 MCP Server Obsidian Omnisearch를 자동으로 설치하려면:
지엑스피1
수동 설치
저장소를 복제합니다.
git clone https://github.com/anpigon/mcp-server-obsidian-omnisearch.git
cd mcp-server-obsidian-omnisearch종속성 설치:
uv install구성
이제 서버를 실행할 때 Obsidian 볼트 경로가 명령줄 인수로 제공됩니다.
python server.py /path/to/your/obsidian/vault용법
Obsidian Omnisearch 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: 검색 쿼리 문자열
반환: 일치하는 노트에 대한 절대 경로 목록
개발
건축 및 출판
배포를 위해 패키지를 준비하려면:
종속성 동기화 및 잠금 파일 업데이트:
uv sync패키지 배포 빌드:
uv build이렇게 하면 dist/ 디렉토리에 소스와 휠 배포판이 생성됩니다.
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-omnisearchInspector를 실행하면 브라우저에서 접근하여 디버깅을 시작할 수 있는 URL이 표시됩니다.
다음 명령을 사용하여 서버 로그를 볼 수도 있습니다.
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-server-obsidian-omnisearch.log종속성
패스트MCP
요청
URL 라이브러리
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
Available Tools
2 toolsobsidian_notes_searchB
Search Obsidian(옵시디언) notes and return absolute paths to the matching notes. The returned paths can be used with the read_note tool to view the note contents.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the action (search) and output (absolute paths), but lacks details on behavioral traits such as search scope (e.g., full-text, metadata), performance (e.g., speed, limits), error handling, or authentication needs. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: two sentences that directly state the tool's purpose and usage. Every sentence earns its place by providing essential information without waste, making it efficient and easy to understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a search tool with no output schema and no annotations), the description is incomplete. It explains the basic purpose and output format but lacks critical context such as search behavior, result limitations, error cases, or integration details with the sibling tool. This leaves gaps for an AI agent to understand how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter ('query') with 0% description coverage, meaning the schema provides no details about it. The description does not add any semantic information about the 'query' parameter, such as its format, syntax, or examples. This leaves the parameter largely undocumented, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search Obsidian notes and return absolute paths to the matching notes.' It specifies the verb (search), resource (Obsidian notes), and output (absolute paths). However, it does not explicitly differentiate from its sibling 'read_note' beyond mentioning that the returned paths can be used with it, which is more of a usage hint than a distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: 'The returned paths can be used with the read_note tool to view the note contents.' This indicates when to use this tool (to find notes) versus its sibling (to read them). However, it lacks explicit exclusions or alternatives, such as when not to use it or if there are other search methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_noteC
Read and return the contents of an Obsidian note file.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v1.0.0- Changed
obsidian_notes_search1 field changed- removed
Input schema / properties / query / titleRemoved value: -"Query"
- Changed
read_note1 field changed- removed
Input schema / properties / filepath / titleRemoved value: -"Filepath"
2 tool updates
- First observed
obsidian_notes_search - First observed
read_note
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Search, read, and safely update Markdown notes in your connected Phasoric knowledge vaults.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides a standardized interface for AI assistants to interact with Obsidian vaults through a local REST API, enabling reading, writing, searching, and managing notes.69MIT
- AlicenseBqualityDmaintenanceEnables direct file system access to Obsidian vaults with auto-discovery, full-text search, and note operations. Supports reading, writing, and searching across Obsidian notes without requiring plugins or REST API.63,254 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search, read, and analyze Obsidian notes via the Local REST API.18 npm17ISC
- AlicenseNot gradedqualityDmaintenanceEnables users to search, list, and read notes in an Obsidian vault via a CLI or HTTP API, integrating with Obsidian for note management.398 npmMIT