freee

freee is a skill for Claude Code, Codex from newbdez33/freee-mcp. It costs 73 tokens per session (5,088 once invoked), scanned A, original, MIT.

A skill for managing freee employee attendance through local tools or a command-line program. It supports either freee's public API or browser automation, with one selected backend used for each operation.

In plain words
What is it for?
Use it to choose a backend, sign in, check identity or punch status, record attendance actions, manage personal leave, and correct attendance records.
Why use it?
It keeps authentication and attendance actions controlled and prevents unexpected switching between connection methods after an error.

Skill for Claude CodeCodex

Written for Claude Code and Codex: ${CLAUDE_PLUGIN_ROOT} variable, but also agents/openai.yaml present. Also seen: mentions Claude Code.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the freee plugin — 1 skill, 1 MCP server shipped together

Good fit Use it to choose a backend, sign in, check identity or punch status, record attendance actions, manage personal leave, and correct attendance records.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add newbdez33/freee-mcp
Claude Code
/plugin install freee

Made for: Claude Code, Codex.

Or install freee, the plugin that ships this one along with the rest of its 1 skill, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for freee

README.md
[![agentmods](https://agentmods.dev/badge/skills/newbdez33/freee-mcp/freee/github.svg)](https://agentmods.dev/skills/newbdez33/freee-mcp/freee)
Your own site
<a href="https://agentmods.dev/skills/newbdez33/freee-mcp/freee"><img src="https://agentmods.dev/badge/skills/newbdez33/freee-mcp/freee/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for freee

Your own site · 80×15
<a href="https://agentmods.dev/skills/newbdez33/freee-mcp/freee"><img src="https://agentmods.dev/badge/skills/newbdez33/freee-mcp/freee.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,088 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.05088
Opus 5 $0.00036 $0.02544
Sonnet 5 $0.00015 $0.01018
Haiku 4.5 $0.00007 $0.00509

Measured 6d ago against content hash 3bf24c40cedd, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

freee scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/freee/SKILL.md · 112 lines

How it starts

The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.

freee Attendance

Prefer the installed freee MCP tools for business operations. Use the companion CLI only for local interactive authentication setup, diagnostics when MCP cannot start, or source development. Both entry points call the same FreeeService. Select one backend before any business operation and keep it for the whole process or command. FREEE_BACKEND=api|playwright is authoritative; unset or auto selects API when API configuration exists and Playwright otherwise. Never fall back to another backend or switch from MCP to CLI after an operation error. Never assume that Claude Code was started from the source repository.

Choose the workflow

  1. If MCP tools are available, call freee_backend_status; otherwise run CLI backend status. An explicit .env or process FREEE_BACKEND wins over credential detection. If it is auto, API configuration present means api; absent means playwright. Use the selected execution surface for the rest of that operation.
  2. In the API branch, use only API-backed commands. Cross-employee operations require the API role to allow them; attendance_manager is known not to support API team status.
  3. In the Playwright branch, use the corresponding MCP clock, monthly, personal-application, team, and approval tools. freee_monthly_status reads an explicitly requested personal work month or the month currently selected in freee; freee_personal_applications_list and freee_personal_application_detail read the employee-side 申請 workflow; freee_team_status returns the management view's visible members, closing application state, attendance issues, and work totals. freee_approvals_list and freee_approval_detail read the general manager-side 承認 workflow. Use the dedicated freee_monthly_approvals_list and freee_monthly_approval_review for another employee's 月次勤怠締め; the monthly list exposes the application's explicit paymentPeriod and its freee-mapped work period, and the review binds both months plus the exact application, one visible member, monthly summary, daily attendance table, alerts, and automatic checks. Never directly run the legacy project or ad-hoc browser actions.
  4. For API setup, run auth configure only after explicit approval. Prefer system, which stores Client Secret and Tokens in the System Keyring. In an installed plugin or agent package, use its resolved CLI path and persistent data directory; never invent a repository-relative command.
  5. For Playwright first-time setup, call freee_auth_status and show the exact setupCommand returned with WEB_CREDENTIALS_UNAVAILABLE. Instruct the user to run it directly in a local interactive terminal. The CLI hides username, password, and confirmation input, stores them in System Keychain, and returns no credential value. Never run it through a non-interactive Agent shell or accept credentials in chat. Use browser credentials-status only in a source-development checkout.
  6. For a real punch, call freee_clock_prepare_action, match the returned action and identity to the exact instruction or active scoped business policy, retain its fingerprint, and call freee_clock_commit_action with unchanged values and confirm: true. If the user's instruction already precisely authorized execution, do not pause merely because prepare completed later. With CLI-only hosts, use the equivalent status plus dedicated clock ... --confirm command.
  7. For a personal monthly attendance submission or withdrawal, call freee_monthly_status first. Include period when the user named a work month; Playwright selects that month through freee's official payment-month navigator and verifies the resulting work month before reading. Omit it only when the user intends the currently selected month. Evaluate every returned calendar warning against the exact instruction or policy. A non-empty warning not expressly covered by that authorization stops the item; do not infer safety from a separate department summary. Use freee_monthly_prepare_action, validate the preview and fingerprint on the user's behalf, then call freee_monthly_commit_action with confirm: true when it remains authorized. A known MONTHLY_PREVIEW_CHANGED result means no write occurred and may be reprepared under the same authorization.
  8. For the current employee's leave or work-time correction, call freee_personal_application_options first, including the date for leave. Use the exact returned leave label. If the selected leave form exposes a time range, provide the exact leave_start and leave_end; never accept or submit default 00:00 values. To request deletion of registered work time for one or more authorized dates, use one sequential create flow per date with kind=work-time-correction and work_time_action=delete, omit every clock and break field, and require each preview to show that exact date and action. This selects only 勤務時間を削除; it creates a 勤務時間修正 application and does not directly delete a raw work record. Never substitute an API whole-day delete, a partial label, or list position. Read existing applications with freee_personal_applications_list or freee_personal_application_detail. Use the matching personal-application prepare tool, evaluate the full preview against the exact instruction or active policy, retain the fingerprint, and commit with unchanged values and confirm: true without another prompt when it remains in scope. A deletion commit must be verified as one new same-date 勤務時間修正 whose content is exactly 勤務時間を削除; if freee does not expose that exact result, treat it as unknown and never retry. A cancellation commit creates a new cancellation application that may still require manager approval; only approve it when the authorized final outcome expressly includes that follow-up. Overtime is unavailable until the options tool reports it as both available and supported; never bypass company configuration.
  9. For a 月次勤怠締め application requiring manager action, call freee_monthly_approvals_list, then freee_monthly_approval_review for the exact No. Treat text such as 2026年09月の支払分 as a payment month, never as the work month. The dedicated workflow derives the work month from freee's displayed payment-month/work-month relationship, verifies that exact pair on both the attendance monitor and employee attendance page, and fails closed with MONTHLY_APPROVAL_PERIOD_MAPPING_UNCONFIRMED when the application payment month or page relationship is missing, inconsistent, or ambiguous. Never substitute a fixed one-month offset. Evaluate the applicant, paymentPeriod, work period, monthly summary, every daily row, alerts, and automatic checks against the exact instruction or active scoped business policy. Use the dedicated prepare and commit tools and retain the fingerprint on the user's behalf. For other employee applications, use the general approval list, detail, prepare, and commit tools. Before approving a 休暇, every pending approval page must be checked for a pending 勤務時間修正 with the exact same applicant and target date. Process every authorized matching 勤務時間修正 first, then reread and prepare the 休暇 approval again; never bypass LEAVE_APPROVAL_BLOCKED_BY_WORK_TIME_CORRECTION, and fail closed on LEAVE_APPROVAL_DEPENDENCY_UNCONFIRMED. The commit repeats this check and reopens the exact target before any click. This dependency rule does not block returning a 休暇 or processing the 勤務時間修正 itself. Before summarizing or preparing a pending 勤務時間修正, read its detail and present workTimeChange.before and workTimeChange.after; each null time means freee displayed 未入力. If workTimeChange is null, state that a reliable comparison is unavailable and do not infer one from flattened list content; it still blocks a same-applicant, same-date 休暇 approval while pending. All lists are paginated; read every pending page for each complete scan.
  10. For any other request or CLI syntax, check references/commands.md. Do not improvise an API, MCP, or browser workflow that lacks a dedicated tool or command.

Read the full file on GitHub · 112 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago Changed · -2 lines 3bf24c40cedd
  2. 9d ago First seen · 114 lines · 73 tokens per session scan A b2bf6f016205

Subscribe to this mod's changes

freee is a skill published in the GitHub repository newbdez33/freee-mcp (0 stars, last pushed 9d ago), licensed MIT. It adds 73 tokens to every session and 5,088 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.