Token导航 LogoToken导航

MCP Server · 日程管理

Pregon (Marko Teixido)

Pregón是一个智能学术日历管理系统,专为Villa Mercedes国立大学设计,通过AI和MCP Server实现自动化管理,支持Discord、WhatsApp和Google Calendar的多渠道事件分发。

stdio官方级别未说明来源级核验工具 0
PythonClaude事件管理

快速开始

作者 / 组织
MarkoTeixido
提供方
MarkoTeixido
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Pregon (Marko Teixido) 属于日程管理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

日程管理

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

Pregón

Sistema inteligente de calendario académico para la Universidad Nacional de Villa Mercedes, potenciado por IA y MCP Server.

!

📝 关于项目

Pregon 这是一个多渠道系统,自动化了UNVIME学术日历的管理。它通过Discord、WhatsApp和Google Calendar提取、处理和分发学术活动,并得到人工智能和现代MCP架构的支持。

🎯 目标

创建一个平台:

  • 智能:ia与谷歌双子座2.5 Flash的对话
  • 多肛门:不和谐,WhatsApp
  • 莫德纳:MCP服务器(模型上下文协议)
  • 自动的智能缓存网页抓取
  • 可升级:模块化和专业架构
  • 生产:CI/CD、Docker、自动化测试

🖼️ 预览

!

✨ 特点

🤖 人工智能

  • 谷歌双子座2.5 Flash:最先进的对话模式
  • NLP查询解析器:用自然语言处理问题
  • 学术背景:了解特定的大学术语
  • 智能过滤:按日期、类别、事件类型搜索
  • 适应性反应:根据频道调整色调和格式

🔌 MCP服务器(模型上下文协议)

  • 建筑标准:兼容MCP支持的任何LLM
  • 6专业工具:

- get_eventos_semana:查询未来7天的活动 - buscar_eventos:具有多个过滤器的高级搜索 - get_proximos_examenes:仅按日期范围过滤考试 - agregar_a_google_calendar:与Calendar API直接集成 - generar_link_calendar:创建共享活动的公共URL - enviar_recordatorio:多通道通知系统

  • 可扩展:添加新工具的插件架构
  • 互操作性:与Claude、GPT-4、Gemini和其他LLM一起工作
  • 类型安全:带有pydantic的自动验证方案

🤖 Bot de Discord

  • 纺织公司: !pregunta, !ayuda, !hoy
  • 嵌入Ricos:带有颜色和表情符号的专业格式
  • 聊天转换:具有持续上下文的IA模式

📱 Bot de WhatsApp

  • Comandos Simples: EVENTOS, CALENDARIO, AYUDA, BUSCAR
  • 聊天自然:在没有特定命令的情况下回答问题
  • 链接Directos:单击1将事件添加到日历
  • Twilio沙盒:生产前免费测试
  • 错误处理:对错误的明确反应

🔍 网络抓取智能

  • BeautifulSoup4+lxml:健壮而快速的解析器
  • 自动分类:

- 考试(一般、恢复性、补偿性) - 节日(国家、省) - 休息(学校,冬季) - 特别活动(活动、仪式)

  • 范围扩展:多天活动→个人活动
  • 智能缓存:TTL 6小时优化请求
  • 稳健验证:验证日期、文本和结构

📅 谷歌日历集成

  • OAuth 2.0流程:使用刷新令牌进行安全身份验证
  • 自动创建:将直接事件添加到日历
  • 批量操作:有效处理多个事件
  • 颜色编码:按可定制颜色分类
  • 提醒:配置自动警报

🔔 通知系统

  • 管理员模式:具有多个通知程序的可扩展架构
  • 支持的频道:Discord Webhooks、WhatsApp(Twilio)
  • 调度器集成:cron作业用于计划的通知
  • 自定义模板:按事件类型改编的消息
  • 智能聚类:每日/每周摘要

!

🏗️ 建筑

🔄 概览

📊 查询流程

!

🚀 技术

后端/核心

