ECOUNT 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., "@ECOUNT MCP ServerShow inventory for product code ITM-001"
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.
ECOUNT MCP Server
A Model Context Protocol (MCP) server for ECOUNT ERP OpenAPI integration.
Overview
This MCP server enables AI assistants like Claude to interact with ECOUNT ERP through natural language. It wraps ECOUNT's OpenAPI with proper session management, rate limiting, and caching.
Features
22 Tools - Products, customers, inventory, sales, purchases, production, accounting, e-commerce, attendance, bulletin board
Automatic Session Management - Zone caching, session auto-renewal on expiry, file-based persistence
Smart Throttling - Automatic rate limit management with intelligent waiting (no manual retry needed)
Multi-Process Support - File-based rate limit state sharing across multiple instances
Response Caching - 10-minute cache for query results
Error Handling - Continuous error monitoring with user-friendly messages
Related MCP server: dingjie-erp-mcp
Quick Start
Prerequisites
ECOUNT ERP Account with Master ID privileges
API Certificate Key (How to get one)
Node.js 18+
Installation
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ecount": {
"command": "npx",
"args": ["-y", "mcp-server-ecount"],
"env": {
"ECOUNT_COM_CODE": "your_company_code",
"ECOUNT_USER_ID": "your_user_id",
"ECOUNT_API_CERT_KEY": "your_api_key"
}
}
}
}Claude Code
claude mcp add mcp-server-ecount -e ECOUNT_COM_CODE=회사코드 -e ECOUNT_USER_ID=사용자ID -e ECOUNT_API_CERT_KEY=인증키Or add to your project's .mcp.json:
{
"mcpServers": {
"ecount": {
"command": "npx",
"args": ["-y", "mcp-server-ecount"],
"env": {
"ECOUNT_COM_CODE": "your_company_code",
"ECOUNT_USER_ID": "your_user_id",
"ECOUNT_API_CERT_KEY": "your_api_key"
}
}
}
}Tools
Connection & Status
Tool | Description |
| Test API connection |
| Get current session status |
| Get server internal status (rate limits, cache, errors) |
Products
Tool | Description | Rate Limit |
| Get single product details | 1s |
| Get multiple products | 10min |
| Create new products | 10s |
Customers
Tool | Description | Rate Limit |
| Create new customers | 10s |
Inventory
Tool | Description | Rate Limit |
| Get inventory for single product | 1s |
| Get inventory for multiple products | 10min |
| Get warehouse-level inventory (single) | 1s |
| Get warehouse-level inventory (multiple) | 10min |
Sales
Tool | Description | Rate Limit |
| Create quotation | 10s |
| Create sales order | 10s |
| Create sales slip | 10s |
Purchases
Tool | Description | Rate Limit |
| Get purchase orders | 10min |
| Create purchase slip | 10s |
Production
Tool | Description | Rate Limit |
| Create job order | 10s |
| Create goods issued slip | 10s |
| Create goods receipt slip | 10s |
Accounting
Tool | Description | Rate Limit |
| Create sales/purchase invoice (auto journal) | 10s |
E-Commerce
Tool | Description | Rate Limit |
| Import orders from online marketplaces | 10s |
Attendance
Tool | Description | Rate Limit |
| Record attendance | 10s |
Bulletin Board
Tool | Description | Rate Limit |
| Create board post | 10s |
Configuration
Environment Variables
Variable | Required | Description |
| Yes | ECOUNT company code (6 digits) |
| Yes | ECOUNT user ID (must be Master ID) |
| Yes | API certificate key |
| No | Use test server ( |
| No | Session file path for persistence |
| No | Rate limit state file for multi-process support |
| No | Enable debug logging ( |
API Certificate Key
Login to ECOUNT ERP with Master ID
Navigate to
Self-Customizing>External Connection Settings>Open API ManagementApply for API usage and get certificate key
Start with test key for development, then get production key after verification
Note: Only Master ID can issue API certificate keys.
Rate Limits
ECOUNT OpenAPI has strict rate limits:
API Type | Production | Test Server |
Zone/Login | 10min | 10s |
Batch Query | 10min | 10s |
Single Query | 1s | 1s |
Save | 10s | 10s |
Additional Limits
Consecutive errors per hour: 30 (blocked if exceeded)
Daily API calls: 5,000
Max items per save: 300
Smart Throttling
This MCP server features intelligent rate limit management:
API Type | Auto-Wait | Max Wait |
Single Query (1s) | ✅ Yes | 5s |
Save (10s) | ✅ Yes | 15s |
Batch Query (10min) | ❌ No | Error |
Zone/Login (10min) | ❌ No | Error |
Auto-Wait: For short intervals (1s, 10s), the server automatically waits before retrying
Multi-Process Safe: When
ECOUNT_RATE_LIMIT_FILEis set, rate limit state is shared across all instances100ms Safety Margin: All intervals include a safety margin to prevent edge-case failures
When rate limits are exceeded beyond auto-wait thresholds, friendly error messages are returned with remaining wait time.
Security
Never hardcode API credentials!
# Create .env file for development
ECOUNT_COM_CODE=your_code
ECOUNT_USER_ID=your_id
ECOUNT_API_CERT_KEY=your_key
# Add to .gitignore
echo ".env" >> .gitignoreWarning: Leaked ECOUNT credentials can compromise your entire ERP system.
Development
# Clone repository
git clone https://github.com/gilbreth-ai/mcp-server-ecount.git
cd mcp-server-ecount
# Install dependencies
npm install
# Build
npm run build
# Development mode
npm run dev
# Test with MCP Inspector
npm run inspectProject Structure
mcp-server-ecount/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server setup
│ ├── client/
│ │ ├── ecount-client.ts # API client
│ │ ├── session-manager.ts
│ │ ├── rate-limiter.ts
│ │ ├── cache.ts
│ │ └── error-counter.ts
│ ├── tools/
│ │ ├── register.ts # Tool registration
│ │ └── schemas.ts # Zod schemas
│ ├── types/
│ └── utils/
├── docs/ # API documentation
├── package.json
└── README.mdUsage Examples
Check Inventory
User: "What's the inventory for product A001 across all warehouses?"
Claude uses ecount_get_inventory_by_warehouse tool.
Result:
- Main Warehouse: 100 units
- Distribution Center: 50 units
- Store: 25 units
Total: 175 unitsCreate Sales Slip
User: "Create a sale for customer C001, product A001, 10 units at 1000 won each"
Claude uses ecount_create_sale tool.
Result:
- Slip No: 20240115-1
- Success: 1 itemLow Stock Alert & Purchase Decision Support
User: "Show me items with less than 5 units in stock,
with their recent purchase prices, and suggest order quantities"
Claude uses ecount_get_inventory_list, ecount_get_products tools.
Result:
- Product A: Stock 3, Last price 5,000 KRW → Suggest order: 20 units
- Product B: Stock 2, Last price 12,000 KRW → Suggest order: 15 units
- Product C: Stock 1, Last price 8,000 KRW → Suggest order: 25 units
Total estimated cost: 456,000 KRWNatural Language Customer Registration
User: "Register new customer: ABC Corp, Business No. 123-45-67890,
CEO: John Doe, Address: 123 Main St, Seoul"
Claude uses ecount_create_customer tool.
Result:
- Customer Code: C0042 (auto-generated)
- Registration completePost Analysis to ERP Bulletin Board
User: "Summarize our sales trend analysis and post it to the company bulletin board"
Claude uses ecount_create_board_post tool.
Result:
- Board: Announcements
- Title: [Analysis] H1 Sales Trend Summary
- Posted successfullyTroubleshooting
"Item not found" error when saving
You need to configure "Web Data Upload" in ECOUNT ERP:
Go to the input menu (e.g., Sales > Sales Input)
Click "Web Data Upload" button at the bottom
Add required fields with "Add Upload Items"
Session expires frequently
Increase auto-logout time in ERP settings:
ERP Settings>Security Settings>Auto Logout Time
Rate limit exceeded
Wait for the cooldown period. Use ecount_server_status to check current rate limit status.
Disclaimer
This is a community project with no official affiliation to ECOUNT. Using ECOUNT OpenAPI requires a valid ECOUNT account and API certificate key. All API usage is subject to ECOUNT's terms of service.
License
MIT
Contributing
Bug reports, feature requests, and PRs are welcome!
Available Tools
23 toolsecount_create_board_postA
게시글 입력. ECOUNT ERP 게시판에 글을 등록합니다. 게시판 ID(bizz_sid)는 ECOUNT에 등록된 게시판의 식별코드입니다. 제목(title), 내용(body_ctt)을 입력하며, 관련 거래처/품목/담당자를 연결할 수 있습니다. 사내 공지나 업무 기록을 남길 때 사용합니다. [Rate Limit: 10초/1회] [Response: data 배열 - 각 게시글: seq(순번), result(일자-번호 형식, 예: 20250819-9), error(에러시 상세정보)]
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | 게시글 목록. ERP 게시판에 글 등록용 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses the rate limit (10초/1회) and the response structure (data array with seq, result, error), which is valuable. It does not detail side effects like whether multiple posts are created atomically or any permission requirements, but it does communicate the mutating nature and error behavior.
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 compact and front-loaded with the purpose, followed by field usage, use case, rate limit, and response format. The opening '게시글 입력.' is slightly redundant with the next sentence but does not significantly hurt clarity; otherwise, every sentence adds useful 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 tool has no output schema or annotations, but the description compensates by defining the response format and rate limit. It also explains the board ID and typical usage, covering the essential aspects of a create operation. Minor gaps exist, such as not explicitly stating that multiple posts can be created in one call or requiring authentication, but overall it is sufficiently 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?
The input schema has 100% description coverage for all properties, including bizz_sid, title, body_ctt, cust, prod, pic, and progress_status. The description mostly restates schema information (e.g., bizz_sid as board ID, title/body_ctt as inputs, customer/item/manager links) without adding new semantics beyond the schema, so the 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 tool registers a post to the ECOUNT ERP bulletin board ('ECOUNT ERP 게시판에 글을 등록합니다'), specifies the resource type (게시판), and provides board ID semantics. It also mentions the use case (사내 공지나 업무 기록), which distinguishes it from sibling tools that create products, customers, or sales orders.
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 says it is used for writing internal notices or work records ('사내 공지나 업무 기록을 남길 때 사용합니다'), providing clear context. However, it does not mention alternatives or when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_clock_in_outA
출퇴근 기록 입력. 직원의 출퇴근 시간을 ECOUNT에 등록합니다. 사원번호(EMP_CD), 출근일시(ATTDC_DTM_I), 퇴근일시(ATTDC_DTM_O)가 필수입니다. 일시 형식은 YYYY-MM-DD HH:mm:ss 입니다. 반차 여부(HDOFF_TYPE_CD_I/O)와 외근 구분(OUT_WORK_TF)도 지정합니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 출퇴근 기록 목록. 직원 출퇴근 시간 등록용 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses rate limits (10 sec/1 request), required formats, and response structure (success/failed counts, details). However, it misses important behavioral aspects like permission requirements, duplicate handling, or side effects, leaving some uncertainty about the tool's full behavior.
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 and well-structured: a single main sentence with purpose, followed by brackets for rate limit and response. Every piece of information earns its place, providing high information density without bloat.
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 batch create tool with no output schema, the description covers required fields, datetime format, optional flags, rate limiting, and response shape. It omits batch size limits and doesn't address the schema's internal inconsistency where some fields are marked '필수' but not in the required list, but overall it is adequately 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%, providing descriptions for all fields. The description adds the datetime format and clarifies which fields are required, which is useful but largely redundant with the schema. It does not significantly deepen understanding beyond the structured definitions.
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 function: registering employee clock-in/out times in ECOUNT. It uses specific verbs (등록/registers) and identifies the resource (attendance records), distinguishing it from sibling tools focused on products, customers, sales, etc.
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 context for when to use the tool (to input attendance records) and specifies required fields and format. It does not explicitly mention alternatives or exclusions, but the sibling domain differences make the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_customerA
거래처 등록. 새로운 거래처(고객사/협력사)를 ECOUNT에 등록합니다. 거래처코드(CUST_CD)와 거래처명(CUST_DES)은 필수이며, 대표자/주소/연락처/사업자번호 등은 선택입니다. 최대 300건까지 한 번에 등록 가능합니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| customers | Yes | 등록할 거래처 목록. 1~300건까지 한 번에 등록 가능 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It adds rate limit (10초/1회), batch size (max 300), and a structured response summary (success/failed counts, slipNos, details with errors). It also clarifies it creates only new customers ('신규'), implying no overwriting. However, it does not mention authentication requirements or potential duplicate handling, which could be important for a write 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?
The description is compact: three sentences plus bracketed rate limit and response info. It is front-loaded with the main purpose, then details requirements and limitations. No filler or repetition, though the rate limit and response format are arguably additional but valuable.
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 moderate complexity (single array parameter with 9 nested fields), the description covers the core aspects: what it does, required/optional fields, batch limit, rate limit, and response shape. The absence of an output schema is compensated by the explicit response description. It could be slightly more complete with details on prerequisites or error scenarios, but overall it provides enough context for an agent to select and invoke 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?
The input schema already provides 100% coverage for the single 'customers' parameter and all nested fields, so the baseline is 3. The description reiterates that CUST_CD and CUST_DES are required and groups optional fields (대표자/주소/연락처/사업자번호), but adds no new semantic details beyond what the schema already documents. It does not provide example values or dependencies 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 function: it registers a new customer (client/partner) in ECOUNT. The verb '등록' (register) and resource '거래처' (customer) are specific, and it distinguishes itself from sibling tools like ecount_create_product or ecount_create_sale_order by targeting customers. It also clarifies the required vs optional fields.
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 context: this is for registering new customers in ECOUNT, with batch capacity up to 300 and a rate limit. However, it does not explicitly mention when to use this tool over alternatives or any exclusions, though the tool's name and sibling differentiation make the use case obvious. No explicit 'when-not' guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_goods_issuedA
생산불출 입력. 생산을 위해 자재를 출고하는 전표를 등록합니다. 창고에서 생산 공장으로 원자재를 불출할 때 사용합니다. 품목코드(PROD_CD), 출고창고(WH_CD_F), 입고공장(WH_CD_T), 수량(QTY)이 필수입니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 생산불출 품목 목록. 생산을 위해 자재를 출고하는 전표 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds a rate limit ('[Rate Limit: 10초/1회]') and a detailed response format ('[Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]'), providing valuable operational context 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?
The description is concise and front-loaded with the purpose. It provides required fields, rate limit, and response format in a structured, compact format without unnecessary verbosity. Every sentence adds useful 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 creation tool with nested items array, the description covers key operational aspects: rate limit, required fields, and response envelope. While it does not explain maxItems (300) or item grouping behaviors, those are covered in the schema, and the response format is described, making the tool usable.
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, with each parameter documented (e.g., WH_CD_F '자재를 보내는 창고', UPLOAD_SER_NO '같은 순번의 항목들은 하나의 전표로 묶임'). The description only reiterates that PROD_CD, WH_CD_F, WH_CD_T, and QTY are required, which is already in the schema, adding no extra semantic 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 the tool's function: '생산불출 입력' (production issue input), registering a slip for issuing materials for production. It further clarifies the direction (warehouse to production factory) and distinguishes it from related tools like goods receipt or sales orders.
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 specifies when to use it: '창고에서 생산 공장으로 원자재를 불출할 때 사용합니다' (used when issuing raw materials from warehouse to production factory). It does not explicitly mention alternatives or when not to use, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_goods_receiptA
생산입고 I 입력. 생산 완료된 완제품을 입고하는 전표를 등록합니다. 생산이 완료되어 완제품이 창고에 입고될 때 사용합니다. 완제품 품목코드(PROD_CD)는 필수이며, 입고수량/단가 등을 지정합니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 생산입고 품목 목록. 생산 완료된 제품을 입고하는 전표 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the rate limit (10초/1회) and response structure (success, failed, slipNos, details), which are useful behavioral traits. It does not discuss side effects beyond creation, but for a create operation this is acceptable.
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 reasonably concise, with a brief purpose statement followed by usage and response details in bracketed sections. It is front-loaded and readable, though the opening '생산입고 I 입력' is slightly terse.
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 create tool with one parameter, the description plus schema covers the needed context: purpose, when to use, required field, and response format. Since there is no output schema, including response details in the description is helpful and complete enough.
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 schema fully documents each parameter. The description highlights PROD_CD as required and mentions that QTY/PRICE are specified, but adds little 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 it registers a slip for receiving finished goods from production ('생산 완료된 완제품을 입고하는 전표를 등록합니다'), using a specific verb and resource. It also distinguishes itself from siblings like ecount_create_goods_issued by explicitly focusing on production input.
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 when-to-use guidance: '생산이 완료되어 완제품이 창고에 입고될 때 사용합니다' (use when production is complete and finished goods are received into warehouse). It does not mention alternatives or exclusions, but the context of production receipt is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_invoiceA
매출·매입전표 II 자동분개. 회계 전표(세금계산서)를 ECOUNT에 등록합니다. TAX_GUBUN으로 매출/매입 구분을 지정합니다: 11=과세매출, 21=과세매입, 14=카드매출 등. 매출시 CR_CODE(매출계정), 매입시 DR_CODE(매입계정)를 지정합니다. 공급가액(SUPPLY_AMT)과 부가세(VAT_AMT)를 입력합니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 회계 전표 목록. 매출/매입 세금계산서 등록용 |
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 goes beyond a simple create statement by disclosing the rate limit (10초/1회), the response structure (success, failed, slipNos, details), and the conditional account selection behavior. This is substantive operational context, though it does not mention session prerequisites 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?
The description is a single dense paragraph with structured bracket sections for rate limit and response. Every sentence adds value—tax codes, account selection, input amounts, and response details—with no filler. Slightly long but appropriate for the tool's complexity.
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 create-invoice tool with no output schema, the description covers key operational aspects: rate limit, response format, tax type codes, and account code rules. It does not mention batch size limits (though schema has maxItems 300) or session/auth requirements, but these are partially covered by sibling connection tools and 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?
The schema already has 100% parameter description coverage, but the description adds meaningful relational semantics: it explicitly links TAX_GUBUN to whether CR_CODE (매출) or DR_CODE (매입) should be used, and gives example account codes. This clarifies usage beyond the individual 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 that this tool registers accounting vouchers (tax invoices) in ECOUNT with automatic journal posting ('매출·매입전표 II 자동분개'). It specifies the resource (회계 전표) and the action (등록), and the tax/accounting focus distinguishes it from sibling tools like product or customer creation.
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 internal guidance on when to use CR_CODE vs DR_CODE based on TAX_GUBUN, but does not explicitly state when to use this tool versus alternatives like ecount_create_sale or ecount_create_purchase. The usage context is implied by the term '회계 전표' but no exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_job_orderA
작업지시서 입력. 생산 계획을 ECOUNT에 등록합니다. 어떤 제품을 얼마나 생산할지 지시하는 문서입니다. 생산할 품목코드(PROD_CD)는 필수이며, 수량/납기일/BOM버전 등을 지정합니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 작업지시서 품목 목록. 생산 계획 등록용 |
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 rate limit (10 seconds per request) and the response structure (success/failed counts, slip numbers, details array with error info). This adds meaningful behavioral context beyond the schema, though it does not elaborate on partial failure handling or authorization requirements.
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 and structured, starting with the core purpose, then adding parameter notes, and ending with rate limit and response format. Every sentence provides useful information, with no fluff. It is slightly longer than the two-sentence ideal but remains 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 tool's complexity (many object parameters) and lack of output schema, the description compensates by including the response format and rate limit. It does not repeat the detailed schema descriptions, which is appropriate. The combination of schema and description is sufficient for an agent to understand the tool's behavior, though it omits some edge-case information like the 300-item limit (which the schema covers).
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 provides 100% coverage with descriptions for all parameters. The description adds only a brief mention that PROD_CD is required and that quantity/due date/BOM version can be specified, which does not meaningfully go beyond the schema. 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?
The description clearly states the tool's function with a specific verb ('작업지시서 입력' / register production plan) and identifies the resource (work order in ECOUNT). It distinguishes itself from sibling tools like ecount_create_sale_order or ecount_create_goods_issued by explicitly focusing on job orders (생산 계획).
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 context for when to use this tool: when you need to register a production plan or enter a work order in ECOUNT. It also mentions which fields can be specified (quantity, due date, BOM version), but it does not explicitly state when NOT to use it or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_openmarket_orderA
쇼핑몰 주문 입력. 네이버스토어, 쿠팡 등 외부 쇼핑몰 주문을 ECOUNT에 등록합니다. 쇼핑몰코드(openmarketCode)는 ECOUNT에 미리 등록된 코드입니다. 주문번호, 상품정보, 주문자/수취인 정보, 배송정보 등을 입력합니다. 쇼핑몰 주문 연동 자동화에 사용합니다. [Rate Limit: 10초/1회] [Response: ResultDetails 배열 - 각 주문: OPENMARKET_CD(쇼핑몰코드), SLIP_NO(ECOUNT주문번호), SLIP_SER(순번), GROUP_NO(묶음주문번호), ORDER_NO(주문번호), Result(결과메시지 - 성공시 빈문자열, 실패시 에러메시지)]
| Name | Required | Description | Default |
|---|---|---|---|
| orders | Yes | 쇼핑몰 주문 목록. 외부 쇼핑몰 주문을 ECOUNT에 등록 | |
| openmarketCode | Yes | 쇼핑몰코드 (필수). ECOUNT에 등록된 쇼핑몰 식별코드. 최대 5자 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses a rate limit and provides a detailed response format with result messages and error conditions. However, it does not mention idempotency, authorization requirements, or what happens on partial failures, which would be valuable for a creation 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 efficient, with the main purpose in the first sentence and additional behavioral details in brackets. It includes rate limit and response information without excessive prose. The structure is clear, though it could be slightly more 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 complex nested orders array and no output schema, the response format description is essential and provided. The rate limit and mention of pre-registered code add operational context. It lacks explicit error handling or rollback information, but the response format covers result reporting.
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 schema already documents all parameters. The description adds value by explaining that openmarketCode must be pre-registered in ECOUNT and categorizes the order fields (product, orderer/receiver, shipping). This is useful context but does not compensate for the schema's already thorough 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?
Purpose is explicitly stated: registering external shopping mall orders (Naver, Coupang) into ECOUNT. The verb '등록' and resource '쇼핑몰 주문' are specific. It clearly distinguishes from sibling tools like create_sale_order by specifying external order integration.
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 it is for automating shopping mall order integration, giving clear context. It implies this is for external orders rather than internal sales, but does not explicitly exclude alternatives or mention when to use other ECOUNT order-create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_productA
품목 등록. 새로운 품목을 ECOUNT에 등록합니다. 품목코드(PROD_CD)와 품목명(PROD_DES)은 필수이며, 규격/단위/단가 등은 선택입니다. 최대 300건까지 한 번에 등록할 수 있습니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| products | Yes | 등록할 품목 목록. 1~300건까지 한 번에 등록 가능 |
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 the rate limit (10 seconds/1 request), response format (success/failed/slipNos/details), and batch limit (300). However, it does not explicitly state the mutating nature beyond '등록' (register) or describe error handling for duplicates/partial failures beyond the response counts.
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 covering purpose, required/optional fields, and batch capacity, followed by a structured rate limit and response section. It is front-loaded and every sentence provides necessary information without 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?
The schema fully describes the single parameter's nested structure and constraints, while the description covers the response format and rate limit. It lacks explicit usage guidance versus alternatives or detailed error semantics, but for a batch-create tool with full schema coverage, it is largely 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 description coverage is 100%, so all parameters have comprehensive descriptions with constraints. The tool description only adds a high-level summary of required vs optional fields, which is already contained in the schema. It provides no additional semantic depth 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 '새로운 품목을 ECOUNT에 등록합니다' (registers new products to ECOUNT), specifying the action (register) and resource (products). This distinguishes it from sibling tools like create_customer or create_sale, and it also highlights required vs optional fields.
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 creating new products, which clearly differentiates it from other creation tools. However, it does not explicitly mention when to use this over alternatives or any exclusions, but the context is clear enough for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_purchaseA
구매 입력. 구매(입고) 전표를 ECOUNT에 등록합니다. 협력사로부터 물품을 구매하여 입고받았을 때 사용합니다. 품목코드(PROD_CD)는 필수이며, 수량/단가/금액을 입력합니다. UPLOAD_SER_NO가 같은 항목들은 하나의 구매전표로 묶입니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 구매 품목 목록. 1~300건. UPLOAD_SER_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 rate limit (10초/1회), response structure (success, failed, slipNos, details), and the grouping behavior via UPLOAD_SER_NO. It does not mention idempotency or failure atomicity, but the core behavioral traits are covered.
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 compact and front-loaded with the purpose. The first two phrases '구매 입력' and '구매(입고) 전표를 ECOUNT에 등록합니다' are somewhat redundant, but the overall length is appropriate and includes rate limit and response info in brackets without bloat.
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 create tool with a nested array schema and no output schema, the description covers the essential context: when to use, required field (PROD_CD), grouping key, rate limit, and response format. It does not explain prerequisites like authentication or field validation, but the schema covers parameter details.
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 schema already documents all parameters. The description adds only a general statement about quantity/unit price/amount and reinforces the grouping rule, which is already in the schema. It does not add significant 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 states a specific verb ('등록', to register), a resource ('구매(입고) 전표', purchase/receiving slip), and a clear scenario ('협력사로부터 물품을 구매하여 입고받았을 때'). This distinguishes it from sibling create tools like ecount_create_sale or ecount_create_quotation.
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 explicitly says when to use it: when purchasing goods from a partner and receiving them into stock. It does not name alternative tools for exclusions, but the context is clear enough to guide selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_quotationA
견적서 입력. 고객에게 제시할 견적서를 ECOUNT에 등록합니다. 각 항목에 품목코드(PROD_CD)는 필수이며, 거래처/수량/단가/금액 등을 입력합니다. UPLOAD_SER_NO가 같은 항목들은 하나의 견적서로 묶입니다. 최대 300건까지 등록 가능. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 견적 품목 목록. 1~300건. UPLOAD_SER_NO가 같은 항목들은 하나의 견적서로 묶임 |
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 key behaviors: items with the same UPLOAD_SER_NO group into one quotation, a maximum of 300 items, a rate limit of one request per 10 seconds, and the response format including success/failure counts and slip numbers. It does not cover authorization or reversibility, but the disclosed details are substantial.
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 and well-structured, starting with the main purpose, followed by requirements, grouping, limits, and clearly bracketed meta info (rate limit and response). Every sentence adds meaningful information without 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?
Given the complexity of an array-based creation tool with many optional fields, the description explains the grouping mechanism, maximum items, rate limit, and response structure. The schema covers parameter semantics, so the description is sufficiently complete for correct invocation, though it does not mention potential error handling beyond the response details.
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 all parameters described in the schema. The description adds only a high-level mention of required PROD_CD and grouping logic, both already present in the schema. Thus, the description adds minimal value beyond the schema, but the schema is fully descriptive.
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 registers quotations (견적서) for customers in ECOUNT, using a specific verb '등록합니다' and resource '견적서'. It distinguishes from sibling tools by emphasizing customer-facing quotation presentation rather than sales orders or other document 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 provides clear context that this tool is for entering quotations to present to customers, implying its use for quotation creation. However, it does not explicitly name alternative tools or state when not to use it, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_saleA
판매 입력. 실제 판매(출고) 전표를 ECOUNT에 등록합니다. 주문이 출고되어 매출이 발생했을 때 사용합니다. 품목코드(PROD_CD)는 필수이며, 수량/단가/금액을 입력합니다. UPLOAD_SER_NO가 같은 항목들은 하나의 판매전표로 묶입니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 판매 품목 목록. 1~300건. UPLOAD_SER_NO가 같은 항목들은 하나의 판매전표로 묶임 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds valuable behavioral context: rate limit (10초/1회), response structure (success, failed, slipNos, details), and grouping behavior for UPLOAD_SER_NO. It does not mention auth/session requirements or inventory side effects, but the 'actual sales (shipping)' phrasing implies such impacts. It is more transparent than typical.
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 compact and well-structured: it starts with the purpose, then the usage condition, then key requirements, and finally rate limit and response format in brackets. Every sentence adds value, with no redundancy or filler.
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 covers the essential context: what it does, when to use it, required fields, grouping behavior, rate limit, and response format. It does not mention array size limits (1-300) or default UPLOAD_SER_NO, but those are in the schema. Given the rich schema and the description's inclusion of response details, it is sufficiently complete for a create 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 descriptions for every field, so the baseline is 3. The description adds meaning by emphasizing that PROD_CD is required, listing key inputs (quantity, unit price, amount), and explaining the UPLOAD_SER_NO grouping mechanism—information that goes beyond the schema's per-field descriptions and clarifies how multiple items form a single slip.
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 registers actual sales (shipping) slips in ECOUNT, using the specific verb '등록합니다' and resource '판매(출고) 전표'. It distinguishes from sibling tools like ecount_create_sale_order by specifying the condition '주문이 출고되어 매출이 발생했을 때' (when an order is shipped and revenue occurs). This is specific and 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?
It explicitly states when to use: when an order has shipped and sales have occurred. This provides clear contextual guidance. However, it does not explicitly name alternative tools or state when not to use this tool, though the sibling names like ecount_create_sale_order imply the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_create_sale_orderA
주문서 입력. 고객으로부터 받은 주문을 ECOUNT에 등록합니다. 견적서가 확정되어 주문으로 전환될 때 사용합니다. 품목코드(PROD_CD)는 필수이며, 납기일(DUE_DATE)을 지정할 수 있습니다. UPLOAD_SER_NO가 같은 항목들은 하나의 주문서로 묶입니다. [Rate Limit: 10초/1회] [Response: success(성공건수), failed(실패건수), slipNos(전표번호 배열 - YYYYMMDD-N 형식), details(상세결과 - IsSuccess, TotalError, Errors 배열)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | 주문 품목 목록. 1~300건. UPLOAD_SER_NO가 같은 항목들은 하나의 주문서로 묶임 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the rate limit (10초/1회), response format (success, failed, slipNos, details), and grouping behavior (UPLOAD_SER_NO groups items into one order). It does not explicitly mention side effects like updating the quotation status, but the create operation's additive nature reduces the need. This is solid 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 concise, front-loaded with the primary purpose, and each sentence adds value: use case, required parameters, grouping logic, rate limit, and response structure. There is no fluff or redundant phrasing.
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 complex tool with a single array parameter with many sub-fields, the description covers the essential operational context: what it does, when to use it, key constraints (PROD_CD required), grouping behavior, rate limiting, and response fields. The schema covers all parameter semantics, and the description provides the meta-information an agent needs to 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?
The input schema has 100% parameter description coverage, so the baseline is 3. The description adds emphasis on PROD_CD being required and DUE_DATE being specifiable, and repeats the UPLOAD_SER_NO grouping semantics already present in the schema. It does not provide additional parameter-level detail beyond the schema, so the description's contribution is minimal but consistent.
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 function: '주문서 입력' (order entry) and '고객으로부터 받은 주문을 ECOUNT에 등록합니다' (registers customer orders in ECOUNT). It also distinguishes from siblings by specifying the use case: '견적서가 확정되어 주문으로 전환될 때 사용합니다' (used when a quotation is confirmed and converted to an order).
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 a clear context for when to use the tool ('견적서가 확정되어 주문으로 전환될 때'), but it does not explicitly name alternative tools or state when not to use it. The scenario is specific enough to guide selection, though it could be stronger with explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_inventoryA
재고현황 단건 조회. 특정 품목의 특정 일자 기준 재고 수량을 조회합니다. 기준일(baseDate)과 품목코드(prodCode)는 필수입니다. 창고코드(whCode)를 지정하면 해당 창고의 재고만, 생략하면 전체 창고 합계를 반환합니다. [Rate Limit: 1초/1회] [Response: date(조회기준일), prodCode(품목코드), warehouseCode(창고코드), inventory 배열 - 각 항목: PROD_CD(품목코드), BAL_QTY(재고수량)]
| Name | Required | Description | Default |
|---|---|---|---|
| whCode | No | 창고코드 (선택). 특정 창고의 재고만 조회. 생략시 전체 창고 합계 | |
| baseDate | Yes | 조회 기준일 (필수). YYYYMMDD 형식. 해당 일자 기준 재고 수량 조회. 예: 20240115 | |
| prodCode | Yes | 품목코드 (필수). 재고를 조회할 품목. 예: RP61G4 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It provides a rate limit (1 request per second), an explicit response structure (date, prodCode, warehouseCode, inventory array with PROD_CD and BAL_QTY), and behavior when whCode is omitted. It does not mention any error conditions or permission requirements, but for a read operation this is solid coverage.
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 highly concise: three sentences plus two brief bracketed notes. It delivers the purpose, required parameters, optional behavior, rate limit, and response format without any filler or redundancy. 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?
For a single-item read tool with no output schema and no annotations, the description covers the essential context: how to call, what the optional parameter does, the rate limit, and the exact response shape. It is slightly incomplete in not addressing empty-result behavior or error cases, but overall it is quite 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 description coverage is 100% and each parameter already has a clear description. The tool description repeats the required nature of baseDate/prodCode and the whCode optional behavior, adding little beyond the schema. The provided response format is helpful but not parameter-specific.
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 '재고현황 단건 조회' (single inventory status inquiry) and specifies that it retrieves inventory quantity for a specific item on a specific date. This verb+resource pairing and '단건' (single) distinction effectively differentiates it from sibling tools like ecount_get_inventory_list or ecount_get_inventory_by_warehouse.
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 context by marking baseDate and prodCode as required and explaining how whCode changes the result (specific warehouse vs. all-warehouse total). However, it does not explicitly mention when to prefer this tool over the list/warehouse variants, leaving out exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_inventory_by_warehouseA
창고별 재고현황 단건 조회. 특정 품목의 각 창고별 재고 수량을 조회합니다. 여러 창고에 분산된 재고를 창고별로 확인할 때 사용합니다. 기준일(baseDate)과 품목코드(prodCode)는 필수입니다. [Rate Limit: 1초/1회] [Response: date(조회기준일), prodCode(품목코드), inventory 배열 - 각 항목: WH_CD(창고코드), WH_DES(창고명), PROD_CD(품목코드), PROD_DES(품목명), PROD_SIZE_DES(품목명[규격]), BAL_QTY(재고수량)]
| Name | Required | Description | Default |
|---|---|---|---|
| whCode | No | 창고코드 (선택). 특정 창고의 재고만 조회. 생략시 전체 창고 합계 | |
| baseDate | Yes | 조회 기준일 (필수). YYYYMMDD 형식. 해당 일자 기준 재고 수량 조회. 예: 20240115 | |
| prodCode | Yes | 품목코드 (필수). 재고를 조회할 품목. 예: RP61G4 |
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 rate limit (1초/1회) and the response structure in detail, which is helpful. However, it does not mention whether the operation is read-only, any permissions required, or behavior when no data is found. For a query tool, the response and rate limit add value, but missing edge-case behavior keeps it at a 3.
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 compact and well-structured. It opens with the purpose, then usage context, then required parameters, followed by clearly tagged [Rate Limit] and [Response] sections. 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?
For a tool with low complexity, the description covers the main purpose, usage, required parameters, rate limit, and response format. The optional whCode parameter is not mentioned in the description, but the schema explains it. The description could be more complete by noting the effect of whCode, but the schema covers it, so this is not a critical gap.
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%, and the schema already documents each parameter with descriptions and format constraints. The description only repeats that baseDate and prodCode are required, which is already in the schema. It adds no additional semantics beyond what the schema provides, so the 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 it is a single-record inquiry of inventory by warehouse for a specific item (특정 품목의 각 창고별 재고 수량을 조회). The verb '조회' (inquiry) and resource '창고별 재고현황' are specific, and the scope (단건 조회) distinguishes it from list variants like ecount_get_inventory_by_warehouse_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?
The description explicitly states when to use: '여러 창고에 분산된 재고를 창고별로 확인할 때 사용합니다' (use when checking inventory distributed across multiple warehouses by warehouse). It does not explicitly mention alternatives or when not to use, but the context is clear for a single-item query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_inventory_by_warehouse_listA
창고별 재고현황 다건 조회. 여러 품목의 창고별 재고를 한 번에 조회합니다. 전체 창고의 재고 현황을 파악할 때 사용합니다. 기준일(baseDate)은 필수입니다. 품목코드 목록(prodCodes)을 생략하면 전체 품목을 조회합니다. [Rate Limit: 10분/1회, 결과 10분간 캐싱됨] [Response: date(조회기준일), count(조회건수), inventory 배열 - 각 항목: WH_CD(창고코드), WH_DES(창고명), PROD_CD(품목코드), PROD_DES(품목명), PROD_SIZE_DES(품목명[규격]), BAL_QTY(재고수량)]
| Name | Required | Description | Default |
|---|---|---|---|
| whCode | No | 창고코드 (선택). 특정 창고의 재고만 조회. 생략시 전체 창고 | |
| baseDate | Yes | 조회 기준일 (필수). YYYYMMDD 형식. 예: 20240115 | |
| prodCodes | No | 품목코드 목록 (선택). 생략하면 전체 품목의 재고 조회 | |
| includeZeroStock | No | 재고 0인 품목 포함 여부 (선택). true: 포함, false: 제외. 기본값: false | |
| includeDiscontinued | No | 사용중단 품목 포함 여부 (선택). true: 포함, false: 제외. 기본값: false | |
| includeBalanceExcluded | No | 수량관리 제외품목 포함 여부 (선택). true: 포함, false: 제외. 기본값: false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It reveals a rate limit (10min/1 call), response caching (10min), and details the response structure including fields. It also discloses that omitting prodCodes returns all items. However, it stops short of declaring read-only explicitly, though '조회' implies it.
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 well-organized paragraph with explicit sections for rate limit and response. It is concise and avoids filler, earning a 4.
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 compensates by listing the response fields. It covers the key parameters, rate limit, and use case. It doesn't mention error conditions or pagination, but for a read-only list tool with this scope, coverage is 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?
The input schema already provides full descriptions for all six parameters, so the baseline is 3. The description adds minimal extra meaning, mostly restating that baseDate is required and prodCodes can be omitted to query all items, which the schema already says.
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-item inventory status by warehouse ('창고별 재고현황 다건 조회'), specifying the resource and scope. It notes it queries all warehouses, which distinguishes it from potential single-warehouse or single-item siblings, though it doesn't explicitly name alternatives.
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 an explicit use case: '전체 창고의 재고 현황을 파악할 때 사용합니다' (used to grasp inventory across all warehouses). It also explains behavior for optional parameters, but does not mention when to prefer sibling tools like get_inventory_by_warehouse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_inventory_listA
재고현황 다건 조회. 여러 품목 또는 전체 품목의 재고를 한 번에 조회합니다. 기준일(baseDate)은 필수입니다. 품목코드 목록(prodCodes)을 생략하면 전체 품목의 재고를 조회합니다. includeZeroStock=true로 재고 0인 품목도 포함할 수 있습니다. [Rate Limit: 10분/1회, 결과 10분간 캐싱됨] [Response: date(조회기준일), count(조회건수), inventory 배열 - 각 항목: PROD_CD(품목코드), BAL_QTY(재고수량)]
| Name | Required | Description | Default |
|---|---|---|---|
| whCode | No | 창고코드 (선택). 특정 창고의 재고만 조회. 생략시 전체 창고 | |
| baseDate | Yes | 조회 기준일 (필수). YYYYMMDD 형식. 예: 20240115 | |
| prodCodes | No | 품목코드 목록 (선택). 생략하면 전체 품목의 재고 조회 | |
| includeZeroStock | No | 재고 0인 품목 포함 여부 (선택). true: 포함, false: 제외. 기본값: false | |
| includeDiscontinued | No | 사용중단 품목 포함 여부 (선택). true: 포함, false: 제외. 기본값: false | |
| includeBalanceExcluded | No | 수량관리 제외품목 포함 여부 (선택). true: 포함, false: 제외. 기본값: false |
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 discloses rate limiting (10분/1회), result caching (10분), and the response structure, which goes beyond schema and adds useful 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?
The description is compact and front-loaded with the core purpose, followed by essential parameter behavior and metadata. Every sentence adds value without 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?
With no annotations and no output schema, the description compensates by including response format, rate limits, and caching. It covers the main behavior well, though it leaves some boolean flags to schema descriptions (which is acceptable given full schema coverage).
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 reinforces key parameters (baseDate required, prodCodes optional, includeZeroStock) but doesn't add new semantic detail 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 '재고현황 다건 조회' (multi-item inventory query) and explains it queries multiple or all items at once, distinguishing it from single-item siblings like ecount_get_inventory.
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 provides clear context for when to use: for multiple/all items, with baseDate required and prodCodes optional. It doesn't explicitly name alternatives, but the use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_productA
품목 단건 조회. 특정 품목코드의 상세 정보를 조회합니다. 정확한 품목코드를 알고 있을 때 사용하세요. 품목코드를 모르면 ecount_get_products로 검색하거나 전체 목록을 조회하세요. [Rate Limit: 1초/1회] [Response: PROD_CD(품목코드), PROD_DES(품목명), SIZE_DES(규격), UNIT(단위), PROD_TYPE(품목구분: 0=원재료,1=제품,2=반제품,3=상품,4=부재료,7=무형상품), IN_PRICE(입고단가), OUT_PRICE(출고단가), CLASS_CD(그룹코드), BAR_CODE(바코드), BAL_FLAG(재고수량관리: 0=제외,1=대상), SET_FLAG(세트여부), TAX(부가세율), REMARKS(적요)]
| Name | Required | Description | Default |
|---|---|---|---|
| prodCode | Yes | 조회할 품목코드 (필수). ECOUNT에 등록된 정확한 품목코드 입력. 예: RP61G4 |
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 adds a rate limit ('[Rate Limit: 1초/1회]') and a detailed response field list with meanings, which are not present in the schema. However, it does not explicitly state error behavior or read-only nature, though '조회' (inquiry) implies it. This goes beyond minimal but leaves minor 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 concise and well-structured: it leads with the purpose, then usage guidance, then rate limit and response fields. Every sentence provides useful information without waste. The formatting with brackets for rate limit and response is clear and scannable.
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 low complexity (single parameter, no output schema), the description is adequately complete. It covers purpose, usage, rate limiting, and provides a full response field mapping with meanings, which is essential since no output schema exists. The only omission is error scenarios, but this is acceptable for a simple lookup 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?
The input schema has 100% coverage for the sole parameter prodCode, with a detailed description specifying it is mandatory, must be an exact ECOUNT code, and includes an example. The tool description adds no new parameter semantics beyond restating '정확한 품목코드' (exact code), so it does not elevate beyond the schema 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 tool's function: '품목 단건 조회' (single item lookup) and '특정 품목코드의 상세 정보를 조회합니다' (retrieve detailed info of a specific item code). It distinguishes itself from sibling tool ecount_get_products by explicitly mentioning the alternative for searching when the code is unknown.
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 when-to-use guidance: '정확한 품목코드를 알고 있을 때 사용하세요' (use when you know the exact item code) and when-not-to-use with alternatives: '품목코드를 모르면 ecount_get_products로 검색하거나 전체 목록을 조회하세요' (if you don't know the code, search with ecount_get_products or view the full list). This fully addresses usage context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_productsA
품목 다건 조회. 여러 품목을 한 번에 조회합니다. prodCodes로 특정 품목들을 조회하거나, prodType으로 품목구분별 조회 가능. 인자 없이 호출하면 전체 품목 조회. [Rate Limit: 10분/1회, 결과 10분간 캐싱됨] [Response: count(조회건수), products 배열 - 각 품목: PROD_CD(품목코드), PROD_DES(품목명), SIZE_DES(규격), UNIT(단위), PROD_TYPE(품목구분), IN_PRICE(입고단가), OUT_PRICE(출고단가), CLASS_CD(그룹코드), BAR_CODE(바코드), BAL_FLAG(재고수량관리), REMARKS(적요)]
| Name | Required | Description | Default |
|---|---|---|---|
| prodType | No | 품목구분. 0:원재료, 1:제품, 2:반제품, 3:상품, 4:부재료, 7:무형상품 | |
| prodCodes | No | 조회할 품목코드 목록. 생략하면 전체 품목 조회. 여러 품목 지정 가능 |
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 the rate limit and caching behavior, which are critical behavioral traits. It also specifies the response structure and fields, making the tool's output predictable. It does not mention authentication or error handling, but for a read operation this is sufficient, though not exhaustive.
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, front-loaded with the core function, and efficiently organizes auxiliary info in bracketed sections (Rate Limit, Response). Every sentence carries useful information, and the structured presentation aids quick parsing.
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 lacking an output schema, the description provides a complete response specification including field names and meanings. It also covers all calling modes and constraints. Given the tool's simplicity (2 optional params), the description is comprehensive enough for an agent to invoke it correctly without further clarification.
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 both parameters have descriptions. The tool description adds value by explaining the relationship between prodCodes and prodType ('or') and the no-argument behavior for full listing, which enhances the semantic understanding beyond the schema alone. This is more than baseline but not overly detailed.
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 performs '품목 다건 조회' (multi-product inquiry) and explicitly distinguishes from the singular sibling 'ecount_get_product' by emphasizing multiple products at once. The verb and resource are specific, and the query variants (by prodCodes, by prodType, or all) are clearly outlined.
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 contexts: specific products via prodCodes, by product type via prodType, or all products with no arguments. It also notes the rate limit (10 minutes per call), which informs when to use it sparingly. However, it does not explicitly name alternatives like 'ecount_get_product' for single-item queries, so it doesn't fully meet the 'explicit when-not' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_purchase_ordersA
발주서 조회. 특정 기간의 발주서 목록을 조회합니다. 조회 시작일(baseDateFrom)과 종료일(baseDateTo)은 필수입니다. YYYYMMDD 형식. 최대 30일 조회 가능. 거래처코드나 품목코드로 필터링할 수 있습니다. [Rate Limit: 10분/1회, 결과 10분간 캐싱됨] [Response: period(조회기간), count(조회건수), orders 배열 - 각 발주서: ORD_NO(발주번호), ORD_DATE(발주일자), CUST(거래처코드), CUST_DES(거래처명), WH_CD(창고코드), WH_DES(창고명), QTY(발주수량합계), BUY_AMT(공급가액합계), VAT_AMT(부가세합계), P_FLAG(상태: 1=진행중,9=종결), TIME_DATE(납기일자), TTL_CTT(제목)]
| Name | Required | Description | Default |
|---|---|---|---|
| prodCode | No | 품목코드 (선택). 특정 품목 발주만 조회 | |
| baseDateTo | Yes | 조회 종료일 (필수). YYYYMMDD 형식. 예: 20240131 | |
| baseDateFrom | Yes | 조회 시작일 (필수). YYYYMMDD 형식. 예: 20240101 | |
| customerCode | 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 discloses rate limit (1 request per 10 minutes), result caching (10 minutes), and detailed response structure including order fields and status meanings. This goes beyond schema and gives the agent clear expectations.
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 dense but every clause adds value: purpose, required params, format, max range, filters, rate limit, and response fields. It is well-structured and front-loaded with the primary 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?
With no output schema, the description fully documents the response structure (period, count, orders array with field details) and rate limiting. It covers usage constraints and filters, making it self-sufficient for an agent.
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 already provides per-parameter descriptions (100% coverage). The description adds the critical 30-day max query range constraint and clarifies required fields, supplementing schema with cross-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 '발주서 조회' (purchase order inquiry) and '특정 기간의 발주서 목록을 조회합니다' (retrieves list of purchase orders for a specific period), providing a specific verb and resource. It distinguishes from siblings like ecount_get_product(s) and ecount_create_purchase by focusing on purchase order list retrieval.
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 specifies required date fields, YYYYMMDD format, 30-day max range, and optional filters by customer or product code. It gives clear context for when to use this tool (querying purchase orders by period) but does not explicitly name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_get_session_infoA
현재 ECOUNT 세션 상태 조회. Zone 정보, 세션 유효 여부, 만료 시간을 확인합니다. 세션이 만료되었는지 확인하거나 디버깅할 때 사용합니다. 인자 없이 호출합니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 tool checks Zone info, session validity, and expiration time, which implies a read-only operation. But it does not explicitly state that it has no side effects or describe error behavior (e.g., what happens if the session is already expired). The debugging hint adds some context, but it lacks detailed behavioral disclosure beyond the obvious.
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 short sentences, front-loaded with the main purpose, followed by details and usage. It is concise with no filler or repetition; 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?
For a zero-parameter read tool with no output schema, the description covers what the tool does, what it checks, when to use it, and how to call it. The listed checked items (Zone info, validity, expiration) partially imply the return content, but the exact response format is not described. Given the low complexity, the description is sufficiently complete, though it could be improved by specifying the returned structure.
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, and the baseline for no parameters is 4. The description reinforces this with '인자 없이 호출합니다' (call without arguments), aligning with the schema. There is no additional parameter information needed since there are no parameters.
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 starts with '현재 ECOUNT 세션 상태 조회' (retrieve current ECOUNT session status), clearly identifying the action and resource. It lists specific checked items (Zone info, validity, expiration time), making the purpose concrete. This tool is distinct from sibling tools like ecount_server_status or ecount_test_connection because it focuses specifically on session state, even without naming them.
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 explicitly states when to use: '세션이 만료되었는지 확인하거나 디버깅할 때 사용합니다' (use to check if session is expired or for debugging). It also notes '인자 없이 호출합니다' (call with no arguments), providing direct invocation guidance. However, it does not explicitly mention alternatives or when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_server_statusA
MCP 서버 내부 상태 조회. Rate Limit 현황, 에러 카운터, 캐시 상태, 서버 버전을 확인합니다. API 호출이 차단되거나 느린 원인을 파악할 때 사용합니다. 인자 없이 호출합니다.
| 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 discloses that this is a read-only status query ('조회'), specifies the data it returns, and notes '인자 없이 호출합니다' (no arguments). While it doesn't explicitly state side effects, the nature of the tool implies no mutation, and the detail is sufficient for safe invocation.
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: four short sentences in Korean, each providing necessary information (purpose, content, usage context, no-arg requirement). No wasted words, and the main purpose 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 zero-parameter, no-output-schema tool, the description is complete. It tells the agent what the tool does, what data it exposes (rate limit, error counters, cache, version), when to use it, and that it requires no arguments. There is no missing information needed 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?
The tool has zero parameters, and the description explicitly states '인자 없이 호출합니다' (call with no arguments). This matches the baseline for 0 params and adds clarity by preempting any assumption of inputs.
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: 'MCP 서버 내부 상태 조회' (query MCP server internal status), and lists specific items (Rate Limit 현황, 에러 카운터, 캐시 상태, 서버 버전). This distinguishes it from sibling tools that handle business operations like products, sales, and inventory.
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 explicitly states when to use the tool: 'API 호출이 차단되거나 느린 원인을 파악할 때 사용합니다' (use when API calls are blocked or slow). This provides clear context, though it does not explicitly mention when not to use it, which is acceptable for a diagnostic tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecount_test_connectionA
ECOUNT ERP 연결 테스트. API 인증 정보(회사코드, 사용자ID, API키)가 올바른지 확인하고, Zone 조회와 로그인이 성공하는지 테스트합니다. 다른 ECOUNT 도구 사용 전에 먼저 실행하세요. 인자 없이 호출합니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 that the tool checks three specific aspects (auth info, Zone lookup, login) and that it takes no arguments. However, it does not describe return values or failure behavior, which could be expected for a test tool, but overall it is sufficiently transparent for a connection check.
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, each adding distinct value: what it does, what it verifies, and when to use it. It is front-loaded with the purpose and contains 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?
Given the tool's simplicity (no parameters, no output schema), the description covers the essential aspects: purpose, verification steps, usage prerequisite, and invocation. It is missing explicit information about expected response format, but for a connection test with no schema, this is a minor gap.
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 has zero parameters, and the description explicitly states 'called with no arguments' (인자 없이 호출합니다), reinforcing the empty schema. This is a solid baseline for a no-parameter tool, adding clarity that the agent does not need to generate any arguments.
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: testing the ECOUNT ERP connection by verifying authentication info and checking Zone lookup and login success. It distinguishes itself from siblings by explicitly positioning as a prerequisite to run before other ECOUNT 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 provides explicit when-to-use guidance: 'Run this before using other ECOUNT tools.' It also states it is called with no arguments, which sets expectations for invocation. No alternative tools are named, but the directive is unambiguous.
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.
23 tool updates
v0.1.3- First observed
ecount_create_board_post - First observed
ecount_create_clock_in_out - First observed
ecount_create_customer - First observed
ecount_create_goods_issued - First observed
ecount_create_goods_receipt - First observed
ecount_create_invoice - First observed
ecount_create_job_order - First observed
ecount_create_openmarket_order - First observed
ecount_create_product - First observed
ecount_create_purchase - First observed
ecount_create_quotation - First observed
ecount_create_sale - First observed
ecount_create_sale_order - First observed
ecount_get_inventory - First observed
ecount_get_inventory_by_warehouse - First observed
ecount_get_inventory_by_warehouse_list - First observed
ecount_get_inventory_list - First observed
ecount_get_product - First observed
ecount_get_products - First observed
ecount_get_purchase_orders - First observed
ecount_get_session_info - First observed
ecount_server_status - First observed
ecount_test_connection
TDQS
Scored across 23 tools
Most tools have clearly distinct purposes, but the four inventory tools and three diagnostic/status tools could be confused. Descriptions are detailed enough to disambiguate, keeping the set mostly clear.
Tools follow a consistent 'ecount_<verb>_<noun>' pattern with get/create verbs. Minor deviations like 'ecount_server_status' (missing 'get' prefix) and compound names like 'ecount_create_clock_in_out' slightly break the pattern but are still readable.
23 tools is on the heavier side, but the ERP domain naturally spans many modules. The count is justified, though it could be trimmed by consolidating the redundant inventory query tools.
The server heavily favors create operations for many document types but lacks corresponding get/update/delete for most of them (e.g., customers only have create, quotations/sales orders only have create, and only purchase orders have a get). This leaves notable gaps for a general ERP integration.
Maintenance
Related MCP Connectors
Malaysian SME accounting, e-Invoice and payroll for your AI. 64 tools; writes are approved drafts.
Connect Exact Online to your AI assistant via MCP. Manage Exact Online with natural language.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Manage your Savanto store from your AI: catalog, content, prompts, and analytics, by chat.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Odoo ERP systems through natural language, allowing users to search, create, update, and manage business records like customers, products, and invoices across any Odoo instance.1Mozilla Public 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and operate Dingjie ERP system via natural language, covering procurement, sales, and material management.1-
- AlicenseBqualityBmaintenanceEnables AI assistants to operate Kingdee Cloud Star ERP via natural language, including querying, creating, submitting, auditing, and deleting business documents.8183MIT
- AlicenseCqualityBmaintenanceEnables AI assistants to manage inFlow Inventory, including products, sales orders, purchase orders, customers, vendors, inventory operations, serial numbers, and webhooks through natural language.862MIT