Markdown管理服务

一个基于HTTP API的Obsidian Vault和Markdown文件管理服务,提供Vault统计、笔记管理、高级搜索和TODO管理等功能。

  • by huntkil
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 huntkil/mcp_js

使用说明

Markdown MCP服务器

管理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服务器框架
  • 黑曜石经理:Obsidian Vault管理类
  • 降价管理器:Markdown文件管理类
  • 灰质:前台파싱
  • 通配符:文件模式匹配

📦 安装和运行

1.安装依赖性

npm install

2.运行服务器

npm start

服务器 http://localhost:8080在中运行。

🌐 API端点

基本信息

  • GET / -检查服务器状态
  • GET /tools -可用工具列表

黑曜石툴

  • 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 -创建每日笔记

降价툴

  • 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.5 MB
  • 单词总数:172203个
  • 链接总数:1958个
  • 标签总数:1006个

主要类别

  • Health(健康):30个节点
  • 9.Diary(日记):60个节点
  • 项目:16个节点
  • 3.研究/数据科学: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管理

🤝 贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

MIT许可证

🔗 相关链接