技术版本使用
python3.10+主要语言
不一致.py2.3.2+Discord官方SDK
烧瓶3.0.0+框架网页版WhatsApp webhook
特维里奥9.0.0+API de WhatsApp业务
谷歌生成人工智能0.8.3+双子座SDK
谷歌日历API2149.0+日历管理
美丽的Soup44.12.0+解析HTML/XML
lxml 文件5.3.0+BS4的快速解析器
请求:2.31.0+客户端HTTP
python dotenv1.0.0+环境变量管理
派丹蒂克2.0+用类型验证数据

MCP(模型上下文协议)

组件状态描述
MCP服务器✅带6个工具的服务器
事件工具✅事件搜索和过滤
日历工具✅与谷歌日历的集成
通知✅提醒系统
缓存系统✅6h TTL优化
验证器✅日期和事件的验证

外部整合

服务API/方法使用
UNViMeWeb Scraping(BeautifulSoup)提取学术日历
谷歌双子座生成AI API智能聊天机器人
谷歌日历Calendar API V3事件创建和管理
特维里奥WhatsApp业务API双向消息
Discord 的中文翻译是“不和谐”或“纷争”。Discord Bot API带有命令的交互式机器人
TinyURLURL缩短API日历上的Acortar链接

DevOps和CI/CD

工具使用
GitHub 操作自动化IC/CD管道
码头工人多级集装箱化
Docker Compose服务编排
铁路生产部署
pytest 单元测试与集成
薄片8Linting y代码质量
黑色自动代码格式化
吸烟用于本地开发的HTTPS隧道

监控和记录

组件描述
自定义记录器层次结构化系统
文件旋转按大小划分的旋转日志
控制台输出彩色格式的日志
错误跟踪堆栈跟踪完整
性能指标关键操作的时间安排

!

📦 安装

先决条件

  • python >= 3.10
  • 点 >=23.x
  • Git >=2.x
  • 码头工人 (可选,用于集装箱化)
  • 账户:

- Discord(对位机器人令牌) - Twigio(适用于WhatsApp) - 谷歌云(用于双子座AI和日历API)

______________________________________________________________________

🚀 选项1:快速安装(推荐)

# 1. Clonar repositorio
git clone https://github.com/MarkoTeixido/Pregon.git
cd Pregon

# 2. Crear entorno virtual
python -m venv venv

# Activar (Linux/macOS)
source venv/bin/activate

# Activar (Windows)
venv\Scripts\activate

# 3. Instalar dependencias
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-ai.txt

# 4. Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales (ver sección siguiente)

# 5. Ejecutar
python run.py

______________________________________________________________________

🐳 选项2:码头工人(生产)

# 1. Clonar y configurar .env
git clone https://github.com/MarkoTeixido/Pregon.git
cd Pregon
cp .env.example .env
# Editar .env con credenciales

# 2. Construir imágenes
docker-compose build

# 3. Iniciar servicios
docker-compose up -d

# 4. Ver logs
docker-compose logs -f

# 5. Detener
docker-compose down

可用服务:

  • discord-bot:Bot de Discord
  • whatsapp-webhook:WhatsApp服务器

有用的命令:

# Iniciar solo Discord
docker-compose up -d discord-bot

# Reiniciar servicio
docker-compose restart whatsapp-webhook

# Ver estado
docker-compose ps

# Entrar a contenedor
docker exec -it pregon-discord bash

______________________________________________________________________

⚙️ 环境变量配置

编辑文件 .env 凭你的证件:

# ============================================
# DISCORD
# ============================================
DISCORD_BOT_TOKEN=tu_token_aqui
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
DISCORD_GUILD_ID=tu_server_id

# ============================================
# TWILIO (WhatsApp)
# ============================================
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=tu_auth_token_aqui
TWILIO_WHATSAPP_FROM=whatsapp:+14155238886
TWILIO_WHATSAPP_TO=whatsapp:+54tu_numero

# ============================================
# GOOGLE GEMINI AI
# ============================================
GEMINI_API_KEY=tu_api_key_aqui
LLM_MODEL_GEMINI=gemini-2.5-flash
LLM_TEMPERATURE=0.7
LLM_MAX_TOKENS=2048

