Skip to main content
Glama

Work Journal MCP Server

チームの誰もがSimplified HR Work JournalをClaudeを通じて読めるようにするホスト型MCPサーバーです。自分のエントリーは常に、同僚のエントリーは既存のWork Journal権限で許可されている場合にのみ読めます。

読み取り専用です。ここにあるどのツールもエントリーを作成、変更、削除することはできません。

接続(任意のClaudeクライアントから)

どのクライアントでも同じ手順です。URLでサーバーを追加し、開いたブラウザウィンドウでサインインします。

Claude Desktop または claude.ai — 設定 → コネクタ → カスタムコネクタを追加 →

https://wj-mcp.dev.besimplified.net/mcp

Claude Code

claude mcp add work-journal --transport http https://wj-mcp.dev.besimplified.net/mcp

どちらの場合もブラウザウィンドウが開きます。Simplified HRのメールアドレスとパスワードでサインインします。開発環境ではワークスペースも入力します。例: development-hr.dev.besimplified.net

このデバイスがアカウントサービスにとって初めての場合は、メールまたはSMSで確認コードが送信されます。一度入力すれば、同じクライアントから再度求められることはありません。

パスワードがClaudeに届くことはなく、このサーバーがパスワードを保存することもありません。

ツール

work_journal_get_entries

日付または最大31日間の範囲について、タスクの詳細を含むエントリーを取得します。

パラメータ

備考

date

単日日付。YYYY-MM-DD

start_date, end_date

包含範囲。dateの代わりに使用

type

任意。後述のエイリアス表を参照。省略すると全タイプ

member

任意。work_journal_find_memberで取得した別メンバーのID

include_tasks

任意。デフォルトはtruefalseにするとステータスのみが1回のリクエストで返る

例: "先週のEODエントリーを表示して"

work_journal_get_day

1日分を完全に取得: すべてのタスクのメモ、添付ファイル、通知先、ETA、提出時刻。

パラメータ

備考

date

必須。YYYY-MM-DD

type

任意。単一のエントリータイプに絞る

member

任意。別メンバーのID

例: "8月4日に何を記録した?"

work_journal_get_summary

任意の期間におけるタイプ別・ステータス別の件数。日ごとの詳細はありません。31日を超える場合はこれを使用します。

パラメータ

備考

start_date, end_date

包含範囲

year

暦年全体。明示的な範囲がない場合に使用

type

任意

member

任意。別メンバーのID

例: "今年、EOWレポートを何回逃した?"

work_journal_find_member

名前またはメールの一部から同僚を検索し、そのメンバーIDを返します。上記ツールの member として使用します。

パラメータ

備考

query

名前またはメールの一部。2文字以上

例: "RahulのメンバーIDを探して"

work_journal_get_team_report

期間内の提出済み、保留中、未提出の件数をメンバーごとに1行で返します。

パラメータ

備考

start_date, end_date

必須。包含範囲

type

任意。デフォルトはEOD

team

任意のチームID、またはリテラル unassigned

status

任意: submittedpendingmissed

member

任意。1メンバーに絞る

limit, page

任意。デフォルト15行、最大50

例: "先週EODを逃したのは誰?"

タイプエイリアス

指定できる表現

解決先

表示名

eod, daily, end of day

daily

EOD

eow, weekly, end of week

weekly

EOW

group eow, group weekly

group_weekly

Group EOW

eom, monthly, end of month

monthly

EOM

マッチングでは大文字小文字を無視し、スペース、ハイフン、アンダースコアを同等に扱います。

誰が誰のジャーナルを見られるか

このサーバーは独自の権限を強制しません。すべてのリクエストにはあなた自身のSimplified HRセッションが含まれ、Work Journal APIはWeb UIで適用されるのとまったく同じ権限を適用します。

  • インスタンス権限 — 会社の任意のメンバーを読むことができます

  • グループ権限 — 自分のレポート配下のメンバーを読むことができます

  • どちらもない — 自分のジャーナルのみ読むことができ、他のメンバーのジャーナルへの試みは拒否されます

同僚のエントリーを読む際に知っておくべきことが2つあります。リクエストが完全に拒否される可能性があることと、管理者ビューでは下書き、予定済み、非公開エントリーが除外されることです。したがって、エントリーがないことは何も記録されていないことを証明しません。

