Work Journal MCP Server
Work Journal MCP-сервер
Размещенный MCP-сервер, который позволяет любому члену команды читать свой Simplified HR Work Journal через Claude — всегда свои собственные записи, а также записи коллег, если их существующие разрешения 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. В dev-среде также укажите ваш workspace, например development-hr.dev.besimplified.net.
Если это устройство ранее не встречалось в сервисе учетных записей, на вашу электронную почту или по SMS будет отправлен код подтверждения. Введите его один раз; в том же клиенте он больше не потребуется.
Ваш пароль никогда не передается в Claude, и этот сервер никогда его не хранит.
Инструменты
work_journal_get_entries
Записи с полной детализацией задач за дату или диапазон до 31 дня.
параметр | примечания |
| один день, |
| включающий диапазон, используется вместо |
| необязательно, см. таблицу псевдонимов ниже; опустите для всех типов |
| необязательно, id другого участника из |
| необязательно, по умолчанию |
Спросите: «покажи мои записи EOD за прошлую неделю»
work_journal_get_day
Одна дата полностью: все задачи с примечаниями и вложениями, уведомленными получателями, ETA и временем отправки.
параметр | примечания |
| обязательно, |
| необязательно, ограничивает одним типом записи |
| необязательно, id другого участника |
Спросите: «что я записал 4 августа?»
work_journal_get_summary
Количество по типам и статусам за любой период, без детализации по дням. Используйте это для периодов длиннее 31 дня.
параметр | примечания |
| включающий диапазон |
| целый календарный год, используется, если явный диапазон не задан |
| необязательно |
| необязательно, id другого участника |
Спросите: «сколько отчетов EOW я пропустил в этом году?»
work_journal_find_member
Находит коллегу по части имени или электронной почты и возвращает его id участника, для использования в качестве member в инструментах выше.
параметр | примечания |
| часть имени или email, не менее двух символов |
Спросите: «найди id участника Rahul»
work_journal_get_team_report
По одной строке на участника с количеством отправленных, ожидающих и пропущенных записей за период.
параметр | примечания |
| обязательно, включающий диапазон |
| необязательно, по умолчанию EOD |
| необязательный id команды или литерал |
| необязательно: |
| необязательно, ограничивает одного участника |
| необязательно; по умолчанию 15 строк, максимум 50 |
Спросите: «кто пропустил свой EOD на прошлой неделе?»
Псевдонимы типов
вы можете сказать | преобразуется в | отображается как |
|
|
|
|
|
|
|
|
|
|
|
|
Сопоставление не учитывает регистр и считает пробелы, дефисы и подчеркивания эквивалентными.
Кто может видеть чей журнал
Этот сервер не применяет собственных разрешений. Каждый запрос несет вашу собственную сессию Simplified HR, и Work Journal API применяет ровно те же разрешения, что и в веб-интерфейсе:
Разрешение инстанса — вы можете читать журнал любого участника вашей компании
Разрешение группы — вы можете читать участников в вашем поддереве подчиненных
Ни того, ни другого — вы можете читать только свой собственный журнал, и любая попытка прочитать чужой будет отклонена
Две вещи, которые нужно знать при чтении записей коллеги: запрос может быть отклонен напрямую, а представление администратора исключает черновики, запланированные и приватные записи. Поэтому отсутствие записи не доказывает, что ничего не было записано.
Ограничения
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 без окружения процесс должен немедленно завершиться, перечислив все отсутствующие переменные.
Переменные окружения
переменная | обязательная | назначение |
| да | выбирает предустановку хоста: |
| да | внешне доступный origin, публикуется в документах обнаружения OAuth |
| да | 64 шестнадцатеричных символа; шифрует конверт сессии |
| да | не менее 32 символов; формирует стабильный отпечаток устройства каждого участника |
| нет | хост плагинного API, если он отличается от предустановки для |
| нет | origin сервиса учетных записей, если он отличается от предустановки |
| нет, по умолчанию | порт прослушивания |
| нет, по умолчанию | таймаут на запрос |
WJ_FINGERPRINT_SECRET должен быть одинаковым для всех задач, и его нельзя менять без необходимости. Он формирует стабильный отпечаток устройства каждого участника; его изменение потребует повторной проверки всей команды с помощью кода подтверждения.
Примечания по развертыванию
Привязка cookie (stickiness) требуется только для
/authorize. Отправка OTP должна достичь той задачи, которая начала вход, поскольку незавершенный вход хранится в памяти этого процесса в течение пяти минут./mcpи/tokenне сохраняют состояние и не должны быть липкими.Оба секрета должны храниться в SSM Parameter Store как
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, которое требуется в dev, поэтому страница входа скрывает его вне dev.
Безопасность
Пароли никогда не хранятся, не логируются и не возвращаются в браузер в каком-либо виде. Они существуют только в памяти в течение тех секунд, пока выполняется вход.
Состояние сессии передается в зашифрованном конверте AES-256-GCM, который может открыть только этот сервер. JWT Simplified HR никогда не попадает в Claude или модель.
Конверты access, refresh и кода авторизации криптографически привязаны к своему типу, поэтому один не может быть использован как другой.
Попытки входа ограничиваются по количеству на каждый адрес электронной почты.
Каждый вызов инструмента логируется с указанием вызывающего, инструмента и участника, чей журнал был прочитан, что делает чтение чужих журналов аудируемым. Токены и содержимое записей никогда не логируются.
Тесты
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