obsidian-server
A server for the Obsidian Model Context Protocol.
Installation
npx @sunub/obsidian-mcp-serverAsk AI about obsidian-server
Powered by Claude ยท Grounded in docs
I know everything about obsidian-server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Obsidian MCP Server
obsidian-mcp-server๋ Obsidian Vault์ Markdown ๋ฌธ์๋ฅผ AI ์์ด์ ํธ๊ฐ ์กฐํํ๊ณ , ๊ฒ์ํ๊ณ , ์์ฝํ ์ ์๊ฒ ํด์ฃผ๋ MCP ์๋ฒ์
๋๋ค.
์ด ํ๋ก์ ํธ๋ ๋จ์ํ ๋ฌธ์๋ฅผ ์ฝ์ด์ค๋ ๊ฒ์ ๋์ด, transformers.js๋ฅผ ํ์ฉํ ๋ก์ปฌ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ํฐ๋ฏธ๋์์ ์ฆ์ Vault์ ๋ํํ ์ ์๋ ๋ํํ CLI AI Agent UI๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
์ฃผ์ ํน์ง
- ๐ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์: ํค์๋ ๊ฒ์๊ณผ ์๋งจํฑ(๋ฒกํฐ) ๊ฒ์์ ๊ฒฐํฉํ๊ณ RRF(Reciprocal Rank Fusion)์ Reranking์ ํตํด ์ต์ ์ ๊ฒฐ๊ณผ ์ ๊ณต.
- ๐ Zero-Dependency ๋ก์ปฌ AI:
@huggingface/transformers๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ฉ ๋ฐ ๋ฆฌ๋ญํน ๋ชจ๋ธ์ Node.js ํ๋ก์ธ์ค ๋ด์์ ์ง์ ์คํ (์ธ๋ถ API ์๋ฒ ๋ถํ์). - ๐ฌ ๋ด์ฅ CLI ์์ด์ ํธ: MCP ๋๊ตฌ๋ค์ ํ์ฉํ์ฌ Vault ๋ด์ฉ์ ๋ํด ์ง๋ฌธํ๊ณ ๋ต๋ณ์ ๋ฐ์ ์ ์๋ ํฐ๋ฏธ๋ ๊ธฐ๋ฐ UI ์ ๊ณต. ์์ธ ๋ณด๊ธฐ
- ๐ฆ ํ ํฐ ์ต์ ํ: AI ์์ด์ ํธ์ ํ ํฐ ์ฌ์ฉ๋์ ์ ์ดํ๊ธฐ ์ํ ๋ค์ํ ์์ถ ๋ชจ๋์ ์ถ๋ ฅ ์ ํ ๊ธฐ๋ฅ ์ ๊ณต.
๋ฌด์์ ํ ์ ์๋ (MCP Tools)
- ํตํฉ ๊ฒ์ (
vault,action="search"): ํค์๋์ ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์์ ๋์์ ์ํํ์ฌ ๊ด๋ จ์ฑ ๋์ ๋ฌธ์ ํ์. - ๋ฌธ์ ์ด๋ (
vault,action="read"): ํน์ ๋ ธํธ์ ๋ณธ๋ฌธ ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์กฐํ. - ์ ์ฒด ๋ชฉ๋ก ๋ฐ ์ํ (
vault,action="list_all"|"stats"): Vault์ ์ ๋ฐ์ ์ธ ์ํ์ ํ์ผ ๋ชฉ๋ก ํ์ธ. - ์ปจํ
์คํธ ์์ง (
vault,action="collect_context"): ํน์ ์ฃผ์ ์ ์ฐ๊ด๋ ๊ณ ๋ฐ๋ ์ง์ ํจํท ์์ฑ. - ์ง์ ๋ก๋ (
vault,action="load_memory"): ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ ์ท ํธ์ถ. - Frontmatter ๊ด๋ฆฌ (
generate_property|write_property): AI ๊ธฐ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์์ฑ ๋ฐ ๋ฐ์. - ์ฒจ๋ถํ์ผ ์ ๋ฆฌ (
organize_attachments): ๋ฌธ์ ๋ด ์ด๋ฏธ์ง๋ฅผ ์ ์ฉ ํด๋๋ก ์๋ ์ด๋ ๋ฐ ๋งํฌ ์ ๋ฐ์ดํธ.
์ค์น ๋ฐ ์ค์
1. ์ฌ์ ์๊ตฌ์ฌํญ
- Node.js: v22.0.0 ์ด์
- Obsidian Vault: ์ ๋ ๊ฒฝ๋ก๋ฅผ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
2. ๋ก์ปฌ AI ๋ชจ๋ธ ์ค์น (ํ์)
์๋งจํฑ ๊ฒ์ ๋ฐ ๋ฆฌ๋ญํน ๊ธฐ๋ฅ์ ํ์ฑํํ๋ ค๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ํ ๋ก์ปฌ ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค.
# ๋ก์ปฌ ์๋ฒ ๋ฉ ๋ฐ ๋ฆฌ๋ญํน ๋ชจ๋ธ ์ค์น
npx @sunub/obsidian-mcp-server setup
๋๋ ์ด๋ฏธ ํจํค์ง๋ฅผ ์ค์นํ๋ค๋ฉด:
obsidian-mcp-server setup
์ด ๋ช
๋ น์ด๋ Xenova/paraphrase-multilingual-MiniLM-L12-v2(์๋ฒ ๋ฉ)์ Xenova/bge-reranker-base(๋ฆฌ๋ญํน) ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ์ฌ ๋ก์ปฌ ์บ์์ ์ ์ฅํฉ๋๋ค.
3. ํ๊ฒฝ ๋ณ์ ์ค์
| ํ๊ฒฝ๋ณ์ | ๊ธฐ๋ณธ๊ฐ | ์ญํ | ํ์ ์ฌ๋ถ |
|---|---|---|---|
VAULT_DIR_PATH | โ | Obsidian Vault ์ ๋ ๊ฒฝ๋ก | ํ์ |
LLM_API_URL | http://127.0.0.1:8080 | CLI UI์ฉ ์ฑํ ๋ชจ๋ธ API ์๋ํฌ์ธํธ | CLI ์ฌ์ฉ ์ ํ์ |
LLM_CHAT_MODEL | llama3 | ์ฑํ ์ ์ฌ์ฉํ ๋ชจ๋ธ๋ช | CLI ์ฌ์ฉ ์ ํ์ |
LOGGING_LEVEL | info | ๋ก๊ทธ ์์ค (debug / info / warn / error) | ์ ํ |
MCP ํด๋ผ์ด์ธํธ ์ค์ ์์
๊ฐ ํด๋ผ์ด์ธํธ ์ค์ ์์ env.VAULT_DIR_PATH๋ฅผ ๋ณธ์ธ์ Vault ๊ฒฝ๋ก๋ก ์์ ํ์ฌ ์ฌ์ฉํ์ธ์.
Claude Desktop / Cursor / Copilot
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@sunub/obsidian-mcp-server@latest"],
"env": {
"VAULT_DIR_PATH": "/Users/username/Documents/MyVault"
}
}
}
}
ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ๋์ ๋ฐฉ์
๊ธฐ์กด์ ํค์๋ ๊ฒ์๋ง์ผ๋ก๋ ์ฐพ๊ธฐ ํ๋ ์๋ฏธ์ ์ฐ๊ด์ฑ์ ์ก๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ํ์ดํ๋ผ์ธ์ ๊ฑฐ์นฉ๋๋ค:
- Keyword Search: ๋ด๋ถ
Indexer๋ฅผ ํตํด ์ ํํ ๋จ์ด ๋งค์นญ ๊ฒฐ๊ณผ ์ถ์ถ. - Vector Search: LanceDB์
transformers.js์๋ฒ ๋ฉ์ ์ฌ์ฉํ์ฌ ์๋ฏธ์ ์ผ๋ก ์ ์ฌํ ์ฒญํฌ ํ์. - RRF Fusion: ๋ ๊ฒ์ ๊ฒฐ๊ณผ์ ์์๋ฅผ Reciprocal Rank Fusion ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณํฉ.
- Local Reranking: ๋ณํฉ๋ ์์ ๊ฒฐ๊ณผ๋ค์
BGE Reranker๋ชจ๋ธ๋ก ๋ค์ ํ๊ฐํ์ฌ ์ต์ข ์์ ๊ฒฐ์ .
๋ชจ๋ธ์ด ์ค์น๋์ง ์์ ๊ฒฝ์ฐ ์๋์ผ๋ก ํค์๋ ์ ์ฉ ๋ชจ๋๋ก ๋์ํ๋ฉฐ, ํฐ๋ฏธ๋์ npx @sunub/obsidian-mcp-server setup ์คํ ๊ถ์ฅ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค.
๋ํํ CLI AI Agent UI
์ด ํ๋ก์ ํธ์๋ Obsidian Vault์ ์ต์ ํ๋ ํฐ๋ฏธ๋ ๊ธฐ๋ฐ AI ์ฑํ ์ธํฐํ์ด์ค๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค.
ํน์ง
- RAG ํตํฉ: ์ง๋ฌธ ์ ์๋์ผ๋ก Vault์์ ๊ด๋ จ ์ปจํ ์คํธ๋ฅผ ์์งํ์ฌ LLM์ ์ ๋ฌํฉ๋๋ค.
- ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ: LLM์ ๋ต๋ณ๊ณผ "์๊ฐํ๋ ๊ณผ์ ()"์ ์ค์๊ฐ์ผ๋ก ๋ ๋๋งํฉ๋๋ค.
- ์ฌ๋์ ์ปค๋งจ๋:
/search,/read,/index๋ฑ MCP ๋๊ตฌ๋ฅผ CLI์์ ์ง์ ๋ช ๋ น์ด๋ก ํธ์ถ ๊ฐ๋ฅํฉ๋๋ค. - ๋ฉํฐ MCP ๊ด๋ฆฌ: ์ฐ๊ฒฐ๋ ๋ชจ๋ MCP ์๋ฒ์ ์ํ์ ๋๊ตฌ ๋ชฉ๋ก์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
์คํ ๋ฐฉ๋ฒ
- ์ฑํ
๋ชจ๋ธ ์๋ฒ ๊ตฌ๋:
llama.cpp๋๋Ollama์ ๊ฐ์ ์๋ฒ๋ฅผ OpenAI ํธํ ๋ชจ๋๋ก ๋์๋๋ค.- ์:
llama-server -m models/gemma-2-9b-it.Q4_K_M.gguf --port 8080
- ์:
- CLI ์คํ:
# ํ๊ฒฝ๋ณ์์ ํจ๊ป ์คํ VAULT_DIR_PATH="/your/vault" LLM_API_URL="http://localhost:8080" npx @sunub/obsidian-mcp-server
์ฌ๋์ ์ปค๋งจ๋ ๋์๋ง
/search <keyword>: ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ์คํ/read "filename": ํน์ ๋ฌธ์ ์ฝ๊ธฐ/stats: Vault ์ํ ํ์ธ/index: ๋ฒกํฐ DB ์ฌ์์ธ ๊ฐ์ ์คํ/tools: ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ MCP ๋๊ตฌ ๋ชฉ๋ก ํ์ธ/help: ๋์๋ง ๋ณด๊ธฐ
๋ผ์ด์ ์ค
Apache-2.0