# ============================================
# GOOGLE CALENDAR
# ============================================
GOOGLE_CREDENTIALS_PATH=credentials/google_calendar.json
GOOGLE_TOKEN_PATH=credentials/token.json

# ============================================
# CALENDARIO UNVIME
# ============================================
CALENDAR_URL=https://www.unvime.edu.ar/calendario/

# ============================================
# CONFIGURACIÓN GENERAL
# ============================================
ENVIRONMENT=production
LOG_LEVEL=INFO
ENABLE_CACHE=true
CACHE_TTL=21600

______________________________________________________________________

🔑 获取凭据

📘 Discord Bot Token

  1. Ve a Discord开发者门户
  2. 单击en “新应用程序”
  3. 给他一个名字(例如:“Pregon Bot”)
  4. 去法兰 “机器人”
  5. 单击en “重置令牌” 复制令牌
  6. 恩 “特权网关意图” 活动:

- ✅ 消息内容意图 - ✅ 服务器成员意图(操作)

  1. Ve a “OAuth2→ URL生成器”
  2. 选择范围: bot, applications.commands
  3. 选择权限: Send Messages, Embed Links, Read Message History
  4. 复制生成的URL并在浏览器中打开以邀请机器人

📱 Twilio WhatsApp Credentials

  1. 创建帐户 特维里奥
  2. Ve a 控制台→ WhatsApp→ 沙盒
  3. 复制图 帐户SID y 身份验证令牌
  4. 美国沙盒测试:

- TWILIO_WHATSAPP_FROM=whatsapp:+14155238886

  1. 从您的WhatsApp向沙盒发送激活代码
  2. 配置Webhook URL(在生产中或使用ngrok):

- 网址: https://tu-dominio.com/webhook - 方法: POST

🤖 Google Gemini API Key

  1. Ve a 谷歌人工智能工作室
  2. 单击en “获取API密钥”
  3. 选择或创建项目
  4. 单击en “创建API密钥”
  5. 复制生成的API密钥
  6. 免费限制:60次请求/分钟,1500次/天

📅 Google Calendar API

  1. Ve a 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 习惯 谷歌日历API:

- API库→ Busca“日历”→ 启用

  1. 创建OAuth 2.0凭据:

- 凭证→ 创建凭据→ OAuth客户端ID - 应用程序类型:桌面应用程序 - 下载JSON

  1. 将JSON保存为 credentials/google_calendar.json
  2. 第一次运行时,将打开浏览器进行授权
  3. 将自动生成 credentials/token.json

______________________________________________________________________

🧪 验证安装

# Activar entorno virtual
source venv/bin/activate  # Linux/macOS
# o
venv\Scripts\activate  # Windows

# Ejecutar script principal
python run.py

# Deberías ver el menú:
# ══════════════════════════════════════════
# 🤖 PREGON - Sistema de Calendario UNViMe
# ══════════════════════════════════════════
# 
# 1. Bot de Discord
# 2. Webhook de WhatsApp
# 3. MCP Server
# 4. Scheduler
# 5. Salir

!

🎮 使用

🤖 Discord机器人

可用命令
🔍 Consultas
!pregunta      - Pregunta al asistente IA
!eventos                 - Eventos de la próxima semana
!hoy                     - Eventos de hoy
!buscar         - Buscar eventos específicos

📅 Google Calendar
!calendario              - Links para agregar eventos
!agregar menu            - Menú interactivo para agregar

ℹ️ Ayuda
!ayuda                   - Muestra todos los comandos
!ping                    - Verifica que el bot está activo
使用示例
!pregunta ¿Cuándo son los exámenes de diciembre?
!pregunta ¿Hay clases el 25 de diciembre?
!pregunta Dame los recesos de 2025
!buscar feriado
!buscar receso invierno
!eventos
!hoy
聪明的答案

机器人理解:

  • ✅ 自然语言问题
  • ✅ 同义词(考试/评估,假期/节假日)
  • ✅ 相对日期(“下周”,“下个月”)
  • ✅ 日期范围(“1月至3月”)
  • ✅ 类别(考试、假期、休息)

______________________________________________________________________

📱 WhatsApp机器人

