Skip to main content
Glama
line-desktop-mcp

line-desktop-mcp

by onlygummy

Read unread messages

unread
Idempotent

List chats that still have messages to read and their newest messages in one call, reducing per-chat requests while leaving LINE read counts unchanged.

Instructions

List chats with unread messages and the newest messages in each.

One call instead of one get_messages per chat. Chats are ordered by their latest activity, and chats_skipped says how many unread chats did not fit in chats_limit. Every message read is archived, and nothing is marked as read on LINE: the counts stay until the chat is opened on the phone.

It costs one LINE request per chat, so the caps are low on purpose. Images are downloaded only with include_images=true, because a digest of ten chats can hold dozens. When LINE cannot be reached the archive answers instead, and stale says so.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "unread"
  }
}

Input Schema

NameRequiredDescriptionDefault
per_chatNoHow many newest messages per chat.
chats_limitNoHow many unread chats to summarise.
include_imagesNoAttach the images in those messages (slower and larger).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv4.0.0

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: it explains that every message read is archived (which is why readOnlyHint is false despite the read-flavored name), that nothing is marked read on LINE so counts persist, that cost is one LINE request per chat, and that a stale archive answers when LINE is unreachable via the `stale` flag. That is exactly the context the structured hints cannot convey.

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?

Front-loaded with purpose in the first line, then ordered by what an agent needs next: cheap alternative, side effects, cost, image opt-in, failure mode. No sentence is decorative and the short paragraphs map cleanly to distinct concerns.

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?

There is no output schema, so the description carries the return contract and does: ordering by latest activity, `chats_skipped` overflow count, `stale` fallback indicator, and the image payload caveat. Combined with the disclosed side effects, an agent has everything needed to call it and interpret the result.

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?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: `chats_limit` is tied to `chats_skipped` overflow behavior, and `include_images` is justified ('a digest of ten chats can hold dozens'), so the agent understands the cost tradeoff rather than just the type. `per_chat` is left to the schema text, keeping it off a 5.

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?

Opens with a specific verb and resource: 'List chats with unread messages and the newest messages in each.' It also implicitly separates itself from `get_messages` ('One call instead of one `get_messages` per chat') and from `list_chats` by the unread-only scope, so an agent can pick it without opening sibling schemas.

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?

Names the alternative it replaces (`get_messages` fan-out) and gives the selection condition (one call vs. one call per chat), plus cost-driven guidance ('caps are low on purpose') and the condition for images. It stops short of explicit exclusions such as when to prefer `list_chats` or `search_messages` instead, so it is strong but not fully complete routing guidance.

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