npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@smartsoft001/librus-mcp-server

v1.0.2

Published

MCP Server for Librus API (Synergia electronic gradebook)

Readme

Librus MCP Server

MCP (Model Context Protocol) server dla Librus API - umożliwia integrację z systemem dziennika elektronicznego Synergia/Librus poprzez narzędzia MCP.

Cechy

  • ✅ Autoryzacja z kontem Librus
  • 📚 Pobieranie ocen
  • 📋 Pobieranie nieobecności
  • 📅 Pobieranie planu lekcji
  • ✉️ Obsługa wiadomości (odbieranie, wysyłanie)
  • 📝 Pobieranie prac domowych
  • 🎲 Pobranie szczęśliwego numeru
  • 🔔 Powiadomienia
  • 👥 Lista odbiorców wiadomości
  • 📖 Lista przedmiotów

Wymagania

  • Node.js 18+ (lub wyższa)
  • npm lub yarn
  • Konto Librus/Synergia

Instalacja

  1. Sklonuj lub stwórz katalog projektu:
mkdir librus-mcp-server-node
cd librus-mcp-server-node
  1. Zainstaluj zależności:
npm install
  1. Skonfiguruj zmienne środowiska (.env):
cp .env.example .env

Edytuj .env i dodaj swoje dane Librus:

[email protected]
LIBRUS_PASSWORD=your_password

⚠️ WAŻNE: Login i hasło są wymagane! Serwer będzie się automatycznie logować przy każdym wywołaniu tool.

Użycie

Uruchamianie serwera

npm start

Serwer będzie nasłuchiwać na stdio i czekać na żądania MCP.

Tryb development z hot reload

npm run dev

Dostępne narzędzia (Tools)

Wszystkie narzędzia automatycznie się logują przy użyciu zmiennych z .env.

Informacje o koncie

  • get_account_info - Pobierz informacje o koncie

Oceny

  • get_grades - Pobierz wszystkie oceny
  • get_grade - Pobierz szczegóły konkretnej oceny

Nieobecności

  • get_absences - Pobierz wszystkie nieobecności
  • get_absence - Pobierz szczegóły konkretnej nieobecności

Plan i Kalendarz

  • get_timetable - Pobierz plan lekcji
  • get_calendar - Pobierz kalendarz szkolny

Wiadomości

  • get_messages - Pobierz wiadomości z folderu (1=inbox, 5=wysłane, 6=archiwum)
  • get_message - Pobierz szczegóły wiadomości
  • send_message - Wyślij wiadomość
  • list_receivers - Pobierz listę odbiorców

Prace Domowe

  • list_subjects - Pobierz listę przedmiotów
  • get_homework - Pobierz prace domowe (opcjonalnie filtrowane po przedmiocie)
  • get_homework_details - Pobierz szczegóły pracy domowej

Pozostałe

  • get_lucky_number - Pobierz szczęśliwy numer na dzisiaj
  • get_notifications - Pobierz powiadomienia

Przykład użycia

Nie musisz się logować ręcznie! Serwer automatycznie się zaloguje przy każdym wywołaniu tool.

Krok 1: Pobierz oceny

{
  "name": "get_grades",
  "arguments": {}
}

Krok 2: Pobierz plan lekcji

{
  "name": "get_timetable",
  "arguments": {}
}

Krok 3: Pobierz wiadomości z inbox

{
  "name": "get_messages",
  "arguments": {
    "folder_id": 1
  }
}

Krok 4: Wyślij wiadomość

{
  "name": "send_message",
  "arguments": {
    "recipient_id": 648158,
    "title": "Pytanie o pracę domową",
    "body": "Cześć, czy możesz mi wyjaśnić zadanie z matematyki?"
  }
}

Konfiguracja dla Claude.ai

Aby użyć tego MCP server z Claude.ai:

  1. Uruchom serwer: npm start
  2. W ustawieniach Claude dodaj konfigurację MCP server
  3. Podaj ścieżkę do serwera: /path/to/librus-mcp-server-node/server.js
  4. Ustaw args: [] (lub ["node"] jeśli jest potrzebne)

Struktura Folderów w Librus

ID folderów do get_messages:

  • 1 - Odebrane (Inbox)
  • 5 - Wysłane
  • 6 - Archiwum
  • Inne ID mogą się różnić w zależności od konfiguracji

Obsługa Błędów

Serwer automatycznie obsługuje błędy i zwraca:

{
  "success": false,
  "error": "Opis błędu"
}

Typowe błędy:

  • Not authenticated - Musisz najpierw wybrać authorize
  • Błędy połączenia - Sprawdzić połączenie z internetem
  • Błędy autoryzacji - Sprawdzić login i hasło

Zabezpieczenia

⚠️ Ważne:

  • Nigdy nie przechowuj hasła w kodzie na produkcji
  • Używaj zmiennych środowiskowych (.env)
  • Nie udostępniaj pliku .env publicznie
  • Serwer nie przechowuje haseł - są one przesyłane bezpośrednio do Librus

Troubleshooting

"Module not found: @modelcontextprotocol/sdk"

npm install

Problemy z autoryzacją

  1. Sprawdź czy login i hasło są poprawne
  2. Sprawdź czy konto Librus jest aktywne
  3. Sprawdź połączenie z internetem

Serwer nie uruchamia się

npm install --save-exact
npm start

Rozwijanie

Aby dodać nowe narzędzie:

  1. Dodaj definicję w tablicy tools
  2. Dodaj obsługę w handleToolCall
  3. Używaj metod z librusClient z biblioteki librus-api

Licencja

MIT

Contributing

Zapraszamy do zgłaszania błędów i pull requestów!

Zasoby