命令
EVENTOS         - Ver próximos 7 eventos
CALENDARIO      - Links para agregar a Google Calendar
AYUDA           - Lista de comandos disponibles
BUSCAR   - Buscar eventos específicos
对话方式

您还可以在没有命令的情况下提出自然问题:

¿Cuándo empiezan las clases?
¿Hay feriados en julio?
¿Cuándo son los exámenes?
Dame el calendario de diciembre
配置Webhook(本地开发)
# Terminal 1: Iniciar servidor Flask
python run.py
# Seleccionar opción 2 (WhatsApp)

# Terminal 2: Exponer con ngrok
ngrok http 5000

# Copiar la URL HTTPS (ej: https://abc123.ngrok.io)
# Ir a Twilio Console → WhatsApp Sandbox Settings
# Webhook URL: https://abc123.ngrok.io/webhook
# Method: POST

______________________________________________________________________

🔌 MCP服务器

import asyncio
from src.mcp.server import get_mcp_server

async def main():
    # Obtener instancia del servidor
    server = get_mcp_server()
    
    # Listar herramientas disponibles
    tools = await server.list_tools()
    print(f"Herramientas: {[t['name'] for t in tools]}")
    
    # Ejecutar herramienta: obtener eventos de la semana
    response = await server.call_tool(
        "get_eventos_semana",
        {}
    )
    print(f"Eventos esta semana: {response}")
    
    # Buscar eventos específicos
    response = await server.call_tool(
        "buscar_eventos",
        {
            "categoria": "examen",
            "desde": "2025-12-01",
            "hasta": "2025-12-31"
        }
    )
    print(f"Exámenes en diciembre: {response}")
    
    # Generar link de calendario
    response = await server.call_tool(
        "generar_link_calendar",
        {
            "titulo": "Examen Final",
            "fecha": "2025-12-15",
            "descripcion": "Matemática I"
        }
    )
    print(f"Link: {response}")

# Ejecutar
asyncio.run(main())

!

📊 项目结构

!

🎓 技术决定和学习

为什么蟒蛇?

原因解释
IA/ML生态系统成熟书店(TensorFlow,SciKit-Learn)
机器人API对Discord、Telegram、WhatsApp的出色支持
Web剪贴美丽汤,刮痧,硒muy robustos
快速原型语法清理,敏捷开发
大社区堆栈溢出,带有400K+包的PYPI

为什么是MCP服务器?

  • 标准弹出由 Anthropic、OpenAI 采用的协议
  • 互操作性:适用于任何兼容的LLM
  • 脱钩:人工智能和工具之间的明确分离
  • 可重复使用:我可以在其他项目中使用这些工具
  • 未来考验:尖端技术(2024-2025)

为什么双子座2.5闪光?

优势细节
最后一代谷歌最新型号
免费60要求/分钟,1500/天免费
多模态文本,图像,音频
流媒体实时响应
西班牙语母语专门为西班牙人训练
Bajo延迟小于1秒的响应

为什么选择BeautifulSoup+LXML?

# Alternativa 1: Selenium (rechazada)
# ❌ Más lento (navegador headless)
# ❌ Más recursos (RAM, CPU)
# ✅ JS rendering

# Alternativa 2: BeautifulSoup + lxml (elegida)
# ✅ Rápido (parser en C)
# ✅ Ligero (solo parsing HTML)
# ✅ Robusto (tolera HTML mal formado)
# ❌ No ejecuta JavaScript

决定:Unvime不需要JS,BS4就足够了。

6小时缓存:为什么?

# Análisis de cambios del calendario UNViMe:
# - Actualización: 1-2 veces por semestre
# - Frecuencia de consultas: ~100/día
# - Sin caché: 100 requests/día al servidor
# - Con caché 6h: 4 requests/día

# TTL Options:
# 1h   → Demasiado frecuente, desperdicio
# 24h  → Podría perder cambios importantes
# 6h   → Balance perfecto ✅

结果:96%的请求减少。

为什么要多频道(Discord+WhatsApp)?

  • 最大范围:discord=年轻学生,WhatsApp=教师/家长
  • 灵活性:用户选择他们最喜欢的平台
  • 学习:演示多个API的集成
  • 专业人士:真正的应用程序是多平台的

