Skip to main content
Glama

HR-System-MCP-Server

Ein inoffizieller Prototyp eines MCP-Servers, der HR-Systemfunktionen mit Okta-Token-Validierung bereitstellt. Nur zu Evaluierungs- und Testzwecken.

📚 Dokumentation

Vollständige Dokumentation im Ordner docs/ verfügbar:

Related MCP server: Keka MCP Server

Übersicht

Der HR-System-MCP-Server bietet:

  • ✅ Abruf von Mitarbeiterinformationen

  • ✅ Auflistung des Mitarbeiterverzeichnisses

  • ✅ Zugriff auf Gehaltsinformationen

  • ✅ Verwaltung von Urlaubsanträgen

  • Okta OAuth 2.0 Token-Validierung für alle Tool-Aufrufe

  • ✅ HTTP/NDJSON-Streaming-Unterstützung (FastMCP)

  • Bereit für Railway-Deployment 🚀

Authentifizierung

Dieser Server validiert Okta-Zugriffstoken für alle Tool-Aufrufe (außer initialize):

  • Token-Quelle: Okta-Autorisierungsserver

  • Validierung: JWT-Signatur, Ablaufdatum, Audience-Claims

  • Autorisierungs-Header: Authorization: Bearer <access_token>

Schnellstart

# Setup
cp env.example .env
# Edit .env with your Okta credentials

# Install dependencies
pip install -r requirements.txt

# Run in HTTP mode (for Okta MCP Adapter)
python main.py --http 8001

Konfiguration

.env (Umgebungsvariablen)

OKTA_DOMAIN=ijtestcustom.oktapreview.com
OKTA_AUTHORIZATION_SERVER_ID=auss2fth0mcIXHzVO1d7
OKTA_AUDIENCE=
OKTA_REQUIRED_SCOPES=
# When true (default), tools/list without auth returns 401. When false, allows unauthenticated tools/list (e.g. for gateway registration).
# PROTECTED_DISCOVERY=true

Verfügbare Tools

Tool

Beschreibung

Parameter

get_employee

Mitarbeiter nach ID abrufen

employee_id: str

list_employees

Alle Mitarbeiter auflisten

Keine

get_employee_payroll

Gehaltsinfo abrufen

employee_id: str

get_time_off_requests

Urlaubsanträge abrufen

employee_id: str (optional)

Nutzungsbeispiele

Direkt via VS Code/Copilot

# Endpoint
http://localhost:8001/mcp

# Authorization
Authorization: Bearer <okta_access_token>

Via Okta MCP Adapter Gateway

# Gateway will:
# 1. Receive request from client
# 2. Validate Okta token
# 3. Forward to HR System MCP
# 4. Attach authorization header

Implementierungsdetails

  • Framework: FastMCP 3.0.0b1

  • Server: Uvicorn (async HTTP)

  • Protokoll: MCP (Model Context Protocol) mit NDJSON-Streaming

  • Token-Validierung: JWKS-basierte JWT-Validierung mit Signaturprüfung

  • Caching: JWKS-Schlüssel mit TTL zwischengespeichert

Anforderungsfluss

Client Request
    ↓
Authorization Header (Okta token)
    ↓
Initialize (no token needed)
    ↓
tools/list (validate token)
    ↓
tools/call (validate token)
    ↓
Response

🚀 Bereitstellungsoptionen

Vercel (Serverless) ⚡

Bereitstellung als Serverless-Funktion - automatische Skalierung, nutzungsbasierte Abrechnung

  • Am besten geeignet für: Sporadische Nutzung, automatische Skalierung auf Null

  • Kostenloses Kontingent: 100 GB Bandbreite/Monat

  • ⚠️ Einschränkung: 10-Sekunden-Timeout (kostenlos), 5 Min. (Pro)

  • 📖 Anleitung: docs/VERCEL_README.md

Railway.com (Traditioneller Server) 🚂

Bereitstellung als dauerhaft laufender Server - immer aktiv, unbegrenztes Timeout

  • Am besten geeignet für: Konstanten Datenverkehr, persistente Verbindungen

  • Kostenloses Kontingent: 500 Stunden/Monat (danach 5 $/Monat)

  • Kein Timeout: Unbegrenzte Anfragedauer

  • 📖 Anleitung: docs/RAILWAY_README.md

Docker (Lokale Entwicklung) 🐳

Lokal mit Docker ausführen - volle Kontrolle, Testen

docker-compose up -d

Empfehlung:

  • Verwenden Sie Vercel für sporadische/unvorhersehbare Nutzung (günstiger, automatische Skalierung)

  • Verwenden Sie Railway für konstanten Datenverkehr oder wenn Sie lange Timeouts benötigen

Fehlerbehebung

Siehe docs/RAILWAY_DEPLOYMENT.md für eine vollständige Anleitung zur Fehlerbehebung.

Schnelle Lösungen:

  • Token-Validierung schlägt fehl: Überprüfen Sie OKTA_DOMAIN und OKTA_AUTHORIZATION_SERVER_ID in .env

  • Port bereits belegt: Ändern Sie den Port im Startbefehl: python main.py --http 8002

  • Fehlende Umgebungsvariablen: Kopieren Sie das .env-Beispiel und füllen Sie die Werte aus

  • JWKS-Abruffehler: Überprüfen Sie, ob die Okta-Domain und die Autorisierungsserver-ID korrekt sind

Projektstruktur

hr-mcp-server/
├── main.py                    # FastMCP server with HTTP handler
├── requirements.txt           # Python dependencies
├── Dockerfile                 # Docker container definition
├── docker-compose.yml         # Docker Compose configuration
├── railway.json               # Railway deployment config
├── deploy-railway.sh          # Deployment helper script
├── test_server.sh            # Server test script
├── auth/                      # Authentication module
│   ├── __init__.py
│   └── okta_validator.py     # Okta token validation
└── docs/                      # Documentation
    ├── INDEX.md              # Documentation index
    ├── RAILWAY_README.md     # Railway quick start
    ├── RAILWAY_DEPLOYMENT.md # Complete deployment guide
    ├── DOCKER_QUICK_START.md # Docker reference
    ├── README_INTEGRATION.md # Usage guide
    ├── CLAUDE_CODE_SETUP.md  # Claude Code setup
    ├── CLAUDE.md             # Developer documentation
    └── ...more docs

Siehe docs/INDEX.md für den vollständigen Dokumentationsleitfaden.

Testen

# Using curl with Okta token
curl -X POST http://localhost:8001/mcp \
  -H "Authorization: Bearer <your_okta_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'

📖 Dokumentation

Für die vollständige Dokumentation siehe den Ordner docs/:

Referenzen

Status

⚠️ Inoffizieller Prototyp - Nur zu Evaluierungs- und Testzwecken. Nicht für den Produktionseinsatz bestimmt.

Lizenz: Apache 2.0

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables interaction with employee management systems through a standardized MCP interface. Supports comprehensive employee operations including CRUD operations, search, filtering by level/status, and data synchronization.
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Insperity's REST API to access employee data, including employee lists, check details, and profile information for HR management tasks.
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables querying HR data like recent hires, employee details, departments, and PTO balances through natural language in an MCP client.

View all related MCP servers

Related MCP Connectors

  • Search, document and execute authenticated API calls across 700+ apps via one MCP server

  • Apideck Unified API MCP — 330 tools across 200+ SaaS connectors (accounting, CRM, HRIS, ATS).

  • Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BalaGanaparthi/hr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server