successfactors-mcp-prototype
Provides read-only MCP tools for querying SAP SuccessFactors HR data, including employees, positions, foundation objects, and vacancies, with role-based access scoping and sanitized responses.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@successfactors-mcp-prototypelist current vacancies and their departments"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SAP SuccessFactors Multi-Agent MCP Prototype
Demonstration using synthetic SuccessFactors-style data. This is a read-only educational prototype, not an SAP SuccessFactors system and not production-ready.
The application answers authorized HR questions through a narrow MCP tool boundary. Mock mode requires no SAP or OpenAI credentials. Demo mode adds optional OpenAI Agents SDK orchestration; real mode is reserved for an explicitly configured non-production SuccessFactors tenant.
Features
Eleven typed, read-only MCP tools; no arbitrary HTTP, OData, or write surface.
Four synthetic identities with server-side roles and population scopes.
Explicit entity and field allow-lists plus deny-by-default response sanitization.
Ten fictional employees, twelve positions, foundation objects, effective-dated history, vacancies, and intentional data-quality issues.
Structured SQLite audit trail without full HR payloads or secrets.
FastAPI chat/audit API and Streamlit evidence-focused interface.
Deterministic mock chat works without an API key.
Related MCP server: HRIS MCP Connector
Windows setup (primary path)
cd .\successfactors-mcp-prototype
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\setup_windows.ps1Run all services:
.\scripts\run_all_windows.ps1Or use three terminals:
.\scripts\run_mcp_windows.ps1
.\scripts\run_backend_windows.ps1
.\scripts\run_ui_windows.ps1run_ui_windows.ps1 starts FastAPI in the background automatically when the backend is not already running, so it can also be used as the simplest one-command mock UI launcher.
OpenAPI: http://127.0.0.1:8000/docs
Unix and VS Code
Run bash scripts/setup_unix.sh, then bash scripts/run_all_unix.sh. In VS Code select .venv as the Python interpreter and open three terminals if preferred.
Configuration and modes
Copy .env.example to .env; placeholders contain no secrets.
APP_MODE=mock: synthetic provider and deterministic chat; no external credentials.APP_MODE=demo: synthetic provider with live Agents SDK orchestration; requiresOPENAI_API_KEYandMCP_INTERNAL_TOKEN.APP_MODE=real: configured test tenant only. Missing settings fail startup; there is no mock fallback.
OPENAI_MODEL centralizes model selection. Dependency ranges target Python 3.11 and current compatible major versions while avoiding unreviewed major upgrades.
Live Agents SDK demo
Copy .env.example to .env, then set these values:
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-secretDo not commit .env. run_ui_windows.ps1 now starts the MCP server and FastAPI when needed.
The application passes user, session, and correlation identity to MCP through protected HTTP
headers; those fields are absent from model-callable tool schemas. Specialists receive hard-coded
tool allow-lists. The UI trace records agent/tool lifecycle names only, not prompts, arguments,
results, or private reasoning.
Cost controls are configured with DEMO_MAX_TURNS, DEMO_MAX_OUTPUT_TOKENS, and
DEMO_DAILY_TOKEN_BUDGET. Set OPENAI_INPUT_COST_PER_1M and
OPENAI_OUTPUT_COST_PER_1M to the current rates for the chosen model to display a local estimate.
OpenAI tracing is off by default and, when enabled, sensitive trace content remains disabled.
The normal suite never calls OpenAI. To run the single opt-in live delegation smoke test after all three services are running in demo mode:
$env:RUN_LIVE_AGENT_TESTS="true"
.\.venv\Scripts\python.exe -m pytest -m live -qThis test makes one real API request and therefore incurs model usage.
Verification
python -m ruff format --check .
python -m ruff check .
python -m mypy src
python -m pytestReal test-tenant authentication setup
Register an OAuth client in SuccessFactors API Center.
Create a dedicated API user.
Assign minimum required RBP query permissions.
Limit the target population.
Grant query access only to approved entities and fields.
Store OAuth material outside source control.
Validate the tenant-specific signed OAuth flow against a non-production tenant.
Verify both allowed and denied employee scenarios.
Basic Authentication is not supported. The included real token-provider interface intentionally fails until the tenant-specific SAP-documented flow is implemented and validated.
Docker
After copying .env.example to .env, run docker compose up --build. Docker is optional and the compose file is development-only, not production hardened.
Troubleshooting and limitations
If the UI reports the backend unavailable, start FastAPI first.
If port binding fails, stop the process using 8000, 8001, or 8501.
The prototype user selector is not production authentication.
SQLite is not intended for horizontally scaled production audit storage.
Real OAuth, tenant metadata quirks, and RBP behavior require tenant validation.
Mock routing deliberately supports the supplied demonstration question patterns; it is not a general natural-language engine.
Future writes require a separate approved architecture and are not present, even as placeholders.
For the detailed flow and trust boundaries see ARCHITECTURE.md; for controls and risks see SECURITY.md.
The exact synthetic records and scenario guide are described in TEST_DATA.md and exported under test_data/.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceMCP server that enables querying an HR FAQ document via RAG, returning accurate answers and related chunks, and supports index rebuilding and response evaluation.
- FlicenseNot gradedqualityBmaintenanceEnables querying HR data like recent hires, employee details, departments, and PTO balances through natural language in an MCP client.
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server that proxies deepHR's API to MCP clients, enabling interaction with deepHR modules such as payroll and employees through natural language.
- FlicenseNot gradedqualityCmaintenanceExposes SAP SuccessFactors HR data as MCP tools for AI agents, enabling natural language queries about employees, jobs, performance, and organizational structure.
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
MCP server for AI access to Swagger by SmartBear.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Vidushibot/successfactors-mcp-prototype'
If you have feedback or need assistance with the MCP directory API, please join our Discord server