Skip to main content
Glama
successfactors-mcp-prototype

successfactors-mcp-prototype

by Vidushibot

SAP SuccessFactors Multi-Agent MCP-Prototyp

Demonstration mit synthetischen SuccessFactors-ähnlichen Daten. Dies ist ein schreibgeschützter Bildungsprototyp, kein SAP-SuccessFactors-System und nicht produktionsreif.

Die Anwendung beantwortet autorisierte HR-Fragen über eine schmale MCP-Tool-Grenze. Der Mock-Modus erfordert keine SAP- oder OpenAI-Anmeldeinformationen. Der Demo-Modus fügt optionale OpenAI-Agents-SDK-Orchestrierung hinzu; der echte Modus ist einem explizit konfigurierten Nicht-Produktions-SuccessFactors-Mandanten vorbehalten.

Funktionen

  • Elf typisierte, schreibgeschützte MCP-Tools; keine willkürliche HTTP-, OData- oder Schreiboberfläche.

  • Vier synthetische Identitäten mit serverseitigen Rollen und Bevölkerungsbereichen.

  • Explizite Entitäts- und Feld-Allowlists sowie Deny-by-Default-Antwortbereinigung.

  • Zehn fiktive Mitarbeiter, zwölf Positionen, Stammdatenobjekte, effektiv datierte Historie, Vakanzen und absichtliche Datenqualitätsprobleme.

  • Strukturiertes SQLite-Auditprotokoll ohne vollständige HR-Payloads oder Geheimnisse.

  • FastAPI-Chat-/Audit-API und Streamlit-Oberfläche mit Beweisfokus.

  • Deterministischer Mock-Chat funktioniert ohne API-Schlüssel.

Related MCP server: HRIS MCP Connector

Windows-Einrichtung (primärer Pfad)

cd .\successfactors-mcp-prototype
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\setup_windows.ps1

Alle Dienste ausführen:

.\scripts\run_all_windows.ps1

Oder drei Terminals verwenden:

.\scripts\run_mcp_windows.ps1
.\scripts\run_backend_windows.ps1
.\scripts\run_ui_windows.ps1

run_ui_windows.ps1 startet FastAPI im Hintergrund automatisch, wenn das Backend nicht bereits läuft, sodass es auch als einfachster Ein-Befehl-Mock-UI-Starter verwendet werden kann.

Unix und VS Code

Führen Sie bash scripts/setup_unix.sh aus, dann bash scripts/run_all_unix.sh. Wählen Sie in VS Code .venv als Python-Interpreter und öffnen Sie bei Bedarf drei Terminals.

Konfiguration und Modi

Kopieren Sie .env.example in .env; Platzhalter enthalten keine Geheimnisse.

  • APP_MODE=mock: synthetischer Provider und deterministischer Chat; keine externen Anmeldeinformationen.

  • APP_MODE=demo: synthetischer Provider mit Live-Agents-SDK-Orchestrierung; erfordert OPENAI_API_KEY und MCP_INTERNAL_TOKEN.

  • APP_MODE=real: nur konfigurierter Testmandant. Fehlende Einstellungen führen zu Startfehlern; es gibt keinen Mock-Fallback.

OPENAI_MODEL zentralisiert die Modellauswahl. Abhängigkeitsbereiche zielen auf Python 3.11 und aktuelle kompatible Hauptversionen ab, während nicht überprüfte Hauptupgrades vermieden werden.

Live-Agents-SDK-Demo

Kopieren Sie .env.example in .env und setzen Sie dann diese Werte:

APP_MODE=demo
OPENAI_MODEL=gpt-5.4-mini
OPENAI_API_KEY=your-key-from-a-secret-store
MCP_INTERNAL_TOKEN=a-long-random-local-secret

Committen Sie .env nicht. run_ui_windows.ps1 startet jetzt den MCP-Server und FastAPI bei Bedarf. Die Anwendung übergibt Benutzer-, Sitzungs- und Korrelationsidentität an MCP über geschützte HTTP-Header; diese Felder fehlen in modellaufrufbaren Tool-Schemata. Spezialisten erhalten fest codierte Tool-Allowlists. Die UI-Trace zeichnet nur Agent-/Tool-Lebenszyklusnamen auf, nicht Prompts, Argumente, Ergebnisse oder private Überlegungen.

