使用说明

项目简介

Omnispindle 是一个基于 FastMCP (Fast Model Context Protocol) 框架构建的 Todo 服务器,旨在为 LLM (大型语言模型) 客户端提供结构化的上下文信息和功能。作为一个 MCP 服务器,Omnispindle 专注于任务管理,通过标准化的 MCP 协议与客户端进行通信,提供创建、查询、更新、删除待办事项的功能,并集成了 AI 助手和智能调度能力,增强任务管理的智能化和自动化水平。

主要功能点

  • 任务管理 (Resources): 提供创建、查询、更新、删除待办事项的功能,支持设置任务描述、项目、优先级、目标代理人、状态等属性。数据存储在 MongoDB 数据库中。
  • AI 助手 (Tools): 集成 AI 助手工具,提供以下智能功能:
    • 智能建议: 基于已完成的任务分析模式,为用户提供任务自动化和优先级调整建议。
    • 特定任务建议: 针对特定待办事项,提供优先级建议和预计完成时间,并列出相似的已完成任务。
  • 智能调度 (Tools): 提供智能任务调度工具:
    • 截止日期建议: 根据任务优先级和内容,智能建议合理的截止日期。
    • 时间槽建议: 根据历史完成模式和任务优先级,为任务建议最佳完成时间槽。
    • 每日日程生成: 基于待办事项,生成优化的每日日程,合理安排任务执行顺序和时间。
  • MQTT 集成 (Tools): 支持通过 MQTT 协议发布和获取消息,用于系统状态监控和外部系统集成。
  • 灵活的部署方式: 支持 SSE (Server-Sent Events) 传输协议,方便与各种 MCP 客户端集成。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/DanEdens/Omnispindle.git
    cd Omnispindle
  2. 安装 uv: (如果尚未安装)

    curl -LsSf https://astral.sh/uv/install.sh | sh
  3. 创建并激活虚拟环境:

    uv venv
    source .venv/bin/activate  # On Unix/macOS
    # 或
    .venv\Scripts\activate  # On Windows
  4. 安装依赖:

    uv pip install -r requirements.txt
  5. (可选) 安装开发依赖:

    uv pip install -r requirements-dev.txt
  6. 配置环境变量: 创建 '.env' 文件,并配置 MongoDB 连接信息:

    MONGODB_URI=mongodb://localhost:27017
    MONGODB_DB=swarmonomicon
    MONGODB_COLLECTION=todos

    注意: 您可能需要根据实际 MongoDB 服务器的配置修改 'MONGODB_URI',并根据需要调整数据库和集合名称。

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 Omnispindle 服务器:

{
  "serverName": "OmnispindleTodoServer",
  "command": "python",
  "args": ["-m", "src.fastmcp_todo_server"]
  // "command": "python"  // 启动服务器的命令,这里使用 python 解释器
  // "args": ["-m", "src.fastmcp_todo_server"] // 启动参数,指定运行 src.fastmcp_todo_server 模块
}

请注意:

  • 'serverName' 可以自定义,用于在客户端标识服务器。
  • 'command' 和 'args' 必须根据您的 Python 环境和项目结构进行调整,确保客户端能够正确启动 Omnispindle 服务器进程。
  • 确保您的 MCP 客户端支持 Stdio 传输协议,Omnispindle 服务器默认使用 Stdio 进行通信。

基本使用方法

  1. 启动服务器: 在终端中,进入项目根目录,并运行以下命令启动 Omnispindle 服务器:

    python -m src.fastmcp_todo_server

    服务器成功启动后,将监听来自 MCP 客户端的请求。

  2. 使用 MCP 客户端与服务器交互: 您可以使用任何支持 MCP 协议的客户端与 Omnispindle 服务器进行交互。例如,可以使用 'fastmcp' Python 客户端库。以下是一个使用 Python 客户端添加待办事项的示例:

    import asyncio
    from fastmcp import FastMCPClient
    
    async def main():
        client = FastMCPClient() # 默认连接到本地 Stdio 服务器
        response = await client.call_tool("add_todo", {
            "description": "Example todo from MCP client",
            "project": "Test Project",
            "priority": "medium"
        })
        print(response)
    
    if __name__ == "__main__":
        asyncio.run(main())

    更多工具调用方法,请参考 'test_client.py' 和 'stdiomcpexample.py' 文件中的示例代码。您可以根据需要调用 'add_todo', 'query_todos', 'get_todo_suggestions', 'suggest_deadline' 等工具,利用 Omnispindle 服务器提供的各种功能。

信息

分类

生产力应用