制限

  • work_journal_get_entries は31日を超える範囲を拒否し、work_journal_get_summary を案内します

  • ツール呼び出しごとに最大4リクエストが並行して実行されるため、広い範囲でもAPIに優しくなっています

  • "先週" などの相対日付は呼び出し前にClaudeによって解決されます。ツールは YYYY-MM-DD のみを受け付けます

ローカルでの実行

npm install
cp .env.example .env      # then fill in the two secrets
WJ_ENV=dev \
WJ_PUBLIC_BASE_URL=http://localhost:8080 \
WJ_TOKEN_KEY=$(openssl rand -hex 32) \
WJ_FINGERPRINT_SECRET=$(openssl rand -hex 32) \
npm start

GET /healthz{"status":"ok"} を返す必要があります。環境変数なしで node src/index.js を実行すると、不足している変数をすべて列挙して即座に終了しなければなりません。

環境変数

変数

必須

目的

WJ_ENV

はい

ホストのプリセットを選択: dev または prod。デフォルトがないため、空の値が本番を開発ホストに静かに向けることはありません

WJ_PUBLIC_BASE_URL

はい

外部から到達可能なオリジン。OAuthディスカバリ文書に公開されます

WJ_TOKEN_KEY

はい

64桁の16進文字列。セッションエンベロープを暗号化します

WJ_FINGERPRINT_SECRET

はい

32文字以上。各メンバーのデバイスフィンガープリントを導出します

WJ_API_BASE_URL

いいえ

WJ_ENVのプリセットと異なる場合のプラグインAPIホスト

WJ_AUTH_BASE_URL

いいえ

プリセットと異なる場合のアカウントサービスのオリジン

WJ_PORT

いいえ。デフォルトは 8080

リッスンポート

WJ_REQUEST_TIMEOUT_MS

いいえ。デフォルトは 15000

リクエストごとのタイムアウト

WJ_FINGERPRINT_SECRET はすべてのタスクで同一でなければならず、気軽にローテーションしてはいけません。 これは各メンバーの安定したデバイスフィンガープリントを導出するもので、変更するとチーム全員に確認コードの再入力が求められます。

デプロイに関する注意

  • Cookieスティッキネスが必要なのは /authorize のみです。OTP送信はログインを開始したタスクに到達する必要があります。進行中のログインはそのプロセスのメモリに5分間保持されるためです。/mcp/token はステートレスであり、スティッキーであってはなりません。

  • 両方のシークレットはSSMパラメータストアに SecureString として保存し、タスク定義の secrets ブロックから参照します。環境リテラルとして決して使用しないでください。最初のデプロイ前に環境ごとに一度作成してください。プラットフォームの他の何も /hr/work-journal-mcp/ プレフィックスを使用しないため、既に存在することはありません:

    aws ssm put-parameter --type SecureString --name /hr/work-journal-mcp/<env>/token_key           --value "$(openssl rand -hex 32)"
    aws ssm put-parameter --type SecureString --name /hr/work-journal-mcp/<env>/fingerprint_secret  --value "$(openssl rand -hex 32)"

    ecsTaskExecutionRole には両方に対する ssm:GetParameterskms:Decrypt が必要です。これがないと、このコードが実行される前に、タスクは起動時に ResourceInitializationError で失敗します。

  • 本番環境は開発環境で必須の workspace ログインフィールドを拒否するため、ログインページでは開発環境以外では非表示になります。

セキュリティ

  • パスワードは保存もログ記録もされず、いかなる形でもブラウザに返されません。ログインに要する数秒間、メモリ上にのみ存在します。

  • セッション状態は、このサーバーだけが開くことができるAES-256-GCM暗号化エンベロープで送信されます。Simplified HR JWTがClaudeやモデルに届くことはありません。

  • アクセストークン、リフレッシュトークン、認可コードのエンベロープはそれぞれの種類に暗号的にバインドされているため、別の種類として使用することはできません。

  • ログイン試行はメールアドレスごとにレート制限されます。

  • すべてのツール呼び出しは、呼び出し元、ツール、読み取られたジャーナルのメンバーとともにログ記録されるため、メンバー間の読み取りを監査できます。トークンとエントリー内容は決してログ記録されません。

テスト

npm test
-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

View all MCP Connectors

Latest Blog Posts

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/sukanya005chakraborty-tech/Work-Journal-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server