Kostenkontrollen sind mit DEMO_MAX_TURNS, DEMO_MAX_OUTPUT_TOKENS und DEMO_DAILY_TOKEN_BUDGET konfiguriert. Setzen Sie OPENAI_INPUT_COST_PER_1M und OPENAI_OUTPUT_COST_PER_1M auf die aktuellen Tarife für das gewählte Modell, um eine lokale Schätzung anzuzeigen. OpenAI-Tracing ist standardmäßig deaktiviert und, wenn aktiviert, bleiben sensible Trace-Inhalte deaktiviert.

Die normale Suite ruft OpenAI nie auf. Um den einzelnen opt-in Live-Delegations-Smoke-Test auszuführen, nachdem alle drei Dienste im Demo-Modus laufen:

$env:RUN_LIVE_AGENT_TESTS="true"
.\.venv\Scripts\python.exe -m pytest -m live -q

Dieser Test macht eine echte API-Anfrage und verursacht daher Modellnutzung.

Verifizierung

python -m ruff format --check .
python -m ruff check .
python -m mypy src
python -m pytest

Einrichtung der echten Test-Mandanten-Authentifizierung

  1. Registrieren Sie einen OAuth-Client im SuccessFactors-API-Center.

  2. Erstellen Sie einen dedizierten API-Benutzer.

  3. Weisen Sie die minimal erforderlichen RBP-Abfrageberechtigungen zu.

  4. Begrenzen Sie die Zielpopulation.

  5. Gewähren Sie Abfragezugriff nur auf genehmigte Entitäten und Felder.

  6. Speichern Sie OAuth-Material außerhalb der Quellcodeverwaltung.

  7. Validieren Sie den mandantenspezifischen signierten OAuth-Flow gegen einen Nicht-Produktionsmandanten.

  8. Verifizieren Sie sowohl erlaubte als auch verweigerte Mitarbeiterszenarien.

Die Basisauthentifizierung wird nicht unterstützt. Die enthaltene echte Token-Provider-Schnittstelle schlägt absichtlich fehl, bis der mandantenspezifische SAP-dokumentierte Flow implementiert und validiert ist.

Docker

Nachdem Sie .env.example in .env kopiert haben, führen Sie docker compose up --build aus. Docker ist optional und die Compose-Datei ist nur für die Entwicklung gedacht, nicht produktionsgehärtet.

Fehlerbehebung und Einschränkungen

  • Wenn die UI meldet, dass das Backend nicht verfügbar ist, starten Sie zuerst FastAPI.

  • Wenn die Portbindung fehlschlägt, stoppen Sie den Prozess, der 8000, 8001 oder 8501 verwendet.

  • Der Prototyp-Benutzerauswahl ist keine Produktionsauthentifizierung.

  • SQLite ist nicht für horizontal skalierte Produktions-Audit-Speicherung gedacht.

  • Echte OAuth-, Mandantenmetadaten-Eigenheiten und RBP-Verhalten erfordern Mandantenvalidierung.

  • Mock-Routing unterstützt absichtlich die bereitgestellten Demonstrationsfragemuster; es ist keine allgemeine natürliche Sprach-Engine.

  • Zukünftige Schreibvorgänge erfordern eine separate genehmigte Architektur und sind nicht vorhanden, auch nicht als Platzhalter.

Für den detaillierten Ablauf und die Vertrauensgrenzen siehe ARCHITECTURE.md; für Kontrollen und Risiken siehe SECURITY.md. Die genauen synthetischen Datensätze und der Szenarioleitfaden sind in TEST_DATA.md beschrieben und unter test_data/ exportiert.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables querying an HR FAQ document via RAG, returning accurate answers and related chunks, and supports index rebuilding and response evaluation.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying HR data like recent hires, employee details, departments, and PTO balances through natural language in an MCP client.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server that proxies deepHR's API to MCP clients, enabling interaction with deepHR modules such as payroll and employees through natural language.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes SAP SuccessFactors HR data as MCP tools for AI agents, enabling natural language queries about employees, jobs, performance, and organizational structure.
    -