Skip to main content
Glama
wasintoh

line-oa-mcp-ultimate

by wasintoh

Manage LINE OA coupons

line_manage_coupon

Manage LINE OA coupons: create, list, get, or discontinue coupons using natural language commands.

Instructions

Coupon CRUD on a LINE OA (POST /v2/bot/coupon). Four modes:

  • create: Make a new coupon. Maps friendly inputs to LINE's required schema (reward, acquisitionCondition, startTimestamp/endTimestamp in UNIX seconds, timezone, visibility, maxUseCountPerTicket).

  • list: List all coupons.

  • get: Fetch a specific coupon by coupon_id.

  • discontinue: End a live coupon (irreversible — requires confirm=true).

Rate limit: shared bucket 200 req/sec with multicast.

create data fields:

  • title (required, ≤60)

  • discount_type: 'percentage' (default) | 'fixed' | 'explicit'

  • discount_value: % (percentage) or amount (fixed)

  • price_before / price_after: for discount_type='explicit'

  • valid_from / valid_to (required): UNIX seconds | 'YYYY-MM-DD' | ISO datetime

  • timezone: default 'ASIA_BANGKOK'

  • visibility: 'PUBLIC' | 'UNLISTED' (default UNLISTED)

  • max_use_per_ticket: 1 (default) | -1 (unlimited)

  • acquisition_type: 'normal' (default) | 'lottery' (+lottery_probability)

  • description, image_url, coupon_code, barcode_image_url (optional)

Examples:

  • "Early Bird ลด 20% 1–8 มิ.ย." → { mode: "create", data: { title: "Early Bird คอร์สจารโต", discount_type: "percentage", discount_value: 20, valid_from: "2026-06-01", valid_to: "2026-06-08", coupon_code: "EARLYBIRD" } }

  • "คูปองลด 100 บาท" → { mode: "create", data: { title: "ลด 100", discount_type: "fixed", discount_value: 100, valid_from: "2026-06-01", valid_to: "2026-06-30" } }

  • "ดู coupons ทั้งหมด" → { mode: "list" }

  • "ปิด coupon C123" → { mode: "discontinue", coupon_id: "C123", confirm: true }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYescreate: make a new coupon; list: list all coupons; get: fetch one; discontinue: end one (irreversible).
coupon_idNoRequired for mode='get' or 'discontinue'.
dataNoRequired for mode='create'.
confirmNoRequired true for mode='discontinue'.
oaNo
response_formatNomarkdown
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description correctly highlights that discontinue is 'irreversible' (destructive), but the annotations declare destructiveHint=false, creating a direct contradiction. This inconsistency severely undermines trust and reliability for the AI agent. The description itself is transparent about the destructive nature, but the annotation contradicts it, warranting the lowest score per the rule.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points for modes and data fields, including examples that illustrate typical usage. It is front-loaded with the core purpose and modes, and every sentence contributes necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (four CRUD modes, numerous parameters, rate limits, irreversibility), the description covers all essential aspects: each mode's behavior, parameter format constraints, example invocations, and a rate limit note. No output schema exists, but the description implies the return structure adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 67%, the description adds significant value by explaining each parameter's meaning, constraints (e.g., title ≤60, valid_from formats), and providing examples for create mode. It clarifies enumeration options like discount_type and visibility, going beyond the schema's minimal descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Coupon CRUD on a LINE OA' and enumerates four distinct modes (create, list, get, discontinue) with specific verbs and resources. It also maps friendly inputs to LINE's required schema, making the tool's purpose unambiguous and well-differentiated from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context for each mode (e.g., discontinue is irreversible and requires confirm=true) and includes a rate limit note. However, it does not explicitly state when to avoid this tool in favor of alternatives like line_get_coupon_stats, but given the sibling list, no other tool duplicates coupon management, so the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wasintoh/line-oa-mcp-ultimate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server