Skip to main content
Glama
acidmole

Parenting MCP

by acidmole

Parenting MCP

MCP-palvelin ja ajastettu WhatsApp-viestintä vanhemmille. Hakee lasten koulutiedot Wilmasta ja lähettää automaattiset yhteenvedot WhatsAppiin.

Ominaisuudet

Ajastetut WhatsApp-viestit (Scheduler)

Scheduler lähettää automaattisesti kolme viestiä WhatsApp-ryhmään tai -kontaktille:

Viesti

Oletusaika

Sisältö

Läksykooste

16:02

Päivän kotitehtävät Wilmasta

Huomisen aikataulu

20:03

Huomisen koulupäivän ajat + kokeet/erikoisohjelma

Viikkokatsaus

su 17:57

Ensi viikon kokeet päivittäin ryhmiteltynä

Ajastukset ovat muokattavissa cron-syntaksilla config.json-tiedostossa.

MCP-työkalut (Claude-integraatio)

Parenting MCP tarjoaa MCP-protokollan kautta 10 työkalua, joita Claude tai muu LLM voi kutsua:

Wilma-työkalut:

  • get_wilma_summary — Päivittäinen yhteenveto kaikille oppilaille (aikataulu, läksyt, kokeet, viestit)

  • get_wilma_schedule — Lukujärjestys päivälle tai viikolle

  • get_wilma_exams — Tulevat kokeet

  • get_wilma_homework — Kotitehtävät

  • get_wilma_news — Koulun tiedotteet

WhatsApp-työkalut:

  • send_whatsapp_message — Lähetä viesti henkilölle tai ryhmään

  • list_whatsapp_contacts — Listaa yhteystiedot

  • list_whatsapp_groups — Listaa ryhmät

Yhteenvetotyökalut:

  • send_daily_summary — Koosta ja lähetä päivän yhteenveto WhatsAppiin

  • send_weekly_summary — Koosta ja lähetä viikkoyhteenveto WhatsAppiin

Related MCP server: mcp-whatsapp

Asennus

npm install
npm run build

Setup

Interaktiivinen setup-komento ohjaa alkuasetuksiin:

npm run setup

Setup tekee seuraavat asiat:

  1. WhatsApp-yhdistäminen — Näyttää QR-koodin, jonka skannaat puhelimella (WhatsApp > Asetukset > Yhdistetyt laitteet)

  2. Kohderyhmän valinta — Valitset WhatsApp-ryhmän tai kontaktin, johon viestit lähetetään

  3. Verkkokurssisuodattimet — Jos oppilailla on verkkokursseja, jotka näkyvät lukujärjestyksessä mutta eivät ole lähiopetusta, ne voi suodattaa pois

  4. Ajastukset — Viestien lähetysajat (oletus: läksyt 16:02, ilta-aikataulu 20:03, viikkokatsaus su 17:57)

Asetukset tallentuvat config.json-tiedostoon.

Jos WhatsApp-sessio vanhenee, ohjelma pyytää automaattisesti uuden QR-koodin — erillistä uudelleenasennusta ei tarvita.

Konfiguraatio

config.json (luodaan npm run setup -komennolla):

{
  "whatsapp": {
    "targetJid": "123456789@g.us",
    "isGroup": true,
    "targetName": "Ryhmän nimi"
  },
  "schedule": {
    "homeworkCron": "2 16 * * *",
    "eveningCron": "3 20 * * *",
    "weeklyCron": "57 17 * * 0",
    "timezone": "Europe/Helsinki"
  },
  "filters": {
    "onlineCourses": [
      {
        "studentFirstName": "Matti",
        "startTime": "07:00",
        "subjectCodePatterns": ["Ver", "verkko"]
      }
    ]
  }
}

Kenttä

Kuvaus

whatsapp.targetJid

WhatsApp-ryhmän tai kontaktin JID

whatsapp.isGroup

true ryhmälle, false yksittäiselle kontaktille

schedule.*Cron

Cron-lauseke (syntaksi)

filters.onlineCourses

Suodattaa verkkokurssit pois lukujärjestyksestä nimen, alkuajan ja kurssikoodin perusteella

Käyttö

Scheduler (automaattiset viestit)

npm run scheduler

Systemd-palveluna (käynnistyy automaattisesti kirjautuessa):

# Kopioi palvelutiedosto
cp parenting-scheduler.service ~/.config/systemd/user/
systemctl --user enable --now parenting-scheduler

# Lokit
journalctl --user -u parenting-scheduler -f

Viestien manuaalinen lähetys (trigger)

Jos kone on ollut pois päältä cron-ajankohdan aikana, voit lähettää viestit jälkikäteen:

# Pysäytä scheduler (muuten kaksi WhatsApp-sessiota taistelee samasta auth_storesta)
systemctl --user stop parenting-scheduler

# Lähetä haluamasi viesti(t)
npm run trigger -- homework
npm run trigger -- evening             # huomisen aikataulu (= kuin Sun-Thu ilta-cron)
npm run trigger -- evening:today       # tämän päivän aikataulu (esim. viikonloppu-paussin jälkeen)
npm run trigger -- weekly
npm run trigger -- homework,evening    # pilkulla eroteltuna useita

# Käynnistä scheduler takaisin päälle
systemctl --user start parenting-scheduler

Trigger ajaa täsmälleen saman logiikan kuin cron: homework käyttää kuluvaa päivää, evening ja weekly huomista/ensi viikkoa.

MCP-palvelin (Claude-integraatio)

npm run start

Lisää Claude Desktopin tai Claude Coden MCP-asetuksiin:

{
  "mcpServers": {
    "parenting": {
      "command": "node",
      "args": ["/polku/parenting_mcp/build/index.js"]
    }
  }
}

Wilma

Vaatii wilma-cli:n, joka on asennettava ja konfiguroitava erikseen:

npm install -g @wilm-ai/wilma-cli
wilma  # Ensimmäinen kirjautuminen

Tukee useita Wilma-profiileja (eri koulut/vanhemmat) — scheduler hakee kaikkien profiilien oppilaat automaattisesti.

Teknologia

Tiedostorakenne

parenting_mcp/
├── src/
│   ├── index.ts              # MCP-palvelin
│   ├── scheduler.ts          # Ajastetut WhatsApp-viestit
│   ├── jobs.ts               # Jaetut työt (käyttävät scheduler + trigger)
│   ├── trigger.ts            # Manuaalinen viestien lähetys (CLI)
│   ├── setup.ts              # Interaktiivinen setup
│   ├── whatsapp-auth.ts      # WhatsApp QR-skannaus (standalone)
│   ├── services/
│   │   ├── whatsapp.ts       # WhatsApp-yhteys (Baileys)
│   │   ├── wilma.ts          # Wilma CLI -wrapper
│   │   └── config.ts         # Config-palvelu
│   └── tools/                # MCP-työkalut
├── config.json               # Asetukset (gitignored)
├── auth_store/               # WhatsApp-sessio (gitignored)
└── package.json

Huomautus WhatsAppin käytöstä

Tämä ohjelma käyttää epävirallista WhatsApp Web -rajapintaa (Baileys), joka ei ole Metan/WhatsAppin hyväksymä tai tukema. WhatsAppin käyttöehdot saattavat kieltää epävirallisten API-rajapintojen käytön, ja tilin käyttö tällä tavalla voi johtaa tilin rajoittamiseen tai sulkemiseen. Käyttäjä on itse vastuussa ohjelman käytöstä ja mahdollisista seurauksista.

Related MCP Connectors

Related MCP Servers