Joule HR MCP Server

Joule HR MCP Server

Exposes SAP SuccessFactors HR data as MCP tools for AI agents, enabling natural language queries about employees, jobs, performance, and organizational structure.

Category
访问服务器

README

Joule HR MCP Server — SAP SuccessFactors

Servidor MCP (Model Context Protocol) que expõe dados do SAP SuccessFactors como ferramentas para agentes de IA integrados ao SAP Joule Studio.

Joule Studio (BTP)  →  MCP Server (CF)  →  SuccessFactors OData API
       ↑
   LLM do Joule raciocina com os dados retornados pelas tools

Princípio de design: a tool busca dados, o LLM do orquestrador raciocina. O servidor MCP não precisa de LLM próprio.


🔗 Ambiente de Demonstração

URL
MCP Server https://joule-sfsf-mcp.cfapps.us10.hana.ondemand.com/mcp
Health https://joule-sfsf-mcp.cfapps.us10.hana.ondemand.com/health
Instância SFSF https://hcm-us10-sales.hr.cloud.sap (company: SFSALES010674)
API Server SFSF https://apisalesdemo8.successfactors.com

✅ Tools implementadas (15)

Consulta de dados — Employee Central

Tool Descrição Exemplo de pergunta
listar_funcionarios Lista colaboradores com nome, cargo e departamento "Quem está no sistema?"
dados_funcionario Perfil completo: cargo, gestor, CC, avaliação, potencial "Qual o cargo de Kay Holliston?"
subordinados_diretos Equipe de um gestor "Quem são os subordinados de 100083?"
organograma_departamento Estrutura e colaboradores de um departamento "Como é o organograma do dept 50150001?"

Recrutamento

Tool Descrição Exemplo de pergunta
vagas_internas Vagas abertas com filtro por departamento "Quais vagas estão abertas?"

Performance & Desenvolvimento

Tool Descrição Exemplo de pergunta
avaliacao_desempenho Histórico de avaliações de um funcionário "Como foi a avaliação de Amanda Winters?"
metas_funcionario Metas e objetivos com status de progresso "Quais as metas de Rick Smolla?"

Remuneração

Tool Descrição Exemplo de pergunta
remuneracao_funcionario Componentes salariais recorrentes "Qual o salário de Kay Holliston?"
consultar_remuneracao Demonstrativo completo: componentes, avulsos, histórico de folha "Mostre o demonstrativo de Amanda Winters"

Certificações O&G (via extensão CAP)

Tool Descrição Exemplo de pergunta
certificacoes_funcionario Habilitações técnicas com status de validade "Quais certificações de Amanda estão vencidas?"
alertas_vencimento Colaboradores com certificações críticas "Quem tem certificação vencida?"
dashboard_certificacoes Compliance por departamento "Como está o compliance de certificações?"

Geração de conteúdo (dados SFSF → Joule gera o texto)

Tool Descrição Exemplo de pergunta
redigir_perfil_vaga Dados da vaga para o Joule redigir um JD completo "Redija o perfil da vaga 3"
sugerir_metas_gd Perfil do colaborador para o Joule sugerir metas SMART "Sugira metas de GD para Amanda Winters"
buscar_cursos Perfil e histórico para o Joule recomendar cursos "Quais cursos Kay Holliston deveria fazer?"

🗺️ Roadmap

Concluído ✅

  • [x] MCP Server base — 8 tools de consulta (Employee Central, Recrutamento, Performance, Remuneração)
  • [x] OAuth 2.0 SAML Bearer — autenticação com instância real SFSALES010674
  • [x] Deploy BTP Cloud Foundry — servidor HTTP com Streamable HTTP transport
  • [x] Integração Joule Studio — BTP Destination + configuração MCP
  • [x] Extensão CAP — Certificações O&G — 3 tools (CAP + HANA Cloud): certificacoes_funcionario, alertas_vencimento, dashboard_certificacoes
  • [x] Casos custom — Geração de conteúdo — 3 tools: redigir_perfil_vaga, sugerir_metas_gd, buscar_cursos
  • [x] Demonstrativo de pagamentoconsultar_remuneracao com histórico de folha

Em andamento / Próximo sprint 🟡

  • [ ] Caso 3 — Atualização de dado standard (Centro de Custo)

    • Tool atualizar_centro_custo implementada localmente (aguarda permissão RBP no SFSF Admin Center)
    • Requer: Admin Center → Permission Roles → Employment Information → Edit
  • [ ] Caso 4 — Atualização de dado custom (% VR/VA, Higiene Ocupacional)

    • Requer campo MDF criado no SFSF via Admin Center / BCUI
    • Tool de leitura + escrita via Joule Studio skill

