Token导航 LogoToken导航TokenDH.com
Reminder MCP logo
AI代理未说明官方级别未说明来源级核验

Reminder MCP

MCP Server

一款为AI助手提供可靠提醒、持久记忆、任务跟踪和活动历史的MCP服务器,兼容任何MCP客户端。

工具数

20

提示词数

0

GitHub Stars

0

资源数

0
记忆存储TypeScriptClaude自托管Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sj7trunks

提供方

sj7trunks

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

提醒MCP服务器

MCP(模型上下文协议)服务器,为AI助手提供可靠的提醒、持久内存、任务跟踪和活动历史。专为 (iMessage AI机器人),与任何MCP客户端兼容。

描述

Poke是一款出色的人工智能助手,但其内置的提醒、任务和记忆功能存在可靠性问题。我没有等待修复,而是在以下工具的帮助下构建了这个MCP服务器 克劳德代码 我自己来处理这些能力。结果是一个自托管的堆栈,使Poke(以及任何兼容MCP的客户端)变得更加有用。

该服务器通过Streamable HTTP公开了20个MCP工具,并由一个多用户web仪表板支持,用于通过浏览器管理所有内容。它支持SQLite进行简单设置,支持PostgreSQL进行生产,并具有可选的Authentik SSO集成。

特性

  • 预定提醒 --具有自然语言解析的基于时间的通知(“明天下午2点”,“30分钟后”)。当提醒触发时,Webhook会推送通知。
  • 持久内存 --按需存储和召回信息。基于标签的组织,具有全文搜索和可选语义搜索(OpenAI嵌入+Redis)。支持作用域内存(个人、团队、应用程序、全局),具有写时数据消除和会话摘要链的显式替换功能。聊天范围的内存允许将内存与对话线程相关联,以实现上下文隔离(接受任何字符串ID格式——UUID、CUID等)。
  • 任务跟踪 --具有可配置签入间隔(默认5分钟)的长时间运行任务。定期发送webhook通知,直至完成。
  • 活动历史记录 --所有事件的完整审计日志。按时间范围、类型和操作进行查询,并提供日/周/月摘要。
  • Web仪表板 --React前端具有统计卡、30天活动图表(Recharts)、提醒日历视图和可搜索内存列表。
  • 团队与应用 --创建团队,添加成员,并在团队成员之间分享回忆。应用程序可以根据每个代理的知识划分给团队。
  • 多用户 -通过范围共享进行用户数据隔离。MCP客户端通过API密钥(用户或团队范围)进行身份验证,web前端使用JWT Cookie。第一个用户被自动提升为管理员。
  • SSO集成 --可选的Authentik通过Traefik转发身份验证。用户在首次SSO登录时自动创建。
  • API密钥管理 -从web UI创建和撤销API密钥。密钥是SHA-256散列的(从不以明文存储)。
  • 管理面板 --使用管理员角色切换进行用户管理。完整数据库备份(.json.gz 下载)并恢复。
  • 深色模式 --通过手动亮/暗/系统切换进行系统偏好检测。
  • 双数据库支持 --SQLite用于开发和简单部署,PostgreSQL用于生产。
  • Webhook通知 --当提醒触发或任务需要签到时,向Poke(或任何端点)推送通知。支持通过MCP工具为程序化消费者进行动态webhook注册(连续失败后自动注销)。

为什么这个项目有用

  • Poke的内置功能不可靠 --提醒并不总是会触发,记忆不一致,任务跟踪有限。此服务器用一个强大的自托管替代方案取代了所有这些。
  • 适用于任何MCP客户端 --没有被锁在口袋里。可与Claude Desktop、任何MCP兼容工具或附带的web仪表板配合使用。
  • 您拥有自己的数据 --具有完整备份/还原功能的自托管。没有供应商锁定,没有第三方数据存储。
  • 多用户就绪 --通过数据隔离、SSO和管理控件支持多个用户。为自己运行或与他人分享。
  • 生产级 --PostgreSQL、Docker、健康检查、Traefik集成和Authentik SSO。这不是玩具,正在生产中。

MCP工具(20)

工具说明
create_reminder安排提醒(支持自然语言时间)
list_reminders列出待处理或所有提醒
complete_reminder将提醒标记为已完成
cancel_reminder取消待处理的提醒
remember存储具有可选作用域、分类、标签、chat_id和替代项的内存
recall使用搜索/标签/范围/聊天_id过滤器跨范围检索内存
forget删除内存(基于范围的权限检查)
promote_memory将内存复制到不同的范围(例如,个人到团队)
list_scopes列出可用内存范围(个人、团队、应用程序、全局)
start_task开始跟踪长时间运行的任务
check_task获取特定任务的状态
list_tasks列出带有可选状态筛选器的任务
complete_task将任务标记为已完成
update_task更新任务状态或添加注释
register_webhook注册URL以接收推送通知(带有可选的API密钥和事件过滤器)
unregister_webhook删除已注册的webhook URL
list_webhooks列出此用户的所有已注册Webhook
get_pending_checkups获取所有需要登记的到期提醒和任务
get_activity按时间范围查询活动历史
get_summary获取最近活动的摘要

