元数据查询服务

一个通过前端元数据查询Markdown文件的服务,专为Obsidian库和其他基于Markdown的知识库设计。

  • by caffeinatedwes
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 caffeinatedwes/markdown-frontmatter-mcp

使用说明

markdown frontmatter mcp

A. 模型上下文协议(MCP) 通过前端元数据查询Markdown文件的服务器。专为黑曜石拱顶和其他基于Markdown的知识库而设计。

问题

你有一个Markdown知识库(黑曜石等),前面的内容如下:

---
created: 2025-12-09
updated: 2025-12-11
tags: [ai-systems, strategy]
---

你想问一个AI: “我最近在想什么[X]?”

现有的工具可以按关键字搜索或进行语义搜索,但都不允许您按以下方式进行查询 前端元数据 --按标签和最近度过滤。

解决方案

此MCP服务器公开了一个工具: query_recent_notes

query_recent_notes(
  tags: ["ai-systems"],     # Filter by these tags (matches ANY)
  days: 7,                  # How far back to look
  folders: ["thoughts"],    # Which folders to search
  limit: 10                 # Max results
)

退货:

  • 文件路径
  • 标题(来自H1或文件名)
  • 标签
  • 创建/更新日期
  • 摘录(前~200个字符)

安装

来自PyPI(即将推出)

pip install markdown-frontmatter-mcp

来源

git clone https://github.com/caffeinatedwes/markdown-frontmatter-mcp
cd markdown-frontmatter-mcp
pip install -e .

配置

环境变量

集 KB_PATH 指向您的知识库:

export KB_PATH=/path/to/your/obsidian/vault

MCP客户端配置

打字思维

添加到MCP配置中:

{
  "mcpServers": {
    "markdown-kb": {
      "command": "python3",
      "args": ["/path/to/markdown-frontmatter-mcp/src/server.py"],
      "env": {
        "KB_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

克劳德桌面

增添 ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "markdown-kb": {
      "command": "python3",
      "args": ["/path/to/markdown-frontmatter-mcp/src/server.py"],
      "env": {
        "KB_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

使用示例

配置后,您可以询问AI:

“了解我最近对人工智能系统的看法”

AI将呼叫:

query_recent_notes(tags=["ai-systems"], days=7)

“我一直在做什么个人成长方面的工作?”

query_recent_notes(tags=["personal-growth", "therapy"], days=14)

“告诉我我在想什么”

query_recent_notes(days=3, limit=5)

前线事务要求

为了使文件可查询,它们需要使用YAML front matter:

  • created 或 date:创建注释时(YYYY-MM-DD)
  • updated (可选):上次有意义编辑的时间(YYYY-MM-DD)
  • tags (可选):用于过滤的标签列表

例子:

---
created: 2025-12-09
updated: 2025-12-11
tags:
  - ai-systems
  - knowledge-management
---

# My Note Title

Content here...

运作原理

  1. 浏览知识库中的指定文件夹
  2. 从每个文件中解析YAML前端内容 .md 文件
  3. 筛选条件:
    • 日期: created 或 updated 在...之内 days 窗口
    • 标签:匹配任何指定的标签
  4. 返回按最近触摸次数排序的结果

跳过目录

服务器会自动跳过:

  • .obsidian
  • .git
  • .smart-env
  • .versiondb
  • node_modules
  • 任何以开头的目录 .

发展

本地测试

# Set your KB path
export KB_PATH=~/your-obsidian-vault

# Run the server directly (for testing)
python3 src/server.py

然后通过stdin发送JSON-RPC消息:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"query_recent_notes","arguments":{"tags":["ai-systems"],"days":7}}}

许可证

麻省理工学院