Work Journal MCP Server
Work Journal MCP Server
チームの誰もがSimplified HR Work JournalをClaudeを通じて読めるようにするホスト型MCPサーバーです。自分のエントリーは常に、同僚のエントリーは既存のWork Journal権限で許可されている場合にのみ読めます。
読み取り専用です。ここにあるどのツールもエントリーを作成、変更、削除することはできません。
接続(任意のClaudeクライアントから)
どのクライアントでも同じ手順です。URLでサーバーを追加し、開いたブラウザウィンドウでサインインします。
Claude Desktop または claude.ai — 設定 → コネクタ → カスタムコネクタを追加 →
https://wj-mcp.dev.besimplified.net/mcpClaude 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日間の範囲について、タスクの詳細を含むエントリーを取得します。
パラメータ | 備考 |
| 単日日付。 |
| 包含範囲。 |
| 任意。後述のエイリアス表を参照。省略すると全タイプ |
| 任意。 |
| 任意。デフォルトは |
例: "先週のEODエントリーを表示して"
work_journal_get_day
1日分を完全に取得: すべてのタスクのメモ、添付ファイル、通知先、ETA、提出時刻。
パラメータ | 備考 |
| 必須。 |
| 任意。単一のエントリータイプに絞る |
| 任意。別メンバーのID |
例: "8月4日に何を記録した?"
work_journal_get_summary
任意の期間におけるタイプ別・ステータス別の件数。日ごとの詳細はありません。31日を超える場合はこれを使用します。
パラメータ | 備考 |
| 包含範囲 |
| 暦年全体。明示的な範囲がない場合に使用 |
| 任意 |
| 任意。別メンバーのID |
例: "今年、EOWレポートを何回逃した?"
work_journal_find_member
名前またはメールの一部から同僚を検索し、そのメンバーIDを返します。上記ツールの member として使用します。
パラメータ | 備考 |
| 名前またはメールの一部。2文字以上 |
例: "RahulのメンバーIDを探して"
work_journal_get_team_report
期間内の提出済み、保留中、未提出の件数をメンバーごとに1行で返します。
パラメータ | 備考 |
| 必須。包含範囲 |
| 任意。デフォルトはEOD |
| 任意のチームID、またはリテラル |
| 任意: |
| 任意。1メンバーに絞る |
| 任意。デフォルト15行、最大50 |
例: "先週EODを逃したのは誰?"
タイプエイリアス
指定できる表現 | 解決先 | 表示名 |
|
|
|
|
|
|
|
|
|
|
|
|
マッチングでは大文字小文字を無視し、スペース、ハイフン、アンダースコアを同等に扱います。
誰が誰のジャーナルを見られるか
このサーバーは独自の権限を強制しません。すべてのリクエストにはあなた自身の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 startGET /healthz は {"status":"ok"} を返す必要があります。環境変数なしで node src/index.js を実行すると、不足している変数をすべて列挙して即座に終了しなければなりません。
環境変数
変数 | 必須 | 目的 |
| はい | ホストのプリセットを選択: |
| はい | 外部から到達可能なオリジン。OAuthディスカバリ文書に公開されます |
| はい | 64桁の16進文字列。セッションエンベロープを暗号化します |
| はい | 32文字以上。各メンバーのデバイスフィンガープリントを導出します |
| いいえ |
|
| いいえ | プリセットと異なる場合のアカウントサービスのオリジン |
| いいえ。デフォルトは | リッスンポート |
| いいえ。デフォルトは | リクエストごとのタイムアウト |
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:GetParametersとkms:Decryptが必要です。これがないと、このコードが実行される前に、タスクは起動時にResourceInitializationErrorで失敗します。本番環境は開発環境で必須の
workspaceログインフィールドを拒否するため、ログインページでは開発環境以外では非表示になります。
セキュリティ
パスワードは保存もログ記録もされず、いかなる形でもブラウザに返されません。ログインに要する数秒間、メモリ上にのみ存在します。
セッション状態は、このサーバーだけが開くことができるAES-256-GCM暗号化エンベロープで送信されます。Simplified HR JWTがClaudeやモデルに届くことはありません。
アクセストークン、リフレッシュトークン、認可コードのエンベロープはそれぞれの種類に暗号的にバインドされているため、別の種類として使用することはできません。
ログイン試行はメールアドレスごとにレート制限されます。
すべてのツール呼び出しは、呼び出し元、ツール、読み取られたジャーナルのメンバーとともにログ記録されるため、メンバー間の読み取りを監査できます。トークンとエントリー内容は決してログ記録されません。
テスト
npm testThis 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 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.
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/sukanya005chakraborty-tech/Work-Journal-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server