入门指南

选项1:独立使用SQLite

最简单的设置——不需要外部数据库。

# Clone and build
git clone https://github.com/sj7trunks/reminder-mcp.git
cd reminder-mcp
npm install
npm run build

# Generate secrets
export API_KEY=$(openssl rand -hex 32)
export SECRET_KEY=$(openssl rand -hex 32)

# Run in HTTP mode
API_KEY=$API_KEY SECRET_KEY=$SECRET_KEY npm run start:http

# Verify
curl http://localhost:3000/health

SQLite数据库在以下位置自动创建 ./data/reminder.db.

对于本地使用Claude Desktop(stdio模式),请添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "reminder": {
      "command": "node",
      "args": ["/path/to/reminder-mcp/dist/index.js"],
      "env": {
        "DATABASE_PATH": "/path/to/reminder-mcp/data/reminder.db",
        "DEFAULT_TIMEZONE": "America/Los_Angeles"
      }
    }
  }
}

选项2:使用PostgreSQL和Docker进行生产

# Generate secrets
export API_KEY=$(openssl rand -hex 32)
export SECRET_KEY=$(openssl rand -hex 32)
export PG_PASSWORD=$(openssl rand -hex 16)

echo "Save these values:"
echo "  API_KEY=$API_KEY"
echo "  SECRET_KEY=$SECRET_KEY"
echo "  PG_PASSWORD=$PG_PASSWORD"

添加到您的 docker-compose.yml:

services:
  reminder-mcp-postgres:
    image: postgres:16-alpine
    container_name: reminder-mcp-postgres
    restart: unless-stopped
    environment:
      - POSTGRES_USER=reminder
      - POSTGRES_PASSWORD=${PG_PASSWORD}
      - POSTGRES_DB=reminder_mcp
    volumes:
      - reminder-mcp-pg-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U reminder -d reminder_mcp"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s

  reminder-mcp:
    build:
      context: ./reminder-mcp
      dockerfile: Dockerfile
    container_name: reminder-mcp
    restart: unless-stopped
    environment:
      - NODE_ENV=production
      - PORT=3000
      - HOST=0.0.0.0
      - API_KEY=${API_KEY}
      - SECRET_KEY=${SECRET_KEY}
      - DATABASE_TYPE=postgres
      - DATABASE_URL=postgresql://reminder:${PG_PASSWORD}@reminder-mcp-postgres:5432/reminder_mcp
      - DEFAULT_TIMEZONE=America/Los_Angeles
      # Optional: Push notifications
      # - WEBHOOK_URL=https://poke.com/api/v1/inbound-sms/webhook
      # - WEBHOOK_API_KEY=your-poke-api-key
      # Optional: Authentik SSO
      # - AUTHENTIK_HOST=https://your-authentik-domain.com
    depends_on:
      reminder-mcp-postgres:
        condition: service_healthy
    ports:
      - "3000:3000"
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/health"]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 10s

volumes:
  reminder-mcp-pg-data:
    driver: local
docker compose up -d
curl http://localhost:3000/health

配置Poke

  1. 打开Poke>设置>集成>新集成
  2. 填写:

- 名字: Reminders - 服务器URL: https://your-domain.com/mcp - API密钥:您生成的API密钥

  1. 创建集成

对于推送通知(因此在提醒触发时向您发送Poke消息):

  1. 前往扑克>设置>高级并生成一个webhook API密钥
  2. WEBHOOK_URLWEBHOOK_API_KEY 在您的环境中

重要:Poke需要SSE(服务器发送事件)格式。配置您的MCP客户端以接受 text/event-stream 除了 application/json.

可选:语义搜索

使用OpenAI嵌入和Redis启用基于AI的语义搜索记忆:

# Set environment variables
export OPENAI_API_KEY=sk-...
export REDIS_URL=redis://localhost:6379

# Or add to docker-compose.yml
environment:
  - OPENAI_API_KEY=${OPENAI_API_KEY}
  - REDIS_URL=redis://redis:6379

语义搜索使用 text-embedding-3-small (1536维)存储在Redis中,具有向量相似性搜索功能。当创建或更新内存时,嵌入会在后台自动生成。

环境变量

变量必填默认描述
API_KEY是(HTTP)-种子API密钥(首次运行时哈希)
SECRET_KEY-JWT签名秘密
PORT没有3000HTTP服务器端口
HOST没有0.0.0.0HTTP服务器绑定地址
DATABASE_TYPE没有sqlitesqlitepostgres
DATABASE_PATH没有./data/reminder.dbSQLite文件路径
DATABASE_URL-PostgreSQL连接字符串
DEFAULT_TIMEZONE没有America/Los_Angeles默认时区
WEBHOOK_URL-推送通知端点
WEBHOOK_API_KEY没有-webhook的承载令牌
AUTHENTIK_HOST没有-SSO的身份验证基URL
OPENAI_API_KEY没有用于语义搜索的-OpenAI API键
REDIS_URL没有用于矢量存储(语义搜索)的Redis URL
LOG_LEVEL没有infodebug, info, warn, error