Docker多阶段构建

# STAGE 1: Builder (imagen pesada con build tools)
FROM python:3.10-slim as builder
RUN apt-get install gcc g++ make  # Solo en build
RUN pip install -r requirements.txt

# STAGE 2: Runtime (imagen ligera solo con runtime)
FROM python:3.10-slim
COPY --from=builder /opt/venv /opt/venv  # Solo venv
# Resultado: Imagen final 40% más pequeña

通知体系结构

# Manager Pattern:
class NotificationManager:
    def __init__(self):
        self.notifiers = [
            DiscordNotifier(),
            WhatsAppNotifier(),
            # Fácil agregar: TelegramNotifier(), EmailNotifier()
        ]
    
    def send_all(self, message):
        for notifier in self.notifiers:
            notifier.send(message)

# Ventaja: Agregar canales sin modificar lógica existente

!

🚀 生产部署

铁路(推荐)

铁路 从GitHub自动部署:

  1. 连接存储库:

- Ve a 铁路 - 新项目→ 从GitHub部署 - 选择 MarkoTeixido/Pregon

  1. 配置服务:
   Service 1: Pregon-Discord
   - Start Command: python entrypoints/discord_service.py
   - Environment: production

   Service 2: Pregon-WhatsApp  
   - Start Command: python entrypoints/whatsapp_service.py
   - Port: 5000
   - Environment: production
  1. 环境变量:

- 复制所有VAR .env - 铁路→ 设置→ 变量 - 添加: DISCORD_BOT_TOKEN, GEMINI_API_KEY等等。

  1. 自动部署:

- 卡达推a main 自动重新部署 - 铁路仪表板上的实时日志

______________________________________________________________________

!

🧪 测试y CI/CD

自动化测试

# Ejecutar todos los tests
pytest

# Con coverage
pytest --cov=src --cov-report=html

# Solo tests de integración
pytest -m integration

# Solo tests unitarios
pytest -m unit

GitHub操作工作流

该项目有4个自动化工作流:

  1. 构建 (.github/workflows/build.yml):

- ✅ 验证代码编译 - ✅ 验证依赖项的安装 - ⏰ 每次推都会执行

  1. 测试 (.github/workflows/tests.yml):

- ✅ 运行完整的测试套件 - ✅ 一般报告 - ⏰ 在PRS中运行并将其推到main

  1. 棉绒 (.github/workflows/lint.yml):

- ✅ 使用 flake8 检查 PEP 8 - ✅ 用Mypy检查类型 - ⏰ 在每个提交中执行

  1. 码头工人 (.github/workflows/docker.yml):

- ✅ 图像构建 - ✅ 推送Docker Hub(en版本) - ⏰ 在标签上运行

实际覆盖范围

Tests: 47 passed
Coverage: 52%
Lines: 2,341
Branches: 412

!

📄 许可证

这个项目在 麻省理工学院许可证.

!

👨‍💻 作者

马科 Teixido\ *系统工程专业学生*\ *梅赛德斯别墅国立大学*

Hecho para la comunidad de UNViMe

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

学术日历Python本地部署AI自动化多平台集成事件管理GoogleCalendar集成

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

安排与改期

用自然语言创建会议、调整时间,冲突时先提示。

提醒与待办

把任务写进清单,到点提醒。

多日历合并

把几个日历的行程放在一起看,避免撞期。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在日程管理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Pregon (Marko Teixido)

MCP World · 本页

0stdio有1 个2026-05-17
MCP Server Apple Events

MCP World

5stdio有2 个2026-05-17
Google Calendar

MCP World

0HTTP有3 个2026-05-17
Todoist MCP Server 79e800d2

MCP World

35stdio有3 个2026-05-17
Google Calendar Streamable MCP Server

MCP World

0stdio有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Pregon (Marko Teixido) 怎么安装?

公开资料给出的安装命令是 python -m venv venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Pregon (Marko Teixido) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Pregon (Marko Teixido) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Pregon (Marko Teixido) 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Pregon (Marko Teixido) 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP