@smartsoft001/librus-mcp-server
v1.0.2
Published
MCP Server for Librus API (Synergia electronic gradebook)
Maintainers
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
- Sklonuj lub stwórz katalog projektu:
mkdir librus-mcp-server-node
cd librus-mcp-server-node- Zainstaluj zależności:
npm install- Skonfiguruj zmienne środowiska (.env):
cp .env.example .envEdytuj .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 startSerwer będzie nasłuchiwać na stdio i czekać na żądania MCP.
Tryb development z hot reload
npm run devDostę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:
- Uruchom serwer:
npm start - W ustawieniach Claude dodaj konfigurację MCP server
- Podaj ścieżkę do serwera:
/path/to/librus-mcp-server-node/server.js - Ustaw args:
[](lub["node"]jeśli jest potrzebne)
Struktura Folderów w Librus
ID folderów do get_messages:
1- Odebrane (Inbox)5- Wysłane6- 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
.envpublicznie - Serwer nie przechowuje haseł - są one przesyłane bezpośrednio do Librus
Troubleshooting
"Module not found: @modelcontextprotocol/sdk"
npm installProblemy z autoryzacją
- Sprawdź czy login i hasło są poprawne
- Sprawdź czy konto Librus jest aktywne
- Sprawdź połączenie z internetem
Serwer nie uruchamia się
npm install --save-exact
npm startRozwijanie
Aby dodać nowe narzędzie:
- Dodaj definicję w tablicy
tools - Dodaj obsługę w
handleToolCall - Używaj metod z
librusClientz bibliotekilibrus-api
Licencja
MIT
Contributing
Zapraszamy do zgłaszania błędów i pull requestów!
