待办事项服务器

一个基于Model Context Protocol (MCP)和FastMCP构建的简单待办事项管理服务器,适用于开发和测试环境。

  • by atiohaidar
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 atiohaidar/belajar-mcp-todolist

使用说明

MCP待办事项列表服务器

介绍

MCP Todo List Server 是一个简单的服务器,使用 Model Context Protocol (MCP) 和 FastMCP 构建。该服务器允许您通过各种可用工具管理任务列表(todo)。所有数据都存储在内存中(非持久性),适用于开发和测试。

主要特点

  • 添加新全部
  • 查看全部
  • 根据ID删除所有内容
  • 更新judul todo
  • 将所有 todo 标题中的“我”替换为“我”(例如批量更新)

安装和运行

  1. 请确保您安装了 Python 3.8+。
  2. 安装依赖项:
    pip install fastmcp pydantic
    
  3. 运行服务器 :
    python todo_server.py
    
    服务器将使用stdio传输进行开发/测试。

可用的工具

1.全部添加

将新东西添加到列表。

参数:

  • title (string, mandatory) 全部标题
  • date (字符串,可选): 日期 todo (自由格式,例如“2025-09-21”)

使用范例:

  • 添加标题“学习Python”没有日期
  • 添加日期为“2025-09-21”的“10:00 会议”

2. 所有列表

显示所有可用的东西。

参数: 没有

使用范例:

  • 查看当前全部

3.删除_todo

根据ID删除所有内容。

参数:

  • todo_id (integer, mandatory) 要删除的 todo ID

使用范例:

  • 以 ID 1 删除所有内容

4.更新待办事项

根据 ID 更新 todo 标题。

参数:

  • todo_id (integer, mandatory) 要更新的 todo ID
  • new_title (string, mandatory) 新标题

使用范例:

  • 将 Todo ID 2 的标题更改为“夜间运动”

5. replace_我_我的

将所有 todo 标题中的“我”替换为“我”(例如用于批量更新的工具)。

参数: 没有

使用范例:

  • 运行以替换所有 todo 标题中的单词

使用会话示例

  1. 添加一些东西:

    • add_todo(“早上起床”, “2025-09-21”)
    • 添加一切(“萨拉潘”)
  2. 查看全部:

    • list_todos() 显示所有列表
  3. 更新一:

    • update_todo(1,“早上6点起床”)
  4. 删除不必要的:

    • delete_todo(2)
  5. 如果有“我”这个词,请替换为:

    • replace_我_我的()

注释

  • 所有数据都存储在内存中,因此在服务器重新启动时会丢失。
  • ID todo 从 1 开始,自动递增。
  • 这些工具旨在与MCP客户端集成,如GitHub Copilot或其他AI工具。

故障排除

  • 如果服务器没有运行,请确保依赖关系正确安装。
  • 对于开发,使用代码中的stdio传输。

如果您有任何问题或需要额外的功能,请联系开发人员!

技术文件

如何制作MCP

MCP Todo List Server使用FastMCP构建,这是一个用于快速创建MCP服务器的Python库。以下是创建类似MCP的基本步骤:

  1. 设置项目:

    • 创建一个新的项目文件夹。
    • 创建主 Python 文件(例如 todo_server.py).
  2. 安装依赖关系:

    • fastmcp对于MCP服务器框架。
    • pydantic用于验证和数据模型。
  3. 代码结构:

    • 需要导入库。
    • 使用Pydantic定义数据模型(例如 TodoItem).
    • 创建实例 FastMCP 服务器名称。
    • 装饰功能与 @mcp.tool() 它可以被称为工具。
    • 运行服务器与 mcp.run(transport="stdio").
  4. 测试:

    • 通过 MCP 客户端(如 GitHub Copilot 或其他 AI 工具)运行服务器和测试工具。

如何读取这个代码

代码 todo_server.py 结构简单易读。以下是每个部分的解释:

  • 进口(巴里斯1-4):

    • asyncio用于异步操作(虽然这里没有明确使用)。
    • typing对于类型提示,如 Optional, List.
    • pydantic对于数据模型。
    • mcp.server.fastmcp:进口 FastMCP 丹 Context (这里没有使用上下文)
  • TodoItem型号(Baris 7-10):

    • 定义 todo 结构的 Pydantic 类: id (int), title (str), date (可选页面)。
    • 用于验证输入和输出。
  • 数据存储(Baris 13):

    • todos: List[TodoItem] = []简单的列表,以存储在内存中的所有数据. 不持久, 适合演示.
  • 服务器实例(Baris 16):

    • mcp = FastMCP(name="TodoServer")创建名为“TodoServer”的 MCP 服务器实例。
  • 工具(Baris 19-54):

    • 每个工具都被定义为一个装饰器的功能。 @mcp.tool().
    • add_todo创建新 ID,创建 TodoItem,添加到列表,返回项目。
    • list_todos:返回seluruh列表待办事项。
    • delete_todo过滤列表:根据ID删除,返回删除的数量。
    • update_todo:循环cari ID、更新标题、返回状态。
    • replace_aku_to_saya循环所有 todos,将标题中的“我”替换为“我”,返回已修改的金额。
  • 主要执行(Baris 57-60):

    • if __name__ == "__main__":运行 stdio 传输服务器进行测试。

这些代码是为了什么

每个代码部分都有构建功能性MCP服务器的特定目的:

  • Pydantic模型(TodoItem): 确保所有数据都是一致和有效的。 id unik, title wajib, date 可选。
  • 列表 todos: 简单的数据存储。易于访问和修改,但在重新启动时丢失(用于演示)。
  • FastMCP实例: 将工具连接到MCP协议的主要框架,允许与AI客户端集成。
  • 工具:
    • add_todo添加新项目,使用自动ID。
    • list_todos查看当前所有数据。
    • delete_todo删除特定项目。
    • update_todo更改项目标题。
    • replace_aku_to_saya批量操作示例,显示如何同时修改多个项目。
  • 主模块: 进入点运行服务器,使用stdio进行本地通信。

总的来说,这些代码演示了如何构建一个简单的MCP服务器来管理任务,可以通过持久数据库,身份验证或其他工具等功能进行扩展。

潘端:https://github.com/modelcontextprotocol/python-sdk

来自ChatGPT的代码和Github Copilot的帮助下的jgua和Github Copilot的帮助下的文档