Backlog — Próximas extensões CAP 🟢

  • [ ] Project Staffing — alocação de pessoas em projetos/plataformas offshore

    • Entidades: Projeto, Alocacao (userId + projeto + % FTE), CalendarioRotacao
    • Pergunta-chave: "Quem está disponível para alocar em Búzios com NR-33 válida?"
  • [ ] Workforce Risk Dashboard — visão executiva para CHRO/VP RH

    • Entidades: ScoreRiscoFuga, BenchmarkSalarial, ProjecaoEfetivo
    • Pergunta-chave: "Quais áreas têm maior risco de perder talentos nos próximos 12 meses?"
  • [ ] Portal de Mobilidade Interna

    • Cruzamento de perfil + vagas abertas + certificações → matching inteligente
    • Pergunta-chave: "Para qual vaga deveria me candidatar?"
  • [ ] Painel de Sucessão Estendido

    • Entidades: CriticidadePosicao, SucessorIndicado, PlanoPDI
    • Pergunta-chave: "Quem substitui o Gerente de E&P Rio se ele sair?"

Pré-requisitos

  • Python 3.12+
  • SAP BTP com Cloud Foundry habilitado
  • SAP SuccessFactors com OAuth App registrado
  • cf CLI + mbt instalados

Configuração

cp .env.example .env
# Edite .env com suas credenciais SFSF

Gerando chave e certificado SAML

openssl req -x509 -newkey rsa:2048 -keyout sfsf_poc.key -out sfsf_poc.crt \
  -days 365 -nodes -subj "/CN=joule-mcp/O=MinhaOrg"

export SFSF_KEY_B64=$(cat sfsf_poc.key | base64 | tr -d '\n')
export SFSF_CERT_B64=$(cat sfsf_poc.crt | base64 | tr -d '\n')

Registrando OAuth App no SuccessFactors

  1. Admin Center → Manage OAuth2 Client Applications → Register Client Application
  2. Cole o conteúdo de sfsf_poc.crt no campo X.509 Certificate
  3. Copie o API Key gerado → use como SFSF_CLIENT_ID

Rodando localmente

pip install -r requirements.txt
MODE=sfsf SFSF_CLIENT_ID=xxx SFSF_KEY_B64=xxx SFSF_CERT_B64=xxx \
  python mcp_server_sfsf.py

Deploy no SAP BTP Cloud Foundry

cf login --sso
cf push joule-sfsf-mcp -f manifest-mcp.yml --no-start
cf set-env joule-sfsf-mcp SFSF_CLIENT_ID "<oauth-client-id>"
cf set-env joule-sfsf-mcp SFSF_KEY_B64   "$(cat sfsf_poc.key | base64 | tr -d '\n')"
cf set-env joule-sfsf-mcp SFSF_CERT_B64  "$(cat sfsf_poc.crt | base64 | tr -d '\n')"
cf set-env joule-sfsf-mcp MCP_AUTH_TOKEN "$(python3 -c 'import uuid; print(uuid.uuid4())')"
cf start joule-sfsf-mcp

Integração com Joule Studio

Crie uma BTP Destination (Connectivity → Destinations):

Propriedade Valor
Nome JouleHR-MCP
Tipo HTTP
URL https://joule-sfsf-mcp.cfapps.us10.hana.ondemand.com
Authentication NoAuthentication
sap-joule-studio-mcp-server true
URL.headers.Authorization Bearer <MCP_AUTH_TOKEN>

No Joule Studio: Adicionar servidor MCP → selecionar destino JouleHR-MCP → caminho /mcp.

Estrutura do projeto

├── mcp_server_cf.py     # MCP Server — Cloud Foundry (Streamable HTTP, 15 tools)
├── mcp_server_sfsf.py   # MCP Server — desenvolvimento local (stdio)
├── manifest-mcp.yml     # Deploy descriptor BTP CF
├── requirements.txt     # Dependências Python
├── .cfignore            # Exclui pastas desnecessárias do deploy
└── .env.example         # Template de variáveis de ambiente

Tecnologias

  • Python 3.12 + FastMCP 1.28 — servidor MCP (Streamable HTTP)
  • signxml + lxml — assinatura SAML para OAuth 2.0 SAML Bearer
  • SAP SuccessFactors OData V2 — fonte de dados de RH
  • SAP BTP Cloud Foundry — plataforma de deployment
  • SAP Joule Studio — interface do agente conversacional
  • SAP CAP + HANA Cloud — extensão para dados não nativos do SFSF

Referências

Licença

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选