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署名、有効期限、オーディエンスクレーム

  • 認可ヘッダー: 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)

  • プロトコル: MCP (Model Context Protocol) (NDJSONストリーミング)

  • トークン検証: 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