项目结构

reminder-mcp/
├── src/
│   ├── index.ts              # stdio transport entry point
│   ├── http.ts               # HTTP transport entry point (Express app)
│   ├── server.ts             # MCP server & tool registration
│   ├── config/
│   │   └── index.ts          # Zod-validated environment config
│   ├── types/
│   │   └── context.ts        # McpContext interface for scope/auth
│   ├── db/
│   │   ├── index.ts          # Knex connection (SQLite/PostgreSQL)
│   │   ├── migrations/       # Database migrations (001-013)
│   │   └── models/           # Zod schemas (User, ApiKey, Team, Memory, etc.)
│   ├── middleware/
│   │   └── auth.ts           # JWT, API key, Authentik SSO middleware
│   ├── routes/
│   │   ├── auth.ts           # Register, login, logout, session
│   │   ├── keys.ts           # API key management
│   │   ├── reminders.ts      # Reminder CRUD
│   │   ├── memories.ts       # Memory CRUD with search + scope filtering
│   │   ├── tasks.ts          # Task CRUD
│   │   ├── stats.ts          # Dashboard statistics
│   │   ├── admin.ts          # User management, backup/restore
│   │   ├── teams.ts          # Team CRUD + member management
│   │   └── applications.ts   # Application CRUD
│   ├── services/
│   │   ├── scheduler.ts      # Background job scheduler (60s poll)
│   │   ├── notifier.ts       # Webhook notifications (Poke format)
│   │   ├── timezone.ts       # Timezone conversion & parsing
│   │   ├── embedding.ts      # OpenAI embeddings (text-embedding-3-small)
│   │   └── embedding-worker.ts  # Background worker for generating embeddings
│   ├── tools/
│   │   ├── reminders.ts      # Reminder MCP tools
│   │   ├── memory.ts         # Memory MCP tools
│   │   ├── tasks.ts          # Task MCP tools
│   │   └── history.ts        # Activity query tools
│   └── resources/
│       └── status.ts         # Server status resource
├── frontend/
│   ├── src/
│   │   ├── main.tsx          # React entry point
│   │   ├── App.tsx           # Router with auth guards
│   │   ├── api/client.ts     # API client (fetch + credentials)
│   │   ├── components/
│   │   │   └── Layout.tsx    # App shell with nav & theme toggle
│   │   ├── contexts/
│   │   │   └── ThemeContext.tsx  # Dark/light/system theme
│   │   └── pages/
│   │       ├── Login.tsx     # Login form + SSO button
│   │       ├── Register.tsx  # Registration form
│   │       ├── Dashboard.tsx # Stats + activity chart
│   │       ├── Reminders.tsx # Calendar view
│   │       ├── Memories.tsx  # Searchable memory list with scope filter
│   │       ├── Teams.tsx     # Team management + members
│   │       ├── Settings.tsx  # API keys (user/team) + theme
│   │       └── Admin.tsx     # User mgmt + backup/restore
│   ├── vite.config.ts        # Vite config with dev proxy
│   └── tailwind.config.js    # Tailwind CSS config
├── Dockerfile                # Multi-stage Docker build
├── docker-compose.yml        # Standalone Docker setup
├── .env.example              # Environment variable template
├── CLAUDE.md                 # Development guide for AI assistants
└── LICENSE                   # MIT License

技术栈

  • 运行时:Node.js 20+TypeScript(ESM)
  • 主控程序: @modelcontextprotocol/sdk (流式HTTP传输)
  • 后端:Express 5、Knex.js、Zod
  • 前端:React 18、Vite、顺风CSS、React Query、Recharts
  • 数据库:SQLite(better-splite3)或PostgreSQL
  • 认证:JWT(jsonwebtoken)、bcrypt、SHA-256 API密钥哈希
  • 单点登录:Authentik通过Traefik转发身份验证

获取帮助

如果您遇到问题或有疑问:

学分

许可证

麻省理工学院——见 许可证.

安全通知

该项目是作为个人工具构建的,没有经过正式的安全审计。如果在生产环境中部署此功能:

  • 为以下对象生成强大、独特的价值 API_KEYSECRET_KEY (openssl rand -hex 32)
  • 对所有流量使用HTTPS(TLS)-永远不要通过纯HTTP公开API
  • 查看身份验证中间件(src/middleware/auth.ts)针对您的威胁模型
  • 保持依赖关系更新(npm audit)
  • 除了应用程序级身份验证外,还要考虑网络级访问控制(防火墙规则、VPN)
  • 管理员备份/还原端点可以导出和覆盖所有数据——谨慎限制管理员访问

目录标签

目录标签

记忆存储TypeScriptClaude自托管AI助手本地部署任务管理多用户支持

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP