제가 직접 경험해본 바에 따르면, Claude 데스크탑에서 옵시디언의 Omnisearch 기능을 활용해 MCP 서버를 개발하는 과정은 매우 유익하고 흥미로운 경험이었어요. 이 글에서는 제가 진행한 프로젝트의 세부 과정을 공유하고자 하니, 아래를 읽어보시면 많은 도움이 될 거예요.
MCP 서버 개발을 위한 사전 준비사항
제 경험상, MCP 서버를 성공적으로 개발하기 위해서는 몇 가지 필수적인 준비가 필요합니다. 맥OS 환경에서 저는 다음 단계를 따랐어요:
- 필수 패키지 설치하기
-
brew install uv git sqlite3
를 입력하여 필요한 패키지를 설치했습니다. -
레딧에서 유용한 팁 확인하기
- 레딧 같은 커뮤니티에서 유용한 트릭과 팁을 찾아보면 개발 과정에 큰 도움이 되었답니다.
이러한 준비과정을 통해, 빠르게 개발을 시작할 수 있었고, 특히 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, 개발 노트, 검색 기능, 자동화, 프로젝트 관리, 개발 과정, 커뮤니티 도움, 효율적인 작업.