huntkil/mcp_js
3.2
If you are the rightful owner of mcp_js and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Markdown MCP Server is a Model Context Protocol server designed to manage Obsidian Vaults and Markdown files, providing access to all Obsidian/Markdown functionalities via an HTTP API.
Markdown MCP Server
Obsidian Vault์ Markdown ํ์ผ์ ๊ด๋ฆฌํ๋ Model Context Protocol (MCP) ์๋ฒ์ ๋๋ค. HTTP API๋ฅผ ํตํด ๋ชจ๋ Obsidian/Markdown ๊ธฐ๋ฅ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๐ ์ฃผ์ ๊ธฐ๋ฅ
๐ Obsidian Vault ๊ด๋ฆฌ
- Vault ํต๊ณ ์์ฑ: ์ ์ฒด ๋ ธํธ ์, ํฌ๊ธฐ, ๋จ์ด ์, ๋งํฌ ์ ๋ฑ
- ๋ ธํธ ๋ชฉ๋ก ์กฐํ: ์นดํ ๊ณ ๋ฆฌ๋ณ, ์ต๊ทผ ์์ /์์ฑ ์ ์ ๋ ฌ
- ๋งํฌ ์ถ์ถ: ๋ด๋ถ ๋งํฌ, ์ธ๋ถ ๋งํฌ, ์๋ฒ ๋, ํ๊ทธ ์ถ์ถ
- ๋ฐฑ๋งํฌ ์ฐพ๊ธฐ: ํน์ ๋ ธํธ๋ฅผ ์ฐธ์กฐํ๋ ๋ค๋ฅธ ๋ ธํธ๋ค
- ํ๊ทธ ๊ด๋ฆฌ: ๋ชจ๋ ํ๊ทธ ๋ชฉ๋ก, ํ๊ทธ๋ณ ๋ ธํธ ๊ฒ์
๐ ๋ฐ์ผ๋ฆฌ ๋ ธํธ & ํ ํ๋ฆฟ
- ๋ฐ์ผ๋ฆฌ ๋ ธํธ ์์ฑ: ๋ ์ง๋ณ ์๋ ๋ ธํธ ์์ฑ
- ํ ํ๋ฆฟ ๊ด๋ฆฌ: ์์ฑ, ์กฐํ, ๋ชฉ๋ก, ์ญ์
- ๋ฐ์ผ๋ฆฌ ๋ ธํธ ๋ชฉ๋ก: ๊ธฐ๊ฐ๋ณ ๋ฐ์ผ๋ฆฌ ๋ ธํธ ์กฐํ
๐ ๊ณ ๊ธ ๊ฒ์
- Frontmatter ๊ธฐ๋ฐ ๊ฒ์: ๋ฉํ๋ฐ์ดํฐ ํ๋๋ก ๋ ธํธ ๊ฒ์
- ๋ด์ฉ ๊ฒ์: ํ ์คํธ, ํค์๋, ์ ๊ท์ ๊ฒ์
- ํ์ผ๋ช ํจํด ๊ฒ์: ์์ผ๋์นด๋, ์ ๊ท์ ์ง์
๐ TODO ๊ด๋ฆฌ
- TODO ์ถ์ถ: ๋ชจ๋ ๋ ธํธ์์ TODO ์์ ์ถ์ถ
- TODO ์ถ๊ฐ: ํน์ ๋ ธํธ์ TODO ์์ ์ถ๊ฐ
- TODO ๊ฒ์: ์ํ๋ณ, ์ฐ์ ์์๋ณ ๊ฒ์
๐ ํ์ผ ๊ด๋ฆฌ
- ํ์ผ ๋ชฉ๋ก: ๋๋ ํ ๋ฆฌ๋ณ, ์ฌ๊ท์ ๊ฒ์
- ํ์ผ ํต๊ณ: ํฌ๊ธฐ, ๋จ์ด ์, ๋งํฌ ์ ๋ฑ
- ์ฒจ๋ถํ์ผ ๊ด๋ฆฌ: ์ด๋ฏธ์ง, PDF ๋ฑ ์ฒจ๋ถํ์ผ ๋ชฉ๋ก
๐ ๏ธ ๊ธฐ์ ์คํ
- Node.js: ์๋ฒ ๋ฐํ์
- Express.js: HTTP ์๋ฒ ํ๋ ์์ํฌ
- ObsidianManager: Obsidian Vault ๊ด๋ฆฌ ํด๋์ค
- MarkdownManager: Markdown ํ์ผ ๊ด๋ฆฌ ํด๋์ค
- gray-matter: Frontmatter ํ์ฑ
- glob: ํ์ผ ํจํด ๋งค์นญ
๐ฆ ์ค์น ๋ฐ ์คํ
1. ์์กด์ฑ ์ค์น
npm install
2. ์๋ฒ ์คํ
npm start
์๋ฒ๊ฐ http://localhost:8080
์์ ์คํ๋ฉ๋๋ค.
๐ API ์๋ํฌ์ธํธ
๊ธฐ๋ณธ ์ ๋ณด
GET /
- ์๋ฒ ์ํ ํ์ธGET /tools
- ์ฌ์ฉ ๊ฐ๋ฅํ ํด ๋ชฉ๋ก
Obsidian ํด
POST /tools/obsidian/getAllTags
- ๋ชจ๋ ํ๊ทธ ๋ชฉ๋กPOST /tools/obsidian/generateVaultStats
- Vault ํต๊ณPOST /tools/obsidian/getRecentlyModifiedNotes
- ์ต๊ทผ ์์ ๋ ๋ ธํธPOST /tools/obsidian/getRecentlyCreatedNotes
- ์ต๊ทผ ์์ฑ๋ ๋ ธํธPOST /tools/obsidian/extractTodos
- TODO ์์ ์ถ์ถPOST /tools/obsidian/extractLinks
- ๋ ธํธ์์ ๋งํฌ ์ถ์ถPOST /tools/obsidian/createDailyNote
- ๋ฐ์ผ๋ฆฌ ๋ ธํธ ์์ฑ
Markdown ํด
POST /tools/markdown/listFiles
- ํ์ผ ๋ชฉ๋ก ์กฐํPOST /tools/markdown/searchContent
- ๋ด์ฉ ๊ฒ์POST /tools/markdown/manageFrontmatter
- Frontmatter ๊ด๋ฆฌ
๐ ์ฌ์ฉ ์์
1. ์๋ฒ ์ํ ํ์ธ
curl http://localhost:8080
2. Vault ํต๊ณ ๊ฐ์ ธ์ค๊ธฐ
curl -X POST http://localhost:8080/tools/obsidian/generateVaultStats \
-H "Content-Type: application/json" \
-d '{}'
3. ์ต๊ทผ ์์ ๋ ๋ ธํธ ๋ชฉ๋ก
curl -X POST http://localhost:8080/tools/obsidian/getRecentlyModifiedNotes \
-H "Content-Type: application/json" \
-d '{"days": 7, "limit": 10}'
4. ํน์ ์นดํ ๊ณ ๋ฆฌ์ ํ์ผ ๋ชฉ๋ก
curl -X POST http://localhost:8080/tools/markdown/listFiles \
-H "Content-Type: application/json" \
-d '{"directory": "Health", "recursive": true}'
5. ๋ด์ฉ ๊ฒ์
curl -X POST http://localhost:8080/tools/markdown/searchContent \
-H "Content-Type: application/json" \
-d '{"query": "๋ง๋ผํค", "caseSensitive": false}'
6. TODO ์์ ์ถ์ถ
curl -X POST http://localhost:8080/tools/obsidian/extractTodos \
-H "Content-Type: application/json" \
-d '{"status": "pending"}'
๐ง ์ค์
ํ๊ฒฝ ๋ณ์
BASE_PATH
: Obsidian Vault ๊ฒฝ๋ก (๊ธฐ๋ณธ๊ฐ:/Users/gukho/Library/Mobile Documents/iCloud~md~obsidian/Documents/My Card
)PORT
: ์๋ฒ ํฌํธ (๊ธฐ๋ณธ๊ฐ: 8080)
์์
export BASE_PATH="/path/to/your/obsidian/vault"
export PORT=3000
npm start
๐ ํ์ฌ Vault ํต๊ณ
- ์ด ๋ ธํธ ์: 332๊ฐ
- ์ด ํฌ๊ธฐ: 1.5MB
- ์ด ๋จ์ด ์: 172,203๊ฐ
- ์ด ๋งํฌ ์: 1,958๊ฐ
- ์ด ํ๊ทธ ์: 1,006๊ฐ
์ฃผ์ ์นดํ ๊ณ ๋ฆฌ
- Health (๊ฑด๊ฐ): 30๊ฐ ๋ ธํธ
- 9. Diary (์ผ๊ธฐ): 60๊ฐ ๋ ธํธ
- Projects: 16๊ฐ ๋ ธํธ
- 3. Study/Data Science: 25๊ฐ ๋ ธํธ
๐๏ธ ํ๋ก์ ํธ ๊ตฌ์กฐ
mcp_js/
โโโ src/
โ โโโ index.js # ์๋ฒ ์ง์
์
โ โโโ server.js # Express.js HTTP ์๋ฒ
โ โโโ ObsidianManager.js # Obsidian Vault ๊ด๋ฆฌ
โ โโโ MarkdownManager.js # Markdown ํ์ผ ๊ด๋ฆฌ
โโโ tests/ # ํ
์คํธ ํ์ผ๋ค
โโโ package.json
โโโ README.md
๐งช ํ ์คํธ
npm test
๐ ๊ฐ๋ฐ ํ์คํ ๋ฆฌ
v1.0.0 (2025-07-09)
- โ MCP SDK ๊ธฐ๋ฐ ์๋ฒ ๊ตฌํ
- โ HTTP ๊ธฐ๋ฐ ์๋ฒ๋ก ์ ํ (Express.js)
- โ ๋ชจ๋ Obsidian/Markdown ๊ธฐ๋ฅ API ๋ ธ์ถ
- โ ์ค์๊ฐ Vault ํต๊ณ ๋ฐ ๋ ธํธ ๊ด๋ฆฌ
- โ TODO ๊ด๋ฆฌ, ๋ฐ์ผ๋ฆฌ ๋ ธํธ, ํ ํ๋ฆฟ ๊ธฐ๋ฅ
- โ ๊ณ ๊ธ ๊ฒ์ ๋ฐ Frontmatter ๊ด๋ฆฌ
๐ค ๊ธฐ์ฌํ๊ธฐ
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
๐ ๋ผ์ด์ ์ค
MIT License