本项目是一个基于 Model Context Protocol (MCP) 标准构建的服务器示例,使用 TypeScript 和 FastMCP 库实现。它通过暴露一系列工具,允许大型语言模型(LLM)或其他兼容的AI客户端以结构化方式与待办事项列表后端进行交互。

项目简介

该MCP服务器充当AI客户端与一个独立的待办事项RESTful API之间的中介。它不直接管理数据,而是将AI的请求转化为对现有Todo API的调用,并将API响应格式化回AI可理解的格式。这展示了一种将现有业务能力通过MCP暴露给AI的有效模式。

主要功能点

本MCP服务器通过工具形式提供以下功能:

  • 添加待办事项 (add_todos): 允许AI创建新的待办事项,提供标题和描述。
  • 搜索待办事项 (search_todos): 允许AI根据标题关键词搜索现有待办事项,并返回匹配项的列表(包含标识符、标题、描述等)。
  • 更新待办事项 (update_todos): 允许AI根据其唯一标识符更新现有待办事项的标题和描述。使用此工具前,AI通常需要先使用'search_todos'工具获取待办事项的标识符。
  • 移除待办事项 (remove_todos): 允许AI根据其唯一标识符标记待办事项为非活动状态(逻辑删除)。使用此工具前,AI通常需要先使用'search_todos'工具获取待办事项的标识符。

安装步骤

本项目包含多个子项目(MCP服务器本身、后端API、数据库库)。完整的运行需要启动数据库、后端API以及MCP服务器。

  1. 前提条件: 确保已安装 Node.js、Docker (用于PostgreSQL和Redis) 或单独安装 PostgreSQL 和 Redis 服务。
  2. 克隆仓库: 获取项目代码。
  3. 数据库设置:
    • 进入 'Todo_Db_Library' 项目目录。
    • 确保 PostgreSQL 数据库已启动并配置正确的连接信息(参见 '.env' 文件)。
    • 运行数据库迁移命令来创建必要的表结构(具体命令请参考项目文档,通常涉及 'npm install' 和 'npm run typeorm:migrate')。
  4. 运行后端API:
    • 进入 'Todo_API' 项目目录。
    • 确保 Redis 服务已启动并配置正确的连接信息(参见 '.env' 文件)。
    • 安装依赖 ('npm install') 并启动API服务器(通常是 'npm run dev')。保持此服务运行。
  5. 运行MCP服务器:
    • 进入 'MCP_Server' 项目目录。
    • 安装依赖 ('npm install')。
    • 配置 '.env' 文件,尤其是 'BASE_URL'(指向运行中的Todo API地址,默认为 'http://localhost:3000')和 'ENCRYPTION_KEY'。
    • 启动MCP服务器(通常是 'npm run start',项目示例中使用 'npm run mcp-inspector' 启动并提供一个测试界面)。保持此服务运行。

服务器配置 (供MCP客户端参考)

要将此MCP服务器连接到MCP客户端(如Claude Desktop),您需要在客户端配置中添加一个服务器条目。客户端通常需要以下信息来启动并连接到此MCP服务器(通过Stdio传输):

  • 服务器名称 (name): 一个标识服务器的名称(例如:"Todo MCP Server")。
  • 启动命令 (command): 客户端在本地执行以启动此MCP服务器进程的命令(例如:'npx')。
  • 命令参数 (args): 传递给启动命令的参数(例如:'start',对应于MCP服务器项目的 'package.json' 中定义的启动脚本)。
  • 工作目录 (cwd): 客户端执行启动命令时的工作目录,应设置为MCP服务器项目('MCP_Server')的根目录。

请参考您的MCP客户端文档,了解如何使用上述信息进行配置。

基本使用方法

  1. 完成上述安装和运行步骤,确保数据库、Todo API和Todo MCP服务器都已成功启动。
  2. 在支持MCP协议的AI客户端中,添加并配置连接到此本地运行的Todo MCP Server。
  3. 一旦客户端成功连接并发现了服务器提供的工具,您就可以通过自然语言向AI提出与待办事项管理相关的请求。例如:
    • "请帮我添加一个待办事项,标题是:去超市买菜,描述是:购买牛奶、鸡蛋和面包。"
    • "查找所有关于开会的待办事项。"
    • "请更新标识符为 [搜索到的标识符] 的待办事项,将标题改为:准备会议议程。"
    • "请移除标识符为 [搜索到的标识符] 的待办事项。"
  4. AI客户端将识别您的意图,调用相应的MCP工具,MCP服务器会与Todo API交互,然后将结果反馈给AI,AI再以自然语言形式回复您。

信息

分类

AI与计算