Claude 데스크탑에서 옵시디언 Omnisearch를 통해 획기적으로 발전시키는 MCP 서버 개발 이야기



Claude 데스크탑에서 옵시디언 Omnisearch를 통해 획기적으로 발전시키는 MCP 서버 개발 이야기

제가 직접 경험해본 바에 따르면, Claude 데스크탑에서 옵시디언의 Omnisearch 기능을 활용해 MCP 서버를 개발하는 과정은 매우 유익하고 흥미로운 경험이었어요. 이 글에서는 제가 진행한 프로젝트의 세부 과정을 공유하고자 하니, 아래를 읽어보시면 많은 도움이 될 거예요.

MCP 서버 개발을 위한 사전 준비사항

제 경험상, MCP 서버를 성공적으로 개발하기 위해서는 몇 가지 필수적인 준비가 필요합니다. 맥OS 환경에서 저는 다음 단계를 따랐어요:

  1. 필수 패키지 설치하기
  2. brew install uv git sqlite3를 입력하여 필요한 패키지를 설치했습니다.

  3. 레딧에서 유용한 팁 확인하기

  4. 레딧 같은 커뮤니티에서 유용한 트릭과 팁을 찾아보면 개발 과정에 큰 도움이 되었답니다.

이러한 준비과정을 통해, 빠르게 개발을 시작할 수 있었고, 특히 Omnisearch 플러그인의 장점을 최대한 활용할 수 있었어요.

 

👉 ✅ 상세정보 바로 확인 👈



 

필요한 라이브러리 설치 및 구축

MCP 서버를 구축하기 위해 필수적인 라이브러리를 설치하는 과정은 다음과 같아요:

  • MCP 서버 디렉토리 생성하기
    bash
    mkdir mcp-server-omnisearch
    cd mcp-server-omnisearch
  • fastmcp 패키지 추가하기
    bash
    uv add fastmcp

이러한 단계들을 통해 MCP 서버의 기초를 세울 수 있었답니다.

옵시디언 노트를 검색하는 코드 작성하기

코드 작성을 위한 과정에서는 제가 맞닥뜨린 문제와 그 해결책들이 포함되어 있어요. 아래는 제가 작성한 코드를 소개할게요.

“`python
from fastmcp import FastMCP
from urllib.parse import quote
import requests

mcp = FastMCP(“obsidian-omnisearch”)

@mcp.tool()
async def obsidian_notes_search(query: str) -> list[str]:
“””Search Obsidian notes”””
try:
search_url: str = “http://localhost:51361/search?q={query}”
response = requests.get(search_url.format(query=quote(query)))
response.raise_for_status()
return response.json()
except Exception as e:
print(f”Error: {e}”)
return []
“`

이 코드는 옵시디언 노트를 효과적으로 검색하는 데 필요한 중요한 기능을 수행합니다. 제 경험에 따르면, 이 코드를 작성하면서 API의 응답을 어떻게 처리할지를 고민했던 덕분에 더욱 견고한 서버를 만들 수 있었어요.

코드 테스트와 실행하기

저는 개발한 서버를 최종적으로 테스트하는 단계를 매우 중요하게 생각해요. 아래와 같이 커맨드를 입력하여 테스트를 진행했어요:

bash
uv run fastmcp dev server.py

이런 방식으로 개발한 MCP 서버를 로컬 환경에서 테스트할 수 있으니, 실전과 유사한 환경에서 기능을 확인할 수 있었답니다.

Claude 데스크탑에 MCP 서버 설치하기

이제 MCP 서버를 Claude 데스크탑에 설치하는 방법을 알려드릴게요. 아래의 명령을 실행하면 간단하게 설치할 수 있어요:

bash
uv run fastmcp install server.py

설치가 끝난 후에는, 사용자 환경에 맞게 다음과 같은 내용을 추가해야 해요:

json
{
"mcpServers": {
"Omnisearch": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/mcp-server-omnisearch",
"run",
"--with",
"fastmcp",
"fastmcp",
"run",
"server.py"
]
}
}
}

이러한 설정을 통해 Claude 데스크탑과 MCP 서버가 원활하게 연결되었답니다. 개인적으로, 이런 자동화된 세팅이 편리하고 사용자 친화적이라는 걸 느꼈어요.

사용 경험 및 문제 해결 tip

서버를 설치 후, 저는 이를 통해 옵시디언 노트를 검색하는 재미를 느낄 수 있었어요. 그러나 개발 중 몇 가지 어려움이 있었고, 그럴 때는 modelcontextprotocol/servers 리포지토리의 이슈 페이지를 참고하며 문제를 해결했답니다.

이런 경험은 수많은 소중한 교훈을 주었고, 이는 제가 향후 개발 프로젝트에 활용할 수 있는 큰 자원이 되었어요.

최종 정리 및 애플리케이션 사용하기

이제 MCP 서버가 잘 작동하게 설정되었으니, Claude 데스크탑에 통합된 옵시디언 노트를 검색할 수 있게 되었어요. 저와 같은 개발자들이 이러한 과정을 통해 생산성을 높이는 데 도움을 받을 수 있었으면 좋겠어요.

제가 정리한 내용

아래 내용을 요약하자면, MCP 서버 개발 과정은 초반에 복잡하게 느껴질 수 있지만, 각 단계를 충실히 따라가다 보면 어렵지 않아요. 특히, 커뮤니티의 도움이 큰 힘이 되는 것 같아요.

단계 설명
라이브러리 설치 필수 패키지를 설치하여 개발 환경을 조성
서버 코드 작성 옵시디언 노트를 검색하는 코드를 작성
테스트 서버를 로컬 환경에서 테스트 및 디버깅
연결 설정 Claude 데스크탑에 MCP 서버 연결

이 글이 개발에 실질적인 도움이 되길 바라며, 개발하는 모든 이들에게 행운이 가득하기를 빌어요! 😊

자주 묻는 질문 (FAQ)

MCP 서버란 무엇인가요?

MCP 서버는 다양한 애플리케이션과 데이터를 통합하여 검색 기능을 제공하는 서버입니다.

옵시디언의 Omnisearch의 장점은 무엇인가요?

Omnisearch는 여러 파일들을 통합적으로 검색할 수 있는 기능을 제공하여 생산성을 높이는 데 도움을 줍니다.

개발 중 발생한 주요 문제와 해결책은 무엇인가요?

주요 문제는 의존성 관련 오류였으며, 이를 통해 관련 커뮤니티에서 정보와 솔루션을 얻어 해결했습니다.

Claude 데스크탑에서 왜 MCP 서버를 사용해야 하나요?

MCP 서버를 통해 복잡한 데이터를 더 쉽게 검색하고 관리할 수 있어 생산성 향상에 기여합니다.

키워드: 옵시디언, MCP 서버, Claude 데스크탑, Omnisearch, 개발 노트, 검색 기능, 자동화, 프로젝트 관리, 개발 과정, 커뮤니티 도움, 효율적인 작업.