Skip to main content
Glama

HR 시스템 MCP 서버

Okta 토큰 검증 기능을 제공하는 비공식 프로토타입 MCP 서버입니다. 평가 및 테스트 목적으로만 사용하십시오.

📚 문서

전체 문서는 docs/ 폴더에서 확인할 수 있습니다:

Related MCP server: Insperity MCP Server

개요

HR 시스템 MCP 서버는 다음 기능을 제공합니다:

  • ✅ 직원 정보 조회

  • ✅ 직원 디렉토리 목록

  • ✅ 급여 정보 접근

  • ✅ 휴가 요청 관리

  • ✅ 모든 도구 호출에 대한 Okta OAuth 2.0 토큰 검증

  • ✅ HTTP/NDJSON 스트리밍 지원 (FastMCP)

  • ✅ Railway 배포 준비 완료 🚀

인증

이 서버는 모든 도구 호출(initialize 제외)에 대해 Okta 액세스 토큰을 검증합니다:

  • 토큰 소스: Okta 인증 서버

  • 검증: JWT 서명, 만료 시간, 대상(audience) 클레임

  • 인증 헤더: Authorization: Bearer <access_token>

빠른 시작

# 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

구성

.env (환경 변수)

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

사용 가능한 도구

도구

설명

매개변수

get_employee

ID로 직원 조회

employee_id: str

list_employees

모든 직원 목록 조회

없음

get_employee_payroll

급여 정보 조회

employee_id: str

get_time_off_requests

휴가 요청 조회

employee_id: str (선택 사항)

사용 예시

VS Code/Copilot을 통한 직접 사용

# Endpoint
http://localhost:8001/mcp

# Authorization
Authorization: Bearer <okta_access_token>

Okta MCP 어댑터 게이트웨이를 통한 사용

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

구현 세부 정보

  • 프레임워크: FastMCP 3.0.0b1

  • 서버: Uvicorn (비동기 HTTP)

  • 프로토콜: NDJSON 스트리밍을 사용하는 MCP (Model Context Protocol)

  • 토큰 검증: JWKS 기반 JWT 검증 및 서명 확인

  • 캐싱: TTL이 적용된 JWKS 키 캐싱

요청 흐름

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

🚀 배포 옵션

Vercel (서버리스) ⚡

서버리스 함수로 배포 - 자동 확장, 사용량 기반 과금

  • ✅ 적합한 용도: 간헐적인 사용, 자동 제로 스케일링

  • ✅ 무료 티어: 월 100GB 대역폭

  • ⚠️ 제약 사항: 10초 타임아웃(무료), 5분(Pro)

  • 📖 가이드: docs/VERCEL_README.md

Railway.com (전통적인 서버) 🚂

상시 실행 서버로 배포 - 항상 켜짐, 무제한 타임아웃

  • ✅ 적합한 용도: 지속적인 트래픽, 지속적인 연결

  • ✅ 무료 티어: 월 500시간 (이후 월 $5)

  • ✅ 타임아웃 없음: 무제한 요청 지속 시간

  • 📖 가이드: docs/RAILWAY_README.md

Docker (로컬 개발) 🐳

Docker로 로컬 실행 - 완전한 제어, 테스트

docker-compose up -d

권장 사항:

  • 간헐적/예측 불가능한 사용에는 Vercel을 사용하세요 (저렴하고 자동 확장됨)

  • 지속적인 트래픽이 있거나 긴 타임아웃이 필요한 경우 Railway를 사용하세요

문제 해결

전체 문제 해결 가이드는 **docs/RAILWAY_DEPLOYMENT.md**를 참조하세요.

빠른 해결 방법:

  • 토큰 검증 실패: .env 파일의 OKTA_DOMAIN 및 OKTA_AUTHORIZATION_SERVER_ID를 확인하세요.

  • 포트 사용 중: 시작 명령에서 포트를 변경하세요: python main.py --http 8002

  • 환경 변수 누락: .env 예제를 복사하여 값을 채우세요.

  • JWKS 가져오기 오류: Okta 도메인 및 인증 서버 ID가 올바른지 확인하세요.

프로젝트 구조

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

전체 문서 가이드는 **docs/INDEX.md**를 참조하세요.

테스트

# 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": {}
  }'

📖 문서

전체 문서는 docs/ 폴더를 참조하세요:

참조

상태

⚠️ 비공식 프로토타입 - 평가 및 테스트 전용입니다. 프로덕션 환경에서 사용하지 마십시오.

라이선스: Apache 2.0

Related MCP Connectors

Related MCP Servers

  • 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
    C
    maintenance
    An unofficial prototype MCP server providing HR system functionality with Okta token validation, enabling employee information lookup, directory listing, payroll access, and time-off request management.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables workplace self-service tasks such as directory lookup, time-off management, ticket creation, and policy search, with write operations governed and compensation changes structurally denied.
    MIT