任务查询工具

一个基于Python的工具,用于解析和查询Obsidian vault中的任务,可作为CLI或MCP服务器使用。

  • by blackgold9
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 blackgold9/obsidian_mcp

使用说明

黑曜石任务MCP服务器

欢迎来到黑曜石任务MCP服务器!这个强大的基于Python的工具是您直接从黑曜石库解析和查询任务的终极解决方案。我们的工具专为与“黑曜石任务”插件格式完全兼容而设计,功能多样——可以将其用作快速查询的独立CLI,也可以用作与其他应用程序集成的MCP(模型上下文协议)服务器。

🚀 入门指南

准备好掌控你的任务了吗?以下是如何在几分钟内起床并跑步。

先决条件

  • Python 3.12或更高版本
  • 一个装满你任务的黑曜石金库

安装

  1. 克隆存储库

    git clone https://github.com/your-repo/obsidian-tasks-mcp-server.git
    cd obsidian-tasks-mcp-server
    
  2. 再进行

    我们建议使用 uv 以实现快速可靠的安装。

    # Install uv (if you haven't already)
    pip install uv
    
    # Sync dependencies
    uv sync
    

    或者,您可以使用 pip.

    pip install -r requirements.txt
    

💡 用法

设置完成后,您可以通过两种方式与任务交互:

1.命令行界面(CLI)

这 task_tool.py 该脚本提供了一个全面的CLI来查询您的任务。

语法

python3 task_tool.py <vault_path> query [OPTIONS]

例子

  • 查找所有打开的任务:

    python3 task_tool.py ~/Documents/MyVault query --status open
    
  • 查找高优先级任务:

    python3 task_tool.py ~/Documents/MyVault query --priority high
    
  • 查找过期任务:

    python3 task_tool.py ~/Documents/MyVault query --overdue
    
  • 按标签筛选:

    python3 task_tool.py ~/Documents/MyVault query --tag work
    

2.MCP服务器

这 mcp_server.py 该脚本运行FastMCP服务器,将任务查询功能作为工具公开。

启动服务器

# Set your vault path as an environment variable
export OBSIDIAN_VAULT_PATH=~/Documents/MyVault

# Run the server
python3 mcp_server.py

或者,使用 uv:

uv run fastmcp run mcp_server.py

👨‍💻 面向开发者

想贡献或了解内部运作吗?以下是你需要知道的。

测试

  • 运行所有测试:

    python3 -m unittest discover
    
  • 运行端到端CLI测试:

    ./test_cli.sh
    

项目架构

  • task_tool.py:核心解析逻辑和CLI。
  • mcp_server.py:MCP服务器暴露 query_tasks 工具。
  • test_*.py:解析器和服务器的单元测试。
  • test_vault/:用于测试的样品库。

代码的风格

  • PEP 8 Python风格指南
  • 谷歌风格文档字符串
  • 键入提示

许可证

[在此处添加您的许可证]

贡献

[在此处添加贡献指南]