freee Accounting MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freee Accounting MCP Serverlist my unpaid invoices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server for freee Accounting API
A Model Context Protocol (MCP) server that provides integration with freee accounting software API, enabling AI assistants to interact with accounting data.
Features
OAuth 2.0 authentication flow support
Company management
Transaction (Deal) operations
Account items management
Partner management
Sections and Tags
Invoice creation and management
Trial balance reports
Token persistence and automatic refresh
Related MCP server: freee MCP Server
Prerequisites
Node.js 20 or higher
freee API credentials (Client ID and Client Secret)
freee account with API access
Quick Start
Choose one of the following methods to get started:
Option A: npx (no local build required)
Add the following to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"freee": {
"command": "npx",
"args": ["-y", "github:knishioka/freee-mcp"],
"env": {
"FREEE_CLIENT_ID": "your_client_id",
"FREEE_CLIENT_SECRET": "your_client_secret",
"FREEE_TOKEN_ENCRYPTION_KEY": "replace-with-strong-random-value"
}
}
}
}Note: The first launch with
npxmay take 30–60 seconds while dependencies are downloaded and TypeScript is compiled. Subsequent launches will be faster.
Option B: Local build
git clone https://github.com/knishioka/freee-mcp.git
cd freee-mcp
npm install && npm run build{
"mcpServers": {
"freee": {
"command": "node",
"args": ["/absolute/path/to/freee-mcp/dist/index.js"],
"env": {
"FREEE_CLIENT_ID": "your_client_id",
"FREEE_CLIENT_SECRET": "your_client_secret",
"FREEE_TOKEN_ENCRYPTION_KEY": "replace-with-strong-random-value"
}
}
}
}See the Installation section for detailed setup instructions including environment variables and additional MCP client configurations.
Which method should I use?
Use case | Recommended method |
Quick evaluation / no Node.js dev setup | npx |
Active development / offline use | Local build |
Installation
Clone the repository:
git clone https://github.com/knishioka/freee-mcp.git
cd freee-mcpInstall dependencies:
npm installBuild the TypeScript code:
npm run buildCopy the environment example file and configure it:
cp .env.example .envEdit
.envwith your freee API credentials:
FREEE_CLIENT_ID=your_client_id_here
FREEE_CLIENT_SECRET=your_client_secret_here
FREEE_REDIRECT_URI=urn:ietf:wg:oauth:2.0:oob
# TOKEN_STORAGE_PATH=./tokens.enc # Optional: defaults to platform-specific secure pathConfiguration
Getting freee API Credentials
Log in to your freee account
Go to the freee App Store
Create a new application
Note down the Client ID and Client Secret
Set the redirect URI (use
urn:ietf:wg:oauth:2.0:oobfor local development)
MCP Client Configuration
Build the server first (npm run build), then configure one of the clients below.
Environment Variables
Variable | Required | Description | Default |
| Yes | freee OAuth app client ID. The server exits on startup if this is missing. | — |
| Yes | freee OAuth app client secret. The server exits on startup if this is missing. | — |
| No | Default company ID used when tool calls omit | — |
| No | Encrypted token storage file path. | Platform-specific ( |
| Yes | Secret used to derive the AES-256-GCM key for token encryption. The server exits on startup if this is missing. Generate with: | — |
| No | Base64-encoded JSON of | — |
{
"mcpServers": {
"freee": {
"command": "node",
"args": ["/absolute/path/to/freee-mcp/dist/index.js"],
"env": {
"FREEE_CLIENT_ID": "your_client_id_here",
"FREEE_CLIENT_SECRET": "your_client_secret_here",
"TOKEN_STORAGE_PATH": "/absolute/path/to/freee-mcp/tokens.enc",
"FREEE_DEFAULT_COMPANY_ID": "123456",
"FREEE_TOKEN_ENCRYPTION_KEY": "replace-with-strong-random-value"
}
}
}
}claude mcp add freee \
-e 'FREEE_CLIENT_ID=your_client_id_here' \
-e 'FREEE_CLIENT_SECRET=your_client_secret_here' \
-e 'TOKEN_STORAGE_PATH=/absolute/path/to/freee-mcp/tokens.enc' \
-e 'FREEE_DEFAULT_COMPANY_ID=123456' \
-e 'FREEE_TOKEN_ENCRYPTION_KEY=replace-with-strong-random-value' \
-- node /absolute/path/to/freee-mcp/dist/index.js{
"servers": {
"freee": {
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"],
"env": {
"FREEE_CLIENT_ID": "your_client_id_here",
"FREEE_CLIENT_SECRET": "your_client_secret_here",
"TOKEN_STORAGE_PATH": "${workspaceFolder}/tokens.enc",
"FREEE_DEFAULT_COMPANY_ID": "123456",
"FREEE_TOKEN_ENCRYPTION_KEY": "replace-with-strong-random-value"
}
}
}
}{
"mcpServers": {
"freee": {
"command": "node",
"args": ["/absolute/path/to/freee-mcp/dist/index.js"],
"env": {
"FREEE_CLIENT_ID": "your_client_id_here",
"FREEE_CLIENT_SECRET": "your_client_secret_here",
"FREEE_TOKEN_DATA_BASE64": "base64-encoded-json",
"FREEE_DEFAULT_COMPANY_ID": "123456",
"FREEE_TOKEN_ENCRYPTION_KEY": "replace-with-strong-random-value"
}
}
}
}Usage
Authentication Methods
Method 1: Using Setup Script (Recommended)
Run the interactive setup script:
npm run setup-authThis script will:
Load credentials from
.envfile if availableCheck for existing tokens in
tokens.encOpen the authorization URL in your browser
Wait for you to authorize and get the code
Exchange the code for tokens immediately
Save tokens to
tokens.encor display environment variables
After running this script, use a file-based token configuration like the Claude Desktop or VS Code examples above.
Method 2: Environment Variables
If you already have tokens, provide them via environment variables (for example FREEE_TOKEN_DATA_BASE64 in the Cursor example above).
Method 3: Manual Flow (Not Recommended)
Get the authorization URL:
Use tool: freee_get_auth_urlVisit the URL in a browser and authorize the application
Copy the authorization code from the redirect
Exchange the code for an access token:
Use tool: freee_get_access_token with code: "your_auth_code"Note: The authorization code expires quickly, so this method often fails.
Handling Multiple Companies
freee MCP supports multiple companies. When you authenticate, the server automatically obtains access to all companies associated with your freee account.
Setting a Default Company
To avoid specifying companyId for every API call, you can set a default company ID:
{
"env": {
"FREEE_DEFAULT_COMPANY_ID": "123456"
}
}To find your company IDs, use the freee_get_companies tool after authentication.
Using Multiple Companies
If you don't set a default company ID, you must specify companyId for each API call:
// With default company ID set:
Use tool: freee_get_deals
// Without default company ID:
Use tool: freee_get_deals with companyId: 123456Available Tools
Authentication
freee_get_auth_url- Get OAuth authorization URLfreee_get_access_token- Exchange auth code for access tokenfreee_set_company_token- Manually set token for a company
Company Operations
freee_get_companies- List accessible companiesfreee_get_company- Get company details
Transaction (Deal) Operations
freee_get_deals- List transactionsfreee_get_deal- Get transaction detailsfreee_create_deal- Create new transaction
Master Data
freee_get_account_items- List account itemsfreee_get_partners- List partnersfreee_create_partner- Create new partnerfreee_get_sections- List sectionsfreee_get_tags- List tags
Invoice Operations
freee_get_invoices- List invoicesfreee_create_invoice- Create new invoice
Reports
freee_get_trial_balance- Get trial balance reportfreee_get_profit_loss- Get profit and loss statement - Optimal for operating profit!freee_get_balance_sheet- Get balance sheet
Efficient Operating Profit Retrieval
Instead of retrieving large amounts of individual transactions, use the Profit & Loss API (freee_get_profit_loss) to get financial data including operating profit with a single API call.
# Example: Get operating profit for fiscal year 2024
Use tool: freee_get_profit_loss
Parameters:
- fiscalYear: 2024
- startMonth: 4 # Start of fiscal year
- endMonth: 3 # End of fiscal yearThis API returns pre-aggregated information including:
Revenue
Cost of goods sold
Gross profit
Selling, general & administrative expenses
Operating profit ← Here!
Non-operating income/expenses
Ordinary profit
Extraordinary gains/losses
Net income
Usage Examples
Check Monthly Operating Profit Trends
# Operating profit from April to June 2024
Use tool: freee_get_profit_loss
Parameters:
- fiscalYear: 2024
- startMonth: 4
- endMonth: 6Get Operating Profit for Year-over-Year Comparison
# Current period (FY2024)
Use tool: freee_get_profit_loss
Parameters:
- fiscalYear: 2024
- startMonth: 4
- endMonth: 9
# Previous period (FY2023)
Use tool: freee_get_profit_loss
Parameters:
- fiscalYear: 2023
- startMonth: 4
- endMonth: 9Partner-wise Operating Profit Analysis
Use tool: freee_get_profit_loss
Parameters:
- fiscalYear: 2024
- startMonth: 4
- endMonth: 12
- breakdownDisplayType: "partner" # Breakdown by partnerPerformance Comparison
Aggregating operating profit from individual deals can require thousands of API calls and significant client-side processing. The freee_get_profit_loss tool returns pre-aggregated report data in a single request, which dramatically reduces rate-limit usage. For most reporting flows, start with report APIs and only fetch raw deals when you need detailed drill-down.
The freee_kpi_dashboard tool is the first structured output PoC: it keeps the existing text response for current clients and also returns structuredContent with the company, period, and profitability / safety / efficiency / liquidity KPI sections for UI and automation use.
Tip: Set FREEE_DEFAULT_COMPANY_ID so report calls work without passing companyId each time.
Development
Building
npm run buildDevelopment Mode
npm run devLinting
npm run lintType Checking
npm run typecheckToken Management
The server automatically manages OAuth tokens:
Tokens are stored in the file specified by
TOKEN_STORAGE_PATHTokens are automatically refreshed when they expire
Each company can have its own token
Error Handling
The server provides detailed error messages for:
Authentication failures
API rate limits
Invalid parameters
Network errors
Security
Token Security
Encryption at Rest: All tokens are encrypted using AES-256-GCM before storage
File Permissions: Token files are created with 0600 permissions (owner read/write only)
Secure Storage Paths: Platform-specific secure directories are used by default
Automatic Refresh: Tokens are refreshed 5 minutes before expiry to prevent race conditions
Single-Use Refresh Tokens: freee refresh tokens are handled correctly with proper error recovery
General Security Guidelines
Never commit your
.envfile or token filesNever commit client config files that embed secrets (for example
.vscode/mcp.json,~/.cursor/mcp.json, or Claude Desktop config files)Keep your Client Secret secure
Use absolute paths for token storage outside the project directory
Store tokens in platform-specific secure locations (e.g.,
~/.config/freee-mcp/)Use
FREEE_TOKEN_ENCRYPTION_KEYfor custom encryption keys
Token Storage Options
File-Based Storage (Default)
# Default locations:
# macOS: ~/Library/Application Support/freee-mcp/tokens.enc
# Windows: %APPDATA%/freee-mcp/tokens.enc
# Linux: ~/.config/freee-mcp/tokens.enc
# Custom location via environment:
export TOKEN_STORAGE_PATH=/custom/path/tokens.encPersistent across sessions
Encrypted with configurable key
Automatic permission management
Requires file system access
Environment Variable Storage
# Base64 encoded token data (recommended for restricted environments)
export FREEE_TOKEN_DATA_BASE64="base64-encoded-json"
# Individual token variables (legacy)
export FREEE_ACCESS_TOKEN="your-access-token"
export FREEE_REFRESH_TOKEN="your-refresh-token"
# FREEE_COMPANY_ID is required to associate the token with a specific company
export FREEE_COMPANY_ID="12345"Works in serverless and restricted environments (e.g., Claude Desktop)
No file system dependencies
Easy to manage in CI/CD
Secret Detection with Gitleaks
This project uses Gitleaks to prevent accidental exposure of sensitive data:
Pre-commit Hook: Automatically scans for secrets before each commit
CI/CD Integration: GitHub Actions runs security scans on all PRs
Custom Rules: Detects freee-specific credentials (Client ID, Secret, tokens)
Manual Scanning: Run
npm run gitleaksto check for secrets locally
Available Commands:
npm run gitleaks # Scan for secrets (non-blocking)
npm run gitleaks:ci # Scan for secrets (CI mode, blocks on findings)Troubleshooting
Authentication Issues
Authentication errors: Ensure your Client ID and Secret are correct. Re-run
npm run setup-authif needed"Token refresh failed: invalid_grant": freee refresh tokens are single-use. Re-authenticate by running
npm run setup-auth"No authenticated companies found": Run
freee_get_auth_urlto start OAuth flow, then complete authorization in browser"Permission denied" on token file: Server automatically fixes permissions. Ensure parent directory is writable
"Cannot find tokens.enc": Use absolute paths in configuration, or try environment variable storage for restricted environments
General Issues
Token expiration: The server automatically refreshes tokens 5 minutes before expiry
Rate limits: freee API has rate limits (3,600 requests/hour). Use aggregated report APIs to minimize calls
Company ID required: Most operations require a company ID. Set
FREEE_DEFAULT_COMPANY_IDto avoid specifying it each time
License
MIT
Support
For issues related to:
This MCP server: Create an issue in this repository
freee API: Consult freee Developers Community
MCP protocol: See MCP documentation
Available Tools
60 toolsfreee_accounting_policy_contextA
Get accounting policy context for decision support (会計方針ガイダンスコンテキスト) - Returns similar past journal patterns, fixed asset capitalization patterns, and relevant account items with tax codes to help determine proper accounting treatment. Use when the user asks about asset vs expense classification, depreciation methods, deferred expense treatment, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| situation | Yes | 会計処理を判断したい状況の説明 (例: "SaaS初期費用50万円の処理", "固定資産の減価償却方法") | |
| amount | No | 金額 (任意、指定すると金額に基づく判断コンテキストが追加される) | |
| partnerName | No | 取引先名 (任意、指定すると取引先の過去パターンも検索する) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return content (past journal patterns, capitalization patterns, account items with tax codes) but does not mention side effects, idempotency, or authentication requirements. It is adequate but lacks depth for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and use cases, and includes practical examples. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description explains the return content adequately for a context tool. It covers what patterns and items are returned. Missing details on error handling or edge cases, but overall sufficient for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minor value by explaining optional parameters (amount, partnerName) and their effect, but mostly restates schema descriptions. It does not provide significant new meaning beyond what is in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get accounting policy context for decision support' with specific examples like asset vs expense classification, depreciation methods, and deferred expense treatment. This distinguishes it well from sibling tools such as freee_item_suggestion_context and freee_master_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use when the user asks about asset vs expense classification, depreciation methods, deferred expense treatment, etc.' It provides clear context but does not explicitly mention when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_account_item_contextA
Get account item (勘定科目) recommendation context for a transaction - Analyzes past deals by partner/amount to suggest the most likely account items with usage frequency, tax classification, and similar transaction patterns. Ideal for consistent bookkeeping when unsure which account item to use.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| description | Yes | 取引内容の説明 (e.g. "AWS利用料", "オフィス家賃") | |
| partnerName | No | 取引先名 (e.g. "Amazon Web Services") | |
| partnerId | No | 取引先ID | |
| amount | No | 取引金額(類似金額の取引パターンを検索) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It reveals that the tool analyzes past deals by partner/amount and returns suggestions with usage frequency, tax classification, and patterns. This is sufficient for a read-like context tool, though it could mention that it does not modify data or any performance considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, methodology, and ideal usage. No wasted words. Information is front-loaded: first sentence states the core function. Each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description must explain returns. It states what is suggested (account items, usage frequency, tax classification, patterns). Given the sibling set, it sufficiently differentiates. Could be more explicit about the format or depth of context, but overall complete enough for an agent to understand the tool's utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes all 5 parameters with 100% coverage, so baseline is 3. The description adds high-level context (e.g., 'analyzes past deals by partner/amount'), but it does not provide additional per-parameter details beyond the schema. The parameter descriptions in the schema are already adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get account item recommendation context for a transaction'. It explains the action (analyzes past deals) and the output (suggest account items, usage frequency, tax classification, patterns). This distinguishes it from siblings like 'freee_item_suggestion_context' or 'freee_master_context'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: 'Ideal for consistent bookkeeping when unsure which account item to use.' This implies when to use, but does not explicitly state when not to use or mention alternative tools. Sibling list shows similar tools, but no direct comparison is made, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_approve_expense_applicationA
Approve, reject, or send back an expense application (経費精算承認) - Executes approval workflow actions. Requires target_step_id and target_round from the expense application detail (use freee_get_expense_application first). Actions: approve (承認), reject (却下), feedback (差戻し).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| expenseApplicationId | Yes | Expense application ID | |
| approvalAction | Yes | Approval action (approve: 承認する, reject: 却下する, feedback: 差し戻す) | |
| targetStepId | Yes | Target approval step ID (from expense application detail current_step_id) | |
| targetRound | Yes | Target round number (from expense application detail current_round) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Indicates it is a mutation function (executes approval actions), but lacks details on idempotency, side effects, or error handling. Without annotations, some behavioral context is missing, such as whether actions are reversible or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, action-focused and front-loaded with the tool's purpose, prerequisite, and action list. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not mention return values or error behavior. For a mutation tool, knowing what response to expect (e.g., success message, updated object) is important but missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds valuable context by explaining that target_step_id and target_round come from the expense application detail, and by providing Japanese translations for approval actions. This goes beyond the schema's enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool can approve, reject, or send back an expense application, naming specific actions and stating it executes approval workflow actions. This distinguishes it from sibling tools like freee_get_expense_application which are read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs users to use freee_get_expense_application first to obtain required fields (target_step_id, target_round). Does not explicitly state when not to use, but provides necessary prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_ar_agingA
Accounts receivable aging analysis (売掛金エイジング分析) - Classifies unsettled income deals into aging buckets (0-30, 31-60, 61-90, 90+ days) by days since issue_date, aggregates by partner, and highlights long-overdue receivables. Use for cash flow risk assessment and collection prioritization.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| as_of_date | No | Base date for aging calculation (YYYY-MM-DD). Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully carries the burden of behavioral disclosure. It explains the classification logic (aging buckets based on issue_date), aggregation behavior, and output (overdue highlights). While it doesn't detail side effects or exact return format, the description is sufficiently transparent for an analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core functionality and followed by a usage note. Every sentence is informative and necessary, with no redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (two optional parameters, no output schema) and rich sibling context, the description adequately covers what the tool does and its intended use. It lacks explicit output structure details, but for a standard aging analysis, the description is complete enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described). The description adds marginal value beyond schema by mentioning 'by days since issue_date', which relates to as_of_date. However, no additional format or usage details are provided beyond what the schema already covers, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs accounts receivable aging analysis, classifying unsettled deals into specific aging buckets by days since issue_date, aggregating by partner, and highlighting overdue receivables. It clearly distinguishes from sibling tools by specifying the exact analysis type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions usage for cash flow risk assessment and collection prioritization, providing clear context. It does not explicitly state when not to use it or compare to alternatives, but the purpose is well-defined enough to avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_auth_statusA
Check authentication status for freee API tokens - Shows token validity, expiry time, and remaining minutes for one or all authenticated companies. Use to verify auth before making API calls.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully communicates behavior: it reports token validity, expiry, and remaining minutes for one or all authenticated companies. It implies a read-only, non-destructive operation, which is appropriate. No contradictions or hidden side effects are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and immediate details. Every word earns its place without redundancies. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns (validity, expiry, remaining minutes) and when to use it. It could be more specific about the response structure, but for a simple status check, this is sufficient. It covers the optional parameter usage and the scope (one or all companies).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the one optional parameter (companyId) with a clear description. The tool description adds the ability to check 'one or all' companies, but this is not reflected in the schema (which implies a single company via default). This creates slight ambiguity, but the description does add context beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'authentication status for freee API tokens', then details what it shows: token validity, expiry time, and remaining minutes. This distinguishes it from sibling tools like freee_get_access_token (token acquisition) and freee_clear_auth (token revocation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'Use to verify auth before making API calls', providing clear context for when to invoke. While it doesn't list negative cases or alternative tools, this guidance directly supports agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_cash_positionA
Get consolidated cash position overview - Single call combines walletable balances, unpaid invoices (receivables), and unsettled expense deals (payables) into one summary. Provides total cash, net position, and overdue amounts for quick financial health assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains what data is aggregated (walletable balances, invoices, expense deals) and the output metrics (total cash, net position, overdue amounts). However, it does not explicitly state that this is a read-only operation (e.g., no data modification) or disclose any authentication or rate limit requirements. While the description is fairly transparent, it could be more explicit about safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states purpose and components, the second lists outputs. Every word serves a purpose. No redundancy, front-loaded with the key verb 'Get'. Highly concise and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is sufficient. It explains the output fields (total cash, net position, overdue amounts), enabling the agent to understand what data to expect. Could potentially add currency details, but overall it's complete for a consolidated overview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists (companyId), and the schema description coverage is 100% (the schema already provides a description). The description adds extra context: 'optional, uses FREEE_DEFAULT_COMPANY_ID if not provided.' This additional semantic information about default behavior adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get consolidated cash position overview' and explicitly lists the components (walletable balances, unpaid invoices, unsettled expense deals) and outputs (total cash, net position, overdue amounts). This specificity distinguishes it from sibling tools like freee_ar_aging (focused on receivables aging) and freee_get_walletables (wallet balances).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the go-to for a quick financial health assessment by saying 'Single call combines... into one summary.' However, it does not provide explicit when-to-use or when-not-to-use guidance, nor does it compare to alternatives like freee_ar_aging for detailed receivables analysis. The context is clear but lacks exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_clear_authA
Clear stored authentication tokens. If companyId is specified, clears only that company. If omitted, clears all companies. Use this when you need to re-authenticate or resolve token issues.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID to clear authentication for. If omitted, clears all companies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it clears tokens and the behavior based on companyId. No annotations exist, but the description provides adequate behavioral context for a simple operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that are front-loaded with the main action, followed by parameter details and usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully explains the tool's purpose, parameter behavior, and usage scenario. No output schema needed; everything is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaningful explanation beyond the schema: explains the effect of providing or omitting companyId. Schema coverage is 100%, but description enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Clear stored authentication tokens') and the resource. Distinguishes between clearing a specific company vs all, and is distinct from sibling auth-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when you need to re-authenticate or resolve token issues.' Does not provide when-not-to-use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_compare_periodsA
Compare two financial periods with pre-computed diffs and percentages - Single call for YoY/MoM analysis. Returns metrics for both periods, absolute and percentage changes, and significance highlights. Eliminates LLM-side math for period comparisons.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| reportType | Yes | Type of financial report to compare | |
| period1 | Yes | First period to compare | |
| period2 | Yes | Second period to compare | |
| breakdownDisplayType | No | Breakdown display type (partner: 取引先, item: 品目, section: 部門, account_item: 勘定科目) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must cover behavioral traits. It discloses output (metrics, diffs, percentages, significance) but omits safety (read-only nature), authentication needs, error handling, or rate limits. It adds some context beyond schema (pre-computed, significance highlights) but lacks full disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the function and benefit, second lists the outputs. No redundant information, front-loaded with the core purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 5 parameters, nested objects, and no output schema. The description gives a high-level summary of outputs but lacks detail on return structure, error conditions, or edge cases. It leaves ambiguity for an AI agent to understand exact output format and potential failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each parameter is well-described in the schema. The tool description adds high-level context (compare two periods) but does not provide additional semantics for individual parameters beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it compares two financial periods with pre-computed diffs and percentages for YoY/MoM analysis. It specifies what it returns: metrics, absolute/percentage changes, and significance highlights. It differentiates from siblings by eliminating LLM-side math, making its unique value clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for period comparisons (YoY/MoM) by stating 'Single call... Eliminates LLM-side math.' However, it does not explicitly state when not to use this tool or list alternative tools for other comparison needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_cost_analysisA
Analyze expense structure with YoY anomaly detection and fixed/variable cost classification (費用構造分析) - Compares current and previous year P/L to flag expense items with year-over-year changes exceeding a configurable threshold. Classifies expense items as fixed or variable costs based on account category patterns. Use for cost health monitoring, identifying unexpected expense spikes, and understanding cost structure.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year to analyze | |
| month | No | Specific month to analyze (1-12). If omitted, analyzes cumulative year-to-date. | |
| threshold | No | Anomaly detection threshold percentage for year-over-year change (default: 50). Flags items with YoY change exceeding this percentage. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool compares current and previous year P/L, flags items exceeding a configurable threshold, and classifies costs as fixed/variable. It does not mention destructive behavior, auth needs, or output format, but covers the core behavioral traits adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: a concise title-like first sentence, a detailed second sentence on functionality, and a third on usage. It is front-loaded with key information. A small amount of redundancy exists (e.g., 'expense structure' mentioned twice), but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no output schema), the description covers purpose, parameters, and usage scenarios adequately. It lacks explicit mention of return values or pagination, but for an analysis tool, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the anomaly detection threshold ('flags items with YoY change exceeding this percentage') and the month behavior ('cumulative year-to-date if omitted'). This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific function: 'Analyze expense structure with YoY anomaly detection and fixed/variable cost classification.' It uses specific verbs (analyzes, compares, classifies) and identifies the resource (expense structure). This differentiates it from sibling tools like freee_compare_periods and freee_monthly_trends by highlighting anomaly detection and cost classification features.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use for cost health monitoring, identifying unexpected expense spikes, and understanding cost structure.' It provides clear usage context but does not mention when not to use or explicitly list alternatives, which would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_dealC
Create a new deal (transaction)
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| issueDate | Yes | Issue date (YYYY-MM-DD) | |
| type | Yes | Transaction type | |
| partnerId | No | Partner ID | |
| dueDate | No | Due date (YYYY-MM-DD) | |
| refNumber | No | Reference number | |
| details | Yes | Transaction details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'Create a new deal' without mentioning any side effects, authentication requirements, rate limits, or idempotency. The agent cannot assess risks or constraints from this description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly brief. While it front-loads the purpose, it leaves no room for additional useful context. Every sentence should earn its place, and here the one sentence is adequate but could be expanded with minimal added length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters (3 required) and no output schema, the description should provide context about the result of creating a deal (e.g., returns an ID) or error conditions. It does not. The schema covers parameter details, but the description lacks completeness about the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning each parameter already has a meaningful description in the schema. The tool description adds no additional explanation about parameters, so it meets the baseline expectation. It does not improve understanding beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new deal (transaction)' clearly states the verb 'create' and the resource 'deal', and includes a parenthetical to clarify it's a transaction. This distinguishes it from sibling tools like freee_update_deal and freee_get_deal. However, it lacks additional context about what constitutes a 'deal' in this domain, which could be clearer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as freee_create_deal_payment or freee_create_invoice. It neither mentions prerequisites nor when not to use it, leaving the agent to rely solely on the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_deal_paymentA
Record a payment for a deal (支払消込) - Add a payment entry to settle accounts receivable/payable. Supports partial payments (amount less than deal total). Use freee_get_walletables to look up wallet account IDs. Essential for monthly closing and cash management.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| dealId | Yes | Deal ID to add payment to | |
| date | Yes | Payment date (YYYY-MM-DD) | |
| fromWalletableId | Yes | Source wallet account ID | |
| fromWalletableType | Yes | Source wallet account type | |
| amount | Yes | Payment amount (must be positive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It mentions settling accounts and partial payments, but does not disclose side effects like deal status changes, reversibility, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences: action, partial payments, wallet reference, and use case. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameter hints, and business context (closing). Lacks details on return values or idempotency, but acceptable given no output schema and moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
100% schema coverage gives baseline 3. Description adds value by linking fromWalletableId/Type to freee_get_walletables and explaining amount semantics for partial payments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Record a payment') and resource ('deal'), and explicitly mentions supporting partial payments, distinguishing it from siblings like freee_create_deal or freee_update_deal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises using freee_get_walletables to find wallet account IDs and notes partial payment support. It lacks explicit when-not-to-use but implies context for monthly closing and cash management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_invoiceB
Create a new invoice
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| issueDate | Yes | Issue date (YYYY-MM-DD) | |
| partnerId | Yes | Partner ID | |
| dueDate | No | Due date (YYYY-MM-DD) | |
| title | No | Invoice title | |
| invoiceStatus | Yes | Invoice status | |
| invoiceLines | Yes | Invoice line items |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Create a new invoice,' implying a mutation, but it does not disclose side effects (e.g., does it send notifications?), required permissions, or whether the invoice is created as draft or issued. With no annotations, the agent gets no behavioral safety cues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence 'Create a new invoice' is concise and immediately communicates the tool's purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not mention return values, error conditions, or side effects. For a creation tool, the agent needs more context about what the response contains and what validates success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter (e.g., 'Invoice status' enum). The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new invoice' clearly identifies the action (create) and the resource (invoice). It distinguishes this tool from read-focused siblings like freee_get_invoices and freee_summarize_invoices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, no prerequisites (e.g., partner ID must exist), and no when-not-to-use conditions. The description is purely declarative with no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_manual_journalA
Create a manual journal entry (振替伝票) - Creates a new manual journal with debit/credit entries. Essential for closing adjustments (決算整理仕訳) like depreciation, prepaid expense allocation, and provision entries. Set adjustment=true to mark as closing adjustment. Debit and credit totals must balance.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| issueDate | Yes | Issue date (YYYY-MM-DD) | |
| adjustment | No | Whether this is a closing adjustment entry (決算整理仕訳). Defaults to false. | |
| details | Yes | Journal entry details — must include at least one debit and one credit entry with matching totals |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool creates a new manual journal, requires balancing totals, and has an adjustment flag. It does not discuss authorization needs or side effects like irreversibility, but the core behavioral constraints (balancing) are well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the purpose, provides use cases, and gives essential instructions. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested details array, balancing constraint) and no output schema, the description covers the main points. It could mention validation behavior (e.g., error if totals don't balance) but overall it provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds critical meaning beyond the schema. It explains that companyId defaults to an environment variable, details must include at least one debit and one credit with balancing totals, and adjustment defaults to false. The balancing requirement is a key business rule not expressed in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a manual journal entry (振替伝票) with debit/credit entries. It provides specific use cases like closing adjustments (depreciation, prepaid expenses), distinguishing it from other transaction creation tools such as freee_create_deal. The verb 'Create' combined with the resource 'manual journal' makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete examples of when to use this tool (closing adjustments) and how to mark entries with adjustment=true. However, it does not explicitly mention when not to use it or suggest alternative tools for regular transactions. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_partnerD
Create a new partner
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| name | Yes | Partner name | |
| shortcut1 | No | Shortcut 1 | |
| shortcut2 | No | Shortcut 2 | |
| longName | No | Long name | |
| nameKana | No | Name in Kana | |
| countryCode | No | Country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states the action without revealing side effects, idempotency, error conditions, or required permissions. This is severely lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal (one sentence) but overly so; it does not earn its place as it merely restates the name. It lacks structure and depth, making it under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is completely inadequate. It fails to explain return values, error handling, or any contextual details needed for a new partner creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter semantics beyond what the schema provides, but it also does not contradict. Score reflects adequate coverage from schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new partner' is a tautology of the tool name 'freee_create_partner', adding no new information. It does not distinguish the tool from siblings like 'freee_get_partners' or other create tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description fails to indicate when to use this tool versus alternatives, such as when to create vs. update a partner, or prerequisites like authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_segment_tagB
Create a new segment tag (セグメントタグ) - Creates a tag under segment 1-3 for department/project classification. Requires paid freee plan.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| segmentId | Yes | Segment number (1-3): タグ1, タグ2, タグ3 | |
| name | Yes | Segment tag name | |
| description | No | Description | |
| shortcut1 | No | Shortcut 1 | |
| shortcut2 | No | Shortcut 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only indicates creation and plan requirement. Lacks details on return value, error handling, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence with key information front-loaded. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description does not explain what the tool returns, nor does it address potential errors or side effects, leaving the agent with incomplete context for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds minimal parameter-specific context (e.g., 'department/project classification' for segmentId). Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb (Create), resource (segment tag), and scope (under segment 1-3 for department/project classification). Distinguishes from sibling tools like freee_get_segment_tags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions requirement of a paid freee plan, but does not specify when to use this tool versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_create_transferA
Create a new bank transfer (口座振替) - Records a fund movement between accounts. Requires source and destination account IDs/types (use freee_get_walletables to look up). Supports bank_account, credit_card, and wallet types.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| date | Yes | Transfer date (YYYY-MM-DD) | |
| amount | Yes | Transfer amount (must be positive) | |
| fromWalletableId | Yes | Source walletable account ID | |
| fromWalletableType | Yes | Source walletable account type | |
| toWalletableId | Yes | Destination walletable account ID | |
| toWalletableType | Yes | Destination walletable account type | |
| description | No | Transfer description/memo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as creating a transfer but does not disclose side effects, permissions required, or error conditions. Minimal behavioral disclosure beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences achieve clarity: first states the purpose, second adds a prerequisite and supported types. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters (6 required) and no output schema. The description covers purpose and a prerequisite, but omits details on return value, error handling, or post-creation effects. Adequate but not complete for a potentially complex operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reinforces that source/destination IDs are needed and lists supported wallet types, matching the schema enums. It adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new bank transfer') and the resource ('口座振替'), with a specific verb and resource that distinguishes it from sibling tools like freee_get_transfers (read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using freee_get_walletables to look up account IDs, providing a clear prerequisite. It does not explicitly state when not to use the tool, but the context is sufficient for an AI agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_access_tokenB
Exchange authorization code for access token
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Authorization code from OAuth flow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose side effects, security requirements (e.g., client secret), or whether it is a mutation. Only minimal action stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no wasted words. However, could include essential context like 'after obtaining authorization code from freee_get_auth_url' without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple OAuth token exchange, the description is minimal. It lacks details about response contents (e.g., access token, refresh token) and prerequisite flow, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'code' described. The description adds no meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Exchange authorization code for access token' clearly states the verb and resource, and distinguishes this tool from siblings like freee_get_auth_url which get the authorization URL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It is implied it follows obtaining an authorization code, but no explicit context or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_account_itemsA
Get list of account items - Retrieves chart of accounts efficiently in one call. Use this master data for mapping and filtering in reports. Cached results recommended as account structure rarely changes.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| accountCategory | No | Account category to filter by | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It mentions efficiency and caching but does not explicitly state that the operation is read-only, non-destructive, or any rate limits. The behavior is implied but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, front-loaded with the action and resource. Every sentence provides value: purpose, usage context, and caching recommendation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only 3 simple parameters, the description covers the core functionality well. It lacks details on return format (e.g., array of account items) but the statement 'retrieves chart of accounts' implies a structured list. Caching note adds practical completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all 3 parameters with descriptions, achieving 100% coverage. The description adds caching advice that indirectly relates to parameter use but does not enhance understanding of parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a list of account items (chart of accounts) and emphasizes efficiency by doing so in one call. This distinguishes it from siblings like freee_get_item (singular) or freee_master_context, as it targets a specific entity group with a batch retrieval approach.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this data for mapping/filtering in reports and recommends caching due to infrequent changes. However, it does not explicitly explain when NOT to use this tool or mention alternative sibling tools (e.g., freee_account_item_context for detailed context), leaving the agent to infer usage scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_auth_urlB
Get the authorization URL for freee OAuth flow
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional state parameter for CSRF protection |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry behavioral info. It indicates a read-only operation (getting a URL) with no mention of side effects. However, it does not clarify that authentication is not needed for this step or that no state changes occur. Minimal but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficiently communicates the core function. No wasted words. Front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool, but lacks context within the OAuth flow. The description does not explain that after getting the URL, the user must authorize and then use freee_get_access_token. Sibling tools exist that require this sequence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter description ('Optional state parameter for CSRF protection'). No extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves an authorization URL for freee OAuth, with a specific verb 'Get' and resource 'authorization URL'. It distinguishes from siblings like freee_get_access_token and freee_auth_status, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as freee_get_access_token or freee_auth_status. The description does not explain the OAuth flow step where this URL is required, nor does it mention post-authorization steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_balance_sheetB
Get balance sheet - Efficiently retrieves financial position with assets, liabilities, and equity pre-aggregated. Use for liquidity ratios, solvency analysis, and working capital calculations. Single API call replaces complex transaction aggregation.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| startMonth | Yes | Start month (1-12) | |
| endMonth | Yes | End month (1-12) | |
| breakdownDisplayType | No | Breakdown display type (partner: 取引先, item: 品目, account_item: 勘定科目) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool is efficient and returns pre-aggregated data via a single API call. However, it omits details like authentication requirements, rate limits, or side effects. The behavioral context is partial but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and to the point, with no wasted words. It front-loads the core purpose ('Get balance sheet'). Could be slightly more structured but is efficiently written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should hint at return values. It mentions assets, liabilities, and equity, which gives a basic idea. However, it lacks details on additional balance sheet components, pagination, or response format. Adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds limited value beyond the schema. It mentions pre-aggregated data but does not elaborate on parameter meaning or usage beyond what is already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a balance sheet with assets, liabilities, and equity pre-aggregated. It uses the specific verb 'Get' and resource 'balance sheet'. However, it does not explicitly distinguish from sibling tools like freee_get_trial_balance or freee_get_profit_loss, though it implies contrast by mentioning 'single API call replaces complex transaction aggregation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific use cases: liquidity ratios, solvency analysis, working capital calculations. It implies when to use the tool but does not explicitly state when not to use it or name alternative tools. No exclusions or comparisons are given, which leaves room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_companiesA
Get list of accessible companies - Retrieves all companies linked to your freee account in one call. Essential first step to get company IDs for subsequent API calls. Cache results as company list rarely changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the tool retrieves data and implies a read-only operation, but does not disclose authentication requirements, potential errors, or rate limits. However, the behavior is simple and adequately described for a list retrieval, earning a mid-range score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: first states purpose, second explains usage importance, third provides caching guidance. Every sentence adds valuable information with no redundancy, and the most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description fully covers what the tool does, why it's useful, and how to handle results (cache). It provides sufficient context for an AI agent to know that this is a prerequisite for many other freee tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is effectively 100%. The description adds no parameter details, which is appropriate since none exist. The baseline for zero parameters is 4, as the description cannot add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get list of accessible companies' and 'Retrieves all companies linked to your freee account in one call', which clearly identifies the action and resource. It distinguishes itself from the sibling 'freee_get_company' by indicating it returns a list rather than a single company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it's the 'essential first step to get company IDs for subsequent API calls' and suggests caching due to infrequent changes. While it does not explicitly list when not to use or name alternatives, the context strongly implies it is for initial setup, not for retrieving specific company details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_companyA
Get specific company details - Retrieves company master data including fiscal year settings. Use this to understand accounting periods for report APIs. One-time call per session is usually sufficient.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description clarifies it's a read operation (retrieves), mentions fiscal year settings, and suggests caching behavior. Adequate for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences, front-loaded with purpose, no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers purpose, usage context, and call frequency adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for companyId. Description adds no extra meaning beyond 'specific company details,' so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get specific company details' with verb and resource. Distinguishes from sibling freee_get_companies by specifying 'specific' company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use for understanding accounting periods for report APIs and that one-time call per session is sufficient, implying when and how often to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_dealB
Get specific deal details
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| dealId | Yes | Deal ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; description only states 'Get specific deal details', implying a read operation with no side effects. It does not disclose any behavioral traits beyond the obvious, but for a simple fetch, this is minimally sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (three words), front-loaded with the action. Could be considered under-specified, but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (2 params, no output schema), the description is adequate but lacks details on what 'deal details' includes. It covers the basic purpose without extra context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'Get' and resource 'specific deal details', which clearly indicates a read operation for a single deal. It distinguishes from siblings like 'freee_get_deals' (plural) by implying singular, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'freee_get_deals' or 'freee_search_deals'. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_dealsA
Get list of deals (transactions) - Use with date filters and pagination for efficiency. For financial analysis, prefer aggregated report APIs (profit_loss, balance_sheet) which process thousands of transactions server-side. Only use for detailed transaction inspection.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| partnerId | No | Partner ID to filter by | |
| accountItemId | No | Account item ID to filter by | |
| startIssueDate | No | Start date (YYYY-MM-DD) | |
| endIssueDate | No | End date (YYYY-MM-DD) | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It hints at efficiency concerns (date filters, pagination) but does not explicitly disclose behavior like rate limits, auth requirements, or data volume impacts. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three brief sentences: first states purpose, second gives efficiency advice, third provides usage boundaries. Each sentence earns its place, front-loaded, no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could better explain return values, but it sufficiently covers purpose, usage, and alternatives. Leaves some gaps in output details, but overall adequate for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have descriptions. The description reiterates date filters and pagination but adds minimal extra meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get list of deals (transactions)', providing a specific verb and resource. It distinguishes from sibling tools like freee_get_deal (singular) and freee_search_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using date filters and pagination for efficiency, recommends aggregated APIs (profit_loss, balance_sheet) for financial analysis, and states 'Only use for detailed transaction inspection'. Provides clear when-to-use guidance and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_expense_applicationA
Get specific expense application details (経費精算申請詳細) - Retrieves full details including line items, approvers, comments, and approval flow logs. Use this to get current_step_id and current_round needed for approval actions.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| expenseApplicationId | Yes | Expense application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes what is retrieved (line items, approvers, comments, logs), indicating a read-only operation. Does not mention side effects, permissions, or return format, but the description gives sufficient behavioral context for a GET operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the purpose. Every word adds value. The Japanese parenthetical may be extraneous but does not detract significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return contents (line items, approvers, comments, approval flow logs). Mentions specific fields (current_step_id, current_round) needed for follow-up actions. Could provide more structure, but sufficient for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning by noting that companyId is optional and that expenseApplicationId is required. It also hints at the output (current_step_id, current_round) which adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', specific resource 'expense application details', and lists contents (line items, approvers, comments, logs). Differentiates from sibling 'freee_get_expense_applications' by focusing on a single application's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this tool to get 'current_step_id and current_round needed for approval actions', implying it should be called before approval. Does not explicitly exclude alternatives, but sibling context suggests it is the singular retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_expense_applicationsA
Get list of expense applications (経費精算申請) - Retrieves expense reports with filtering by status, date, applicant, approver, and amount. Supports approval workflow visibility. Use compact mode for summary statistics only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| status | No | Filter by status (draft: 下書き, in_progress: 申請中, approved: 承認済, rejected: 却下, feedback: 差戻し) | |
| startIssueDate | No | Start issue date (YYYY-MM-DD) | |
| endIssueDate | No | End issue date (YYYY-MM-DD) | |
| startTransactionDate | No | Start transaction date for line items (YYYY-MM-DD) | |
| endTransactionDate | No | End transaction date for line items (YYYY-MM-DD) | |
| applicantId | No | Applicant user ID to filter by | |
| approverId | No | Approver user ID to filter by | |
| minAmount | No | Minimum total amount filter | |
| maxAmount | No | Maximum total amount filter | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100, default 50) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It mentions retrieval and filtering but doesn't explicitly state read-only nature, rate limits, or authentication needs beyond the companyId parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key information, no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
13 parameters with no output schema and no annotations. Description covers high-level purpose and filtering but lacks details on pagination, return format, and default behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds the 'compact mode' hint but otherwise repeats schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get list of expense applications' with specific filtering dimensions. While it doesn't explicitly contrast with the singular 'freee_get_expense_application' sibling, the name implies a list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving filtered lists but lacks explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_general_ledgerA
Get general ledger (総勘定元帳) - Retrieves detailed journal entries per account item. Use account_item_id to filter by specific account (recommended to reduce response size). Ideal for "what is recorded under account X" analysis, account item context investigation, and journal consistency checks. Use compact mode for quick overviews with totals only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| startMonth | Yes | Start month (1-12) | |
| endMonth | Yes | End month (1-12) | |
| accountItemId | No | Account item ID to filter by specific account (勘定科目ID). Recommended to reduce response size. | |
| compact | No | When true, returns summary statistics (count and totals per account) without individual entries. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It explains retrieval of detailed entries, filtering, and compact mode for summaries. It does not mention read-only nature or rate limits, but the behavior is clear enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loads the core purpose. Every sentence adds value, but could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not explain the return format or pagination. It covers main usage and filtering but lacks details on what data is returned, which would help an agent handle the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by explaining recommended usage of account_item_id and compact mode. It also clarifies companyId defaults. This goes beyond mere schema restatement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed journal entries per account item (general ledger), with specific use cases like account analysis and consistency checks. It distinguishes itself among sibling tools by focusing on journal entries per account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage guidance: recommend using account_item_id to reduce response size and compact mode for overviews. It provides context for ideal use cases but does not explicitly mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_invoicesA
Get list of invoices - Retrieves invoice data with filtering options. For revenue analysis, prefer profit_loss API with partner breakdown. Use this for specific invoice management and AR tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| partnerId | No | Partner ID to filter by | |
| invoiceStatus | No | Invoice status to filter by | |
| paymentStatus | No | Payment status to filter by | |
| startIssueDate | No | Start date (YYYY-MM-DD) | |
| endIssueDate | No | End date (YYYY-MM-DD) | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states it retrieves filtered data, lacking disclosure of behavioral traits like pagination, rate limits, or safety. For a read operation, it's minimally adequate but misses opportunities to add context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. The first sentence states core function, the second provides usage guidance. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and no output schema, the description does not explain the return format or pagination details beyond schema. While schema covers parameters, the overall completeness for a tool with this complexity is adequate but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no extra meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of invoices with filtering options, using specific verb (Get) and resource (invoices). It distinguishes itself from the profit_loss API for revenue analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly guides when to use this tool (specific invoice management and AR tracking) vs. alternatives (prefer profit_loss API for revenue analysis with partner breakdown).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_itemB
Get a single item (品目) by ID - Retrieves detailed information for a specific product/service item.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| itemId | Yes | Item ID (品目ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for behavioral disclosure. It states 'Retrieves detailed information' but does not mention that it is a read-only operation, any required permissions, or potential side effects. For a read tool, this is a significant omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and resource, then provides a brief elaboration. Every word is necessary and there is no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, yet the description only says 'detailed information' without specifying the return structure. For a simple get-by-ID tool, this might be acceptable, but given no annotations, more context about the returned fields (e.g., name, type, pricing) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions (companyId notes default, itemId described as 'Item ID (品目ID)'). The description adds no additional semantics beyond confirming the item is a product/service item. Schema coverage is 100%, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a single item (品目) by ID' and specifies it retrieves detailed information for a product/service item. The verb 'Get' directly matches the tool's function, and the resource 'item by ID' is unambiguous. This distinguishes it from sibling tools like freee_get_items, which likely returns a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as freee_get_items. There is no mention of prerequisites, typical use cases, or when not to use it. The description lacks context for an AI agent to decide between this and related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_itemsA
Get list of items (品目) - Retrieves product/service item master data used in invoices and deals. Items are cached for 15 minutes as master data changes infrequently. Foundation for item suggestion and bulk master context retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds value by disclosing caching behavior (15 minutes) and the fact that items change infrequently. It implies a read-only operation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences covering purpose, caching behavior, and usage context. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains the tool's role and caching. However, without an output schema, it could briefly mention typical response fields for completeness. Still sufficient given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description does not add new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get list') and the resource ('items (品目) - product/service item master data used in invoices and deals'). It distinguishes from siblings like 'freee_get_item' and 'freee_item_suggestion_context' by specifying it retrieves a list of master data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that items are cached for 15 minutes and change infrequently, implying it's for stable master data. It mentions it's a foundation for item suggestion and bulk context retrieval, but does not explicitly state when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_journalsA
Get journal entries (仕訳帳) for a date range - Downloads all journal entries including deals, manual journals, and auto-generated entries. Uses async download API internally (request → poll → download). Ideal for monthly closing verification, anomaly detection (duplicate entries, unusual accounts), and comprehensive audit review. Returns structured data parsed from CSV. Note: may take 10-30 seconds for large date ranges.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startDate | Yes | Start date (YYYY-MM-DD) | |
| endDate | Yes | End date (YYYY-MM-DD) | |
| visibleTags | No | Additional fields to include in output (partner, item, tag, section, description, all, etc.). Defaults to ["all"]. | |
| visibleIds | No | Additional ID fields to include (deal_id, transfer_id, manual_journal_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the async download pattern (request→poll→download), typical latency (10-30s), and that output is parsed from CSV. It could add rate limits or error behavior, but covers the main behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence is purposeful: purpose, async method, use cases, output format, performance caveat. No redundancy, well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description explains the tool's purpose, method, use cases, and performance. It lacks detail on output structure (beyond CSV) and error handling, but is sufficient for an experienced user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema for parameters like startDate, endDate, or visibleTags; it only restates the date range. The performance note is about execution, not parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets journal entries for a date range, including all subtypes (deals, manual journals, auto-generated). It distinguishes from siblings like freee_get_manual_journals by being comprehensive, and gives specific use cases like monthly closing and audit review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use (audit, anomaly detection, closing) and notes the async nature and time estimate. However, it does not explicitly compare to sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_manual_journalB
Get specific manual journal entry details - Retrieves full details of a single manual journal including all debit/credit line items.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| manualJournalId | Yes | Manual journal ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states what the tool does (retrieves details) without disclosing behavioral traits such as read-only nature, authentication requirements, rate limits, or potential side effects. This is insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and to the point, effectively communicating the core functionality. However, it could be slightly more structured (e.g., listing key features) without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a high-level overview of the return value (full details with line items), but without an output schema, more detail on the response structure would be helpful for an AI agent to use the tool correctly. It is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (companyId optional with default, manualJournalId required). The description adds minimal value beyond the schema, only confirming that the tool returns line item details. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get), the resource (manual journal), and the scope (specific entry with full details including all debit/credit line items). It effectively distinguishes from sibling tools like freee_get_manual_journals (list) and freee_create_manual_journal (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving details of a single manual journal, but it does not explicitly state when to use it versus alternatives (e.g., freee_get_manual_journals for listing) or provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_manual_journalsA
Get list of manual journal entries (振替伝票) - Supports rich filtering by date range, entry side, account, amount range, partner, and section. Max 500 records per page. For aggregated totals, prefer report APIs (profit_loss, trial_balance). Use this for reviewing individual accruals, adjustments, and reclassifications.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startIssueDate | No | Start date (YYYY-MM-DD) | |
| endIssueDate | No | End date (YYYY-MM-DD) | |
| entrySide | No | Filter by entry side | |
| accountItemId | No | Account item ID to filter by | |
| minAmount | No | Minimum amount filter | |
| maxAmount | No | Maximum amount filter | |
| partnerId | No | Partner ID to filter by | |
| sectionId | No | Section ID to filter by | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-500, default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description takes full burden. It mentions the max 500 records per page (key constraint) and lists filterable fields. Lacks detail on pagination behavior or response format, but is sufficient for basic understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and supported filters, second gives usage guidance. No unnecessary words, information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and no output schema, the description covers purpose, filters, pagination limit, and alternatives. Missing details on error handling or response structure, but sufficient for selecting and using the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description enumerates filter types (date range, entry side, etc.) but adds no new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get list of manual journal entries' with the Japanese equivalent, indicating a specific verb and resource. It distinguishes from sibling tools like 'freee_get_manual_journal' (singular) by being the list version, and contrasts with aggregated report APIs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use this tool (reviewing individual entries) and when to prefer alternatives (aggregated totals: profit_loss, trial_balance). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_partnersA
Get list of partners - Retrieves customer/vendor master data efficiently. For partner-based analysis, use profit_loss API with partner breakdown instead of aggregating individual transactions. Cache results as partner data changes infrequently.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| keyword | No | Search keyword: fuzzy matches partner name, formal name, kana name, or exact matches shortcut keys | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies read-only ('Retrieves') but does not explicitly state safety or side effects. Mentions efficiency and caching but omits details like pagination behavior or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. First sentence states purpose, second provides usage guidance and caching tip. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should compensate. It explains the tool's purpose and usage, but does not describe the return structure (e.g., fields included) or handle pagination details beyond parameters. Lacks some completeness for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. The tool description does not add extra meaning beyond the schema; it only provides general context (caching). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get list' and resource 'partners (customer/vendor master data)'. It distinguishes from siblings by suggesting profit_loss API for partner-based analysis, avoiding confusion with similar list tools like freee_get_invoices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (retrieving partner master data) and when not to (use profit_loss API for analysis). Recommends caching due to infrequent data changes, providing clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_profit_lossA
Get profit and loss statement - Most efficient for profitability analysis. Returns revenue, COGS, operating profit, and net income in one API call. Use breakdown_display_type for segment analysis (partner/section/item/tag). Ideal for monthly trends, YoY comparisons, and KPI dashboards instead of aggregating thousands of transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| startMonth | Yes | Start month (1-12) | |
| endMonth | Yes | End month (1-12) | |
| breakdownDisplayType | No | Breakdown display type (partner: 取引先, item: 品目, section: 部門, account_item: 勘定科目) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions efficiency and a single API call, but lacks details on authorization needs, rate limits, or response format. The description does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences), front-loads purpose and efficiency, and includes actionable guidance without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists returned metrics (revenue, etc.) but omits structure, pagination, or response format. However, it is complete enough for a standard financial statement endpoint. Could better contrast with siblings for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage (all parameters documented), so baseline is 3. The description adds context for breakdown_display_type and suggests usage scenarios, but does not provide additional parameter semantics beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets a profit and loss statement, lists key metrics (revenue, COGS, operating profit, net income), and differentiates from siblings by emphasizing efficiency and specific use cases (monthly trends, YoY comparisons, KPI dashboards).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use guidance (profitability analysis, segment analysis via breakdown_display_type) and ideal scenarios, but does not explicitly contrast with sibling tools like freee_get_trial_balance or freee_segment_pnl, nor state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_receiptA
Get specific receipt details (証憑詳細) - Retrieves full details of a single receipt including file URL, issue date, user info, and qualified invoice status. Use for individual receipt inspection and compliance verification.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| receiptId | Yes | Receipt ID (証憑ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses return contents (file URL, issue date, etc.) but does not discuss authentication, rate limits, or idempotency. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains functionality and key fields, second specifies usage. No fluff; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description must explain return values. Lists major fields (file URL, issue date, user info, qualified invoice status). Could be more exhaustive but is sufficient for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 2 parameters, both described. Description adds no additional semantic value beyond the schema, meeting baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'specific receipt details' (証憑詳細), listing returned fields like file URL, issue date, user info, qualified invoice status. It distinguishes from sibling tool freee_get_receipts (plural).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Use for individual receipt inspection and compliance verification,' providing clear context. Does not explicitly mention when not to use or alternatives, but the purpose is well-scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_receiptsA
Get list of receipts (証憑) for electronic bookkeeping compliance (電子帳簿保存法) - Retrieves uploaded receipt images/PDFs with filtering by date, user, and status. Use compact mode for summary statistics only. Max 100 records per page.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startDate | No | Start date (YYYY-MM-DD) | |
| endDate | No | End date (YYYY-MM-DD) | |
| userName | No | Filter by upload user name | |
| status | No | Filter by status (unconfirmed: 未確認, confirmed: 確認済み, deleted: 削除済み) | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. It states a constraint ('Max 100 records per page') and explains compact mode behavior, but does not disclose pagination details, authentication needs, or any side effects (e.g., data is read-only). This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: first defines purpose and resource, second adds key behavioral notes (compact mode, limit). No redundancy or fluff. Essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description covers main purpose, filtering, and specific modes. However, it lacks details about the response format (e.g., what fields are returned in normal mode) and pagination behavior beyond the limit. Compact mode is explained, but normal mode output is vague.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, setting baseline at 3. The description adds value by highlighting filtering by date, user, and status, and explaining compact mode's purpose ('summary statistics only'). This goes beyond individual parameter descriptions, earning a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get list of'), resource ('receipts'), and purpose ('for electronic bookkeeping compliance'). It specifies the content type ('receipt images/PDFs') and filtering dimensions. This distinguishes it well from sibling tools like freee_get_receipt (singular) and other listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions when to use compact mode but does not provide explicit guidance on when to choose this tool over alternatives like freee_get_receipt. No exclusions or prerequisites are stated, leaving the agent to infer context from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_sectionsA
Get list of sections (departments/divisions) - Retrieves organizational units for segment reporting. Use with profit_loss breakdown_display_type="section" for departmental P&L analysis in one API call.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only minimally discloses behavior (compact parameter behavior) but omits details like pagination, permissions, or whether data is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple list tool with two optional params, but lacks details about return structure or constraints, especially compared to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description adds usage context but no additional semantic detail beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states it gets a list of sections for segment reporting and distinguishes from siblings by mentioning use with profit_loss breakdown_display_type="section". Specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context for use with profit_loss analysis, but no explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_segment_tagsA
Get list of segment tags (セグメントタグ) for multi-axis analysis - Retrieves segment tags (タグ1-3) used for department/project tracking. Use with profit_loss breakdown for segment-based P&L analysis. Requires paid freee plan. Different from regular tags (freee_get_tags): segment tags enable up to 3 independent classification axes.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| segmentId | Yes | Segment number (1-3): タグ1, タグ2, タグ3 | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It does not disclose behavioral traits such as read-only nature, error handling, rate limits, or pagination behavior beyond parameters. The description is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first defines purpose, second provides usage guidance. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Good coverage given 5 parameters and no output schema: explains purpose, usage, distinguishes sibling. Lacks details on return format and pagination, but schema covers parameters well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds context about segment tags being for department/project tracking and up to 3 axes, but does not significantly augment parameter meanings beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it retrieves segment tags for multi-axis analysis, clearly distinguishing from sibling tool freee_get_tags by explaining segment tags enable up to 3 independent classification axes for department/project tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: use with profit_loss breakdown for segment-based P&L analysis and notes requirement of a paid freee plan. Does not explicitly state when not to use, but differentiation from regular tags offers guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_tagsA
Get list of tags - Retrieves custom classification tags. For tag-based analysis, use profit_loss API with tag breakdown for efficient aggregation. Useful for project/campaign tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Retrieves' implying read-only, but does not explicitly confirm no side effects, nor does it mention any default behavior for missing companyId or compact mode. The description adds minimal behavioral context beyond what the inferable, so a score of 3 reflects adequate but not exceptional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no extraneous words, front-loading the main purpose immediately. Every sentence serves a purpose: stating the core function, providing usage guidance, and suggesting a use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the main purpose and usage context for a simple list tool, it lacks details on return format (e.g., what fields tags have) since there is no output schema. Given the low complexity (2 params, no enums), a score of 3 indicates it is minimally complete but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage for both parameters: companyId (optional, uses default) and compact (returns summary stats). The tool description adds no further parameter meaning, meeting the baseline expectation of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get list of tags - Retrieves custom classification tags.' This uses a specific verb-resource pair and distinguishes from sibling 'freee_get_profit_loss' by suggesting it for tag-based analysis, indicating a clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'For tag-based analysis, use profit_loss API with tag breakdown for efficient aggregation.' This tells the agent when not to use this tool and points to an alternative, plus mentions usefulness for 'project/campaign tracking.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_tax_codesA
Get list of tax codes (税区分マスター) - Retrieves all available tax classification codes in one call. Essential for accurate deal and invoice creation (e.g., taxable 10%, reduced 8%, exempt). Cached for 15 minutes as tax codes rarely change.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| compact | No | When true, returns summary statistics only without individual records. Useful for quick overviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses caching behavior ('Cached for 15 minutes as tax codes rarely change') and the scope of data ('in one call'). With no annotations, this adds valuable insight beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each providing distinct value: purpose, usage context, and caching behavior. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list-retrieval tool with two optional parameters and no output schema, the description covers the essential aspects: what it returns, why it's needed, and a performance detail (caching). Complete enough for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, and the description does not add additional parameter semantics. Since schema coverage is 100%, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get list of tax codes' with specific resource and scope ('all available tax classification codes in one call'). It distinguishes itself from sibling tools by focusing on tax codes only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions it is 'Essential for accurate deal and invoice creation' with examples of tax rates (10%, 8%, exempt), providing clear context for when to use this tool. No explicit exclusions or alternatives, but sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_transferA
Get specific bank transfer details - Retrieves full details of a single fund transfer between accounts by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| transferId | Yes | Transfer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'retrieves' implying a read operation, but no annotations confirm safety. It lacks details on required permissions, rate limits, or side effects. The return format is not described since no output schema exists. Acceptable but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant words. All information is front-loaded. Every sentence serves a purpose. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with 2 parameters and no output schema, the description covers the core purpose. It could mention expected response structure or that it's a read-only operation, but it's mostly adequate. Missing behavioral details slightly reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value. It only mentions 'by ID' which echoes the schema. The parameter descriptions in the schema are already clear. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details of a single fund transfer by ID. The verb 'Get' and resource 'bank transfer details' are specific, and the singular 'single' distinguishes it from the sibling `freee_get_transfers`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells when to use (when you have a transfer ID) but does not explicitly mention when to avoid or provide alternatives like `freee_get_transfers` for listing or `freee_create_transfer` for creating. No exclusion guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_transfersA
Get list of bank transfers (口座振替) - Retrieves fund movement records between bank accounts, credit cards, and wallets. Supports date range and account filtering with pagination. Use freee_get_walletables first to get account IDs. Max 100 records per page.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startDate | No | Start date (YYYY-MM-DD) | |
| endDate | No | End date (YYYY-MM-DD) | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description carries full burden. It correctly characterizes as a read operation ('Retrieves') and mentions pagination. However, it does not disclose return format, auth requirements, or any potential side effects. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that front-load the main purpose, then add essential details (prerequisite, pagination limit). No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks return structure description (no output schema). The description implies a list of transfers but doesn't specify fields. For a commonly used read tool, this is a gap. Also, the 'account filtering' claim is not reflected in schema. Adequate but with room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so baseline 3. Description adds 'date range and account filtering' which aligns with startDate/endDate but 'account filtering' is not reflected in the parameter list (no account ID param). Minimal added value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get list of bank transfers' and describes what they are (fund movement records). Differentiates from sibling by explicitly mentioning prerequisite use of freee_get_walletables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use ('to get transfers') and a crucial prerequisite ('Use freee_get_walletables first to get account IDs'). No explicit when-not or alternatives, but the prerequisite is very helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_trial_balanceB
Get trial balance report - Efficiently retrieves aggregated account balances for all accounts in one API call. Use for financial analysis, balance verification, and period comparisons without processing individual transactions. Supports monthly/quarterly/annual periods.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| startMonth | Yes | Start month (1-12) | |
| endMonth | Yes | End month (1-12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It mentions the tool is efficient and retrieves aggregated balances in one call, but omits critical details such as whether the operation is read-only, authentication requirements, rate limits, pagination behavior, or any side effects. The lack of such information leaves significant transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core action in the first sentence and useful context in the second. It avoids redundancy and every phrase contributes value. It is concise without being terse, though it could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It fails to explain what the response looks like, whether results are paginated, error handling, or any flags or sorting options. The description covers the basic purpose but leaves significant gaps for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage on all four parameters, so the baseline is 3. The description adds minimal extra context beyond the schema, only noting support for monthly/quarterly/annual periods, which is already implied by the startMonth and endMonth parameters. It does not introduce new semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as 'Get trial balance report' and specifies it retrieves aggregated account balances for all accounts in one API call. It provides concrete use cases (financial analysis, balance verification, period comparisons) and distinguishes itself from sibling tools that might handle individual transactions or different report types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Use for financial analysis, balance verification, and period comparisons without processing individual transactions,' implying it is suitable for aggregated data. However, it does not explicitly state when not to use this tool or directly compare it with siblings like freee_get_general_ledger or freee_get_balance_sheet, leaving usage boundaries implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_walletablesA
Get list of bank accounts, credit cards, and wallets - Retrieves all walletable accounts in one call. Use with withBalance=true to check current cash position across all accounts. For aggregated financial analysis, prefer balance_sheet API. Use this for account-level balance checks and cash management.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| withBalance | No | When true, includes current balance for each account. Useful for cash position analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read operation and describes the data scope but could more explicitly state it is read-only and note any constraints like pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second gives usage guidance and alternative. No unnecessary words, and the most important info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description fully covers what the tool does, how to use parameters, and when to use alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minor context (use case for withBalance) but does not significantly enhance meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of bank accounts, credit cards, and wallets in one call, and distinguishes it from the balance_sheet API for aggregated analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: use withBalance=true for cash position, and prefer balance_sheet API for aggregated financial analysis, making when to use and when not to use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_get_wallet_txnsA
Get list of wallet transactions (口座明細) - Retrieves bank/credit card/wallet transaction entries. Requires walletableType and walletableId for specific account filtering. Use freee_get_walletables first to get account IDs. Max 100 records per page. For cash flow analysis, consider report APIs for aggregated data.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| walletableType | No | Type of wallet account to filter | |
| walletableId | No | Wallet account ID to filter | |
| startDate | No | Start date (YYYY-MM-DD) | |
| endDate | No | End date (YYYY-MM-DD) | |
| entrySide | No | Filter by income or expense | |
| offset | No | Pagination offset | |
| limit | No | Number of results (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description fully bears the burden. Discloses pagination limit and filtering requirements. Implicitly a read operation. Could explicitly state read-only, but otherwise transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear structure: purpose, requirements, alternatives. No wasted words. Front-loaded with main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should describe return shape. It doesn't. Lacks details on response structure. Otherwise covers key usage aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds minimal value beyond schema. It reiterates that walletableType and walletableId are required for filtering and mentions page limit, which is already in schema. Baseline 3 justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves wallet transactions, using specific verb and resource. It distinguishes itself from siblings by referencing wallet-specific accounts and providing alternatives for aggregated data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions requirement of walletableType and walletableId, recommends using freee_get_walletables first, notes pagination limit, and suggests report APIs for cash flow analysis. Provides when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_item_suggestion_contextA
Get item (品目) suggestion context for a partner - Retrieves item master list and aggregates item usage history from past deals with the specified partner. Items are ranked by usage frequency with recommended unit prices and tax codes. Use partner_id or partner_name to specify the partner. Useful for consistent bookkeeping when creating new deals or invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| partner_id | No | Partner ID to get item usage history for | |
| partner_name | No | Partner name to search for (used when partner_id is not known) | |
| category | No | Broad category to filter suggestions (e.g. "開発", "顧問") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the transparency burden. It explains that the tool retrieves and aggregates item usage history, ranks by frequency, and recommends unit prices and tax codes. It does not explicitly state that it is read-only, but the actions imply no modification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences), front-loaded with the main purpose, and every sentence adds meaningful information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the conceptual output (ranked list with recommendations) but lacks specific details about the exact structure. It is mostly complete for a suggestion tool, covering retrieval, aggregation, and usage intent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full descriptions (100% coverage). The tool description adds value by clarifying the relationship between partner_id and partner_name, and explaining the category parameter's purpose beyond its schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves item suggestion context for a partner, including master list and usage history. It distinguishes itself from sibling tools like freee_get_items by focusing on ranked suggestions with recommended prices and tax codes, and explicitly ties it to bookkeeping for new deals or invoices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using partner_id or partner_name to specify the partner and notes the tool is useful for consistent bookkeeping when creating deals or invoices. However, it does not explicitly state when not to use this tool or list alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_journal_consistency_checkA
Check journal entry consistency across deals (会計方針一貫性チェック) - Detects: (1) partners using multiple account items (e.g. same vendor booked to both "通信費" and "ソフトウェア使用料"), (2) tax category inconsistencies within the same partner+account combination (e.g. mix of "課税" and "不課税"). Returns severity-sorted findings with recommendations for unification.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startDate | No | Start date for analysis period (YYYY-MM-DD). | |
| endDate | No | End date for analysis period (YYYY-MM-DD). | |
| maxRecords | No | Maximum deals to fetch (1-3000, default 1000). Increase for comprehensive analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses the tool detects specific inconsistencies and returns severity-sorted findings with recommendations. However, it does not explicitly state if the tool is read-only or if it has any side effects, though 'check' strongly implies no mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the main purpose, followed by specific detection examples. It is concise and well-structured, with no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description sufficiently explains what the tool returns (severity-sorted findings with recommendations). For a checking tool, this is complete and provides enough context for the agent to understand the tool's functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description does not add meaningful new information beyond the schema, such as constraints or usage nuances. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks journal entry consistency across deals, with specific detection examples (e.g., partners using multiple account items, tax category inconsistencies). It distinguishes itself from sibling tools like freee_tagging_consistency_check by focusing on journal consistency rather than tagging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for consistency checking but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned, such as when to use freee_monthly_closing_check instead. The context is clear but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_kpi_dashboardA
Get key management KPIs in a single call (経営KPIダッシュボード) - Fetches PL, BS, and walletable data in parallel to compute profitability (revenue, operating/ordinary profit margins), safety (current ratio, equity ratio), efficiency (receivable/payable turnover days), and liquidity (cash balance, working capital). Each metric includes a health indicator (healthy/caution/warning). Use for quick executive-level financial health overview.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| startMonth | Yes | Start month (1-12) | |
| endMonth | Yes | End month (1-12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes parallel fetching of PL, BS, and walletable data, and computation of metrics with health indicators. No annotations provided, so the description carries the full burden. It is transparent about being a read-only aggregation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured paragraph. Front-loaded with purpose, followed by details and usage advice. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description clearly states what the output contains (metrics and health indicators) and explains data sources. Sufficient for understanding the tool's return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The tool description adds context about companyId being optional with a default, but does not significantly extend beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get key management KPIs in a single call' and enumerates specific categories (profitability, safety, efficiency, liquidity). It distinguishes from sibling tools that focus on individual reports like freee_get_profit_loss or freee_get_balance_sheet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Use for quick executive-level financial health overview.' While it doesn't explicitly state when not to use, the context of sibling tools provides alternatives for detailed analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_master_contextA
Get all master data in one call (勘定科目・メモタグ・部門・セグメント・品目・取引先) - Bulk retrieval of reference data for advisory context. Uses parallel API calls with caching. Use include parameter to fetch only specific categories. Essential for providing accounting advice without multiple tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| include | No | Categories to include (default: all). Options: account_items, tags, sections, segments, items, partners |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'Uses parallel API calls with caching', which gives insight into performance and efficiency. However, without annotations, it does not explicitly state read-only or non-destructive nature, though the context suggests it is safe. A more explicit behavior statement would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short and front-loaded with the key action. The parenthetical Japanese list may be less useful for English agents, but it is still concise. Every sentence adds value, though the Japanese could be translated for broader applicability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of bulk retrieval and the presence of many sibling tools, the description adequately positions the tool. However, without an output schema, it does not describe the return structure. The mention of caching and parallel calls helps, but completeness could be improved by explaining the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter descriptions already explain companyId and include. The description adds that include fetches only specific categories, but this is mostly redundant with the schema. No additional semantic depth is provided beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches all master data in one call, listing specific categories (勘定科目・メモタグ・部門・セグメント・品目・取引先) and emphasizing bulk retrieval for advisory context. This distinguishes it from sibling tools like freee_get_account_items and freee_get_tags that retrieve individual categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the 'include' parameter to fetch specific categories and notes it is essential for providing accounting advice without multiple tool calls. It implicitly suggests use when you need reference data, but does not explicitly state when to use alternative individual get tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_monthly_closing_checkA
Run monthly closing checklist (月次決算チェックリスト) - Executes up to 6 automated checks for a given month: unprocessed bank transactions, cash/deposit balance verification against walletables, temporary account (仮払金/仮受金/立替金) review, receivable aging, payable aging, and unattached receipts. Returns per-check status (ok/warning/error) with details and an overall assessment. Use after month-end to identify outstanding items before closing.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| year | Yes | Fiscal year | |
| month | Yes | Month to check (1-12) | |
| checks | No | Check types to execute (all if omitted): unprocessed_transactions, balance_verification, temporary_accounts, receivable_aging, payable_aging, unattached_receipts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the execution of checks and return format (per-check status with details and overall assessment). It does not explicitly state if the tool is read-only or any side effects, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains what it does and lists checks, second covers output and usage. No unnecessary words, front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (running multiple checks) and 100% schema coverage, the description explains output structure and usage timing. Minor gaps: no mention of prerequisites or that checks are cumulative over the year, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond the schema listing the check types. It reinforces optionality of companyId but adds no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs a monthly closing checklist and lists all 6 automated checks. It distinguishes from sibling tools like freee_ar_aging and freee_cash_position by being a consolidated batch check tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after month-end to identify outstanding items before closing.' This provides clear context for when to use it. It does not explicitly exclude alternatives, but it's sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_monthly_trendsA
Get monthly financial trends with summary statistics - Single call returns monthly P&L or BS data with pre-computed averages, max/min, and trend direction. Replaces 12 separate API calls and LLM-side trend analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| reportType | Yes | Type of financial report | |
| months | No | Specific months to include (1-12). Defaults to all 12 months. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose side effects, required permissions, rate limits, or whether the operation is read-only. It focuses on output but omits behavioral details beyond the general nature of fetching trends.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two-sentence description is concise and front-loaded with the core purpose and value proposition. Every sentence adds information without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains return values (averages, max/min, trend direction) but lacks output schema or detail on structure and edge cases. While adequate, it could be more complete for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing adequate descriptions for all four parameters. The tool description adds no additional semantics beyond what the schema already states, meriting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves monthly financial trends with summary statistics, specifies output includes pre-computed averages, max/min, and trend direction, and distinguishes it from siblings by noting it replaces 12 separate API calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for aggregated monthly trends rather than raw data from individual endpoints, contrasting with sibling tools like freee_get_profit_loss. It lacks explicit 'when not to use' guidance but provides strong context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_multiyear_comparisonA
Get multi-year comparison report (2 or 3 years) for P/L or BS using freee native multi-year trial balance APIs. Returns account-level data with current year, last year (and optionally two years before), plus pre-computed year-on-year changes and percentages. More accurate than manual period comparisons for annual growth analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year (the most recent year to compare) | |
| startMonth | No | Start month (1-12) | |
| endMonth | No | End month (1-12) | |
| reportType | Yes | Report type: pl (profit & loss) or bs (balance sheet) | |
| years | Yes | Number of years to compare (2 or 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions using freee native multi-year trial balance APIs and returning certain data, but does not specify if it is read-only, required permissions, or how months interact with fiscal years, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each delivering value: first sentence states purpose, second describes output, third adds quality claim. No wasted words, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description must explain return values. It does so adequately (account-level data, current/last/optional two-years prior, year-on-year changes and percentages). Could be clearer on how fiscal periods are applied, but sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal beyond schema—only mentions reportType and years—but doesn't clarify the role of startMonth/endMonth or companyId defaults. No significant enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves multi-year comparison reports for P/L or BS using native APIs. It distinguishes from siblings like single-period reports by specifying multi-year scope and mentions account-level data with year-on-year changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to use for annual growth analysis and claims greater accuracy over manual comparisons, providing clear context. However, it does not explicitly state when not to use this tool or name alternative tools for single-year reports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_partner_analysisA
Analyze revenue/expense by partner with concentration risk (取引先別収益分析) - Aggregates deals by partner to show: (1) top N partners by income/expense, (2) each partner's share percentage, (3) concentration risk (top 3/5 share), (4) monthly breakdown per partner. Use for customer profitability analysis and revenue concentration risk assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startDate | No | Start date for analysis period (YYYY-MM-DD) | |
| endDate | No | End date for analysis period (YYYY-MM-DD) | |
| type | No | Analysis type: 'income' for revenue, 'expense' for costs, 'all' for both (default: 'all') | |
| topN | No | Number of top partners to return (1-100, default 10) | |
| maxRecords | No | Maximum deals to fetch (1-3000, default 1000). Increase for comprehensive analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes aggregation logic and outputs, implying read-only analysis, but does not explicitly state idempotency, authentication needs, or edge cases. The description adds value beyond the schema but leaves some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences: first bullet-lists outputs, second gives use cases. It is front-loaded with purpose, contains no redundant information, and every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description provides a good overview of outputs and use cases. It lists four components that will be returned, which compensates for the lack of output schema. However, it could mention return format or example values for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description lists outputs that relate to parameters (e.g., top N from 'topN') but does not add new meaning beyond the schema descriptions for each parameter. It provides context but no significant additional semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses a specific verb 'Analyze' and resource 'revenue/expense by partner with concentration risk', and lists four detailed outputs. It distinguishes from sibling tools like 'freee_cost_analysis' or 'freee_segment_pnl' by focusing on partner-level aggregation and concentration risk metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit use cases ('customer profitability analysis and revenue concentration risk assessment'), but does not mention when not to use the tool or suggest alternatives among siblings. Usage is implied but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_search_dealsA
Search and aggregate all deals - Auto-paginates through all matching deals and returns pre-computed summaries by partner, month, and account item. Use this instead of manual pagination with freee_get_deals for financial analysis. Returns aggregated totals, not individual records.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| partnerId | No | Partner ID to filter by | |
| accountItemId | No | Account item ID to filter by | |
| startIssueDate | No | Start date (YYYY-MM-DD) | |
| endIssueDate | No | End date (YYYY-MM-DD) | |
| maxRecords | No | Maximum records to fetch (1-1000, default 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses auto-pagination, return type (aggregated totals, not individual records), and summary dimensions. Does not cover error handling or rate limits, but provides sufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains what it does, second gives usage guidance and return type. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description notes return of aggregated totals and summary dimensions. Could be more precise about output structure, but sufficient for an aggregation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add extra meaning to individual parameters beyond what the schema provides, only indirectly references partner and account item dimensions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Search and aggregate all deals' with auto-pagination and pre-computed summaries, and explicitly distinguishes from the sibling tool 'freee_get_deals'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: 'Use this instead of manual pagination with freee_get_deals for financial analysis.' Indicates when to use and provides a clear alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_segment_pnlA
Get profit and loss statement by department (section) or segment (1/2/3) - Retrieves per-division revenue, operating profit, and cost breakdown. Use dimension parameter to select section (部門) or segment_1/2/3. Essential for divisional profitability analysis and management reporting. Requires paid freee plan.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| fiscalYear | Yes | Fiscal year | |
| startMonth | Yes | Start month (1-12) | |
| endMonth | Yes | End month (1-12) | |
| dimension | Yes | Breakdown dimension: section (部門), segment_1/2/3 (セグメント1-3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates the tool is read-only (retrieves) and requires a paid plan. No mention of side effects, rate limits, or error handling, but no contradictions. Adequate but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action, no wasted words. Every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema, the description adequately covers purpose, parameter usage, and a key requirement (paid plan). It does not describe the return format, but the context is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by explaining dimension enum values (e.g., 'segment_1/2/3 (セグメント1-3)') and noting that companyId defaults to FREEE_DEFAULT_COMPANY_ID. This enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves profit and loss by department or segment, specifies the dimension parameter, and lists data returned (revenue, profit, cost). This distinguishes it from siblings like freee_get_profit_loss (overall P&L) and freee_cost_analysis (cost-focused), earning top marks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly positions the tool for 'divisional profitability analysis and management reporting,' which implies when to use it. However, it does not mention alternative tools for other scenarios (e.g., overall P&L) or when not to use it, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_set_company_tokenB
Manually set access token for a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | Company ID to set token for | |
| accessToken | Yes | OAuth access token | |
| refreshToken | Yes | OAuth refresh token | |
| expiresIn | Yes | Token expiration time in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks details about side effects, such as whether setting a token overwrites previous tokens, if it persists across sessions, or if it requires specific permissions. With no annotations to fall back on, the description should disclose these behaviors but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose. It is not verbose, but it could benefit from slightly more detail without becoming wordy. Still, it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool modifies authentication state and has 4 required parameters, the description is too minimal. It does not explain what happens after setting the token (e.g., subsequent API calls use it), any validation, or dependencies. More context is expected for a tool with this level of complexity and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described (companyId, accessToken, refreshToken, expiresIn). The tool description does not add any additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set) and what it operates on (access token for a specific company). It distinguishes from sibling tools like freee_get_access_token (which retrieves tokens) and freee_clear_auth (which clears authentication), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., freee_get_access_token, freee_auth_status). There is no indication of prerequisites, such as having already obtained a token via OAuth, or scenarios where manual setting is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_summarize_invoicesA
Summarize all invoices with payment status breakdown - Auto-paginates through all matching invoices and returns pre-computed summaries by status and partner. Shows total amounts, unpaid amounts, and overdue counts. Use this for AR tracking and cash flow analysis instead of manual pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| partnerId | No | Partner ID to filter by | |
| invoiceStatus | No | Invoice status to filter by | |
| paymentStatus | No | Payment status to filter by | |
| startIssueDate | No | Start date (YYYY-MM-DD) | |
| endIssueDate | No | End date (YYYY-MM-DD) | |
| maxRecords | No | Maximum records to fetch (1-1000, default 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses auto-pagination and pre-computed summaries, but lacks details on response format, rate limits, or authentication requirements. Could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with main action and key features. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description provides sufficient context: what it does, auto-pagination, summary output, and usage guidance. Output structure is partially described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions. Description adds semantic value by mentioning auto-pagination and output summaries (total, unpaid, overdue) beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool summarizes invoices with payment status breakdown, auto-paginates, and returns pre-computed summaries. It distinguishes from sibling tools like freee_get_invoices (raw list) and freee_ar_aging (aging-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends use for AR tracking and cash flow analysis instead of manual pagination. Does not specify when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_tagging_consistency_checkA
Check tagging consistency across deals (タグ付け一貫性チェック) - Analyzes deals to detect: (1) partners with inconsistent tag assignments, (2) deals missing tags, (3) deals missing section/segment assignments, (4) account items with deviating tag patterns. Use for bookkeeping quality assurance and ensuring consistent categorization. Returns partner-level tag patterns, segment gaps, and account-level deviations.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| startDate | No | Start date for analysis period (YYYY-MM-DD) | |
| endDate | No | End date for analysis period (YYYY-MM-DD) | |
| maxRecords | No | Maximum deals to fetch (1-3000, default 1000). Increase for comprehensive analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adequately discloses the analysis types and return contents ('Returns partner-level tag patterns, segment gaps, and account-level deviations'). It implies a read-only operation, though it does not explicitly state non-destructiveness. This is acceptable for a consistency check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the purpose and detection categories, followed by use case and output summary. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns. The four parameters are all optional and well-documented in the schema; the description provides enough context for an agent to understand the tool's scope and outputs without requiring additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by recommending increasing maxRecords for comprehensive analysis and contextualizing the parameters as part of a tagging consistency check, which helps an agent understand parameter usage beyond syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource combination ('Check tagging consistency') and lists four distinct detection categories, making the tool's purpose unambiguous. It clearly distinguishes from sibling tools like freee_journal_consistency_check and freee_deal analyses by focusing on tag-related consistency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the use case: 'Use for bookkeeping quality assurance and ensuring consistent categorization.' While it doesn't name alternatives or exclusions, the context is clear enough for an agent to decide when to invoke it over related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freee_update_dealA
Update an existing deal (transaction) - Modify issue date, type, or detail lines (amount, account item, tax code, description). Details array replaces all existing details. Use freee_get_deal first to review current state before updating.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Company ID (optional, uses FREEE_DEFAULT_COMPANY_ID if not provided) | |
| dealId | Yes | Deal ID to update | |
| issueDate | No | Issue date (YYYY-MM-DD) | |
| type | No | Transaction type | |
| details | No | Transaction details (replaces all existing details) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that details array replaces all existing details, a key behavioral trait. However, with no annotations, it lacks information on permissions, side effects on other fields, or error conditions. Moderate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that efficiently convey purpose, key behavior, and prerequisite. No fluff, front-loaded with primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, destructive replacement behavior, and prerequisite. Lacks description of return value or behavior of unspecified fields, but given no output schema and moderate complexity, it provides essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already documents parameters. Description mentions fields (issue date, type, detail lines) but adds no new semantic meaning beyond what schema provides, resulting in baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (update), resource (deal/transaction), and modifiable fields (issue date, type, detail lines). Distinguishes from sibling tools like freee_create_deal by focusing on updating existing deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use freee_get_deal first to review current state before updating, providing clear guidance on when to use this tool and a prerequisite action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
60 tool updates
v0.1.0- First observed
freee_account_item_context - First observed
freee_accounting_policy_context - First observed
freee_approve_expense_application - First observed
freee_ar_aging - First observed
freee_auth_status - First observed
freee_cash_position - First observed
freee_clear_auth - First observed
freee_compare_periods - First observed
freee_cost_analysis - First observed
freee_create_deal - First observed
freee_create_deal_payment - First observed
freee_create_invoice - First observed
freee_create_manual_journal - First observed
freee_create_partner - First observed
freee_create_segment_tag - First observed
freee_create_transfer - First observed
freee_get_access_token - First observed
freee_get_account_items - First observed
freee_get_auth_url - First observed
freee_get_balance_sheet - First observed
freee_get_companies - First observed
freee_get_company - First observed
freee_get_deal - First observed
freee_get_deals - First observed
freee_get_expense_application - First observed
freee_get_expense_applications - First observed
freee_get_general_ledger - First observed
freee_get_invoices - First observed
freee_get_item - First observed
freee_get_items - First observed
freee_get_journals - First observed
freee_get_manual_journal - First observed
freee_get_manual_journals - First observed
freee_get_partners - First observed
freee_get_profit_loss - First observed
freee_get_receipt - First observed
freee_get_receipts - First observed
freee_get_sections - First observed
freee_get_segment_tags - First observed
freee_get_tags - First observed
freee_get_tax_codes - First observed
freee_get_transfer - First observed
freee_get_transfers - First observed
freee_get_trial_balance - First observed
freee_get_wallet_txns - First observed
freee_get_walletables - First observed
freee_item_suggestion_context - First observed
freee_journal_consistency_check - First observed
freee_kpi_dashboard - First observed
freee_master_context - First observed
freee_monthly_closing_check - First observed
freee_monthly_trends - First observed
freee_multiyear_comparison - First observed
freee_partner_analysis - First observed
freee_search_deals - First observed
freee_segment_pnl - First observed
freee_set_company_token - First observed
freee_summarize_invoices - First observed
freee_tagging_consistency_check - First observed
freee_update_deal
TDQS
Scored across 60 tools
Each tool has a clearly distinct purpose, covering specific accounting operations like deal management, invoice handling, financial analysis, and authentication. Descriptions are detailed and avoid ambiguity, even for similar tools like freee_get_profit_loss and freee_segment_pnl.
All tools follow a consistent `freee_verb_noun` pattern using snake_case. Verbs like `get`, `create`, `update`, `approve` are uniformly applied, making the tool surface predictable and easy to navigate.
With 60 tools, the server is overly large for the apparent scope of an accounting integration. While the domain is broad, this many tools can overwhelm an agent and increase latency, exceeding the recommended upper limit of 25 tools.
The tool set covers a wide range of accounting functions including CRUD for deals, invoices, manual journals, and expense applications, plus analytical reports. However, notable gaps exist, such as missing delete operations for deals and invoices, and lack of create/update for expense applications.
Maintenance
Related MCP Connectors
Connect your AI to your Well financial data - invoices, companies, contacts.
- financeOAuthcom.zoninga
Personal finance for AI agents: accounts, budgets, goals, 9-strategy debt payoff, reports. OAuth 2.1
Document sharing, invoicing, and personal finance platform. 15+ AI tools via OAuth 2.1.
Connect Exact Online accounting to Claude, ChatGPT and Copilot. 114 tools, OAuth 2.1, EU-hosted.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to access and manage accounting data through the freee accounting API, supporting operations like transaction management, financial analysis, and account item management.205 npm1-
- AlicenseNot gradedqualityCmaintenanceEnables Claude to interact with freee accounting software through OAuth 2.0 authentication, supporting operations like transaction creation, account management, receipt uploads, and financial statement retrieval.MIT
- AlicenseBqualityDmaintenanceEnables Claude Desktop to interact with freee accounting API for expense registration, transaction management, and receipt image processing.151MIT
- AlicenseAqualityBmaintenanceEnables individual proprietors and freelancers to manage daily accounting tasks like journal entries, invoice creation, and monthly reconciliation through simple tool calls, using freee's API.74 npmMIT