Skip to main content
Glama

komga_series

Perform series operations in Komga: search, retrieve details, update metadata, mark read/unread, analyze books, and list thumbnails.

Instructions

komga series operations on Komga. Pass operation and an arguments dict matching that operation's parameters.

  • analyze_series(series_id) — Analyze all books in a series. Requires ADMIN.

  • get_latest_series(library_id=None, deleted=None, oneshot=None, page=0, size=50, sort=None, unpaged=False) — List recently added or updated series.

  • get_new_series(library_id=None, deleted=None, oneshot=None, page=0, size=50, sort=None, unpaged=False) — List newly added series.

  • get_series(series_id) — Get series details and metadata by ID.

  • get_series_collections(series_id) — List collections containing a series.

  • get_updated_series(library_id=None, deleted=None, oneshot=None, page=0, size=50, sort=None, unpaged=False) — List series that were updated but are not newly added.

  • list_series_thumbnails(series_id) — List thumbnail metadata for a series; does not download image bytes.

  • mark_series_read(series_id) — Mark every book in a series as read.

  • mark_series_unread(series_id) — Mark every book in a series as unread.

  • refresh_series_metadata(series_id) — Re-import embedded series metadata. Requires ADMIN.

  • search_series(full_text='', condition=None, page=0, size=50, sort=None, unpaged=False) — Search series using Komga's SeriesSearch body. Structured condition leaves are keyed by fields such as libraryId, collectionId, title, tag, genre, publisher, language, ageRating, readStatus, seriesStatus, mediaStatus, author, deleted, complete, oneShot, releaseDate, numberSort, and seriesId. Each leaf contains an operator object. Use string operators is, isNot, beginsWith, doesNotBeginWith, contains, doesNotContain, endsWith, or doesNotEndWith; booleans use isTrue/isFalse; dates use after/before/isInTheLast/isNotInTheLast/isNull/isNotNull; and group conditions with anyOf (OR) or allOf (AND). Read-status values are UNREAD, READ, IN_PROGRESS; media-status values are UNKNOWN, ERROR, READY, UNSUPPORTED, OUTDATED; series-status values are ENDED, ONGOING, ABANDONED, HIATUS.

  • search_series_alphabetical_groups(full_text='', condition=None, page=0, size=50, sort=None, unpaged=False) — List series grouped alphabetically. Structured condition leaves are keyed by fields such as libraryId, collectionId, title, tag, genre, publisher, language, ageRating, readStatus, seriesStatus, mediaStatus, author, deleted, complete, oneShot, releaseDate, numberSort, and seriesId. Each leaf contains an operator object. Use string operators is, isNot, beginsWith, doesNotBeginWith, contains, doesNotContain, endsWith, or doesNotEndWith; booleans use isTrue/isFalse; dates use after/before/isInTheLast/isNotInTheLast/isNull/isNotNull; and group conditions with anyOf (OR) or allOf (AND). Read-status values are UNREAD, READ, IN_PROGRESS; media-status values are UNKNOWN, ERROR, READY, UNSUPPORTED, OUTDATED; series-status values are ENDED, ONGOING, ABANDONED, HIATUS.

  • update_series_metadata(series_id, patch) — Update series metadata; null unsets a field and omission keeps it. Requires ADMIN.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
argumentsNo
operationYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Install Server

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It notes that analyze_series and refresh_series_metadata require ADMIN, that list_series_thumbnails does not download image bytes, and that update_series_metadata has null/omission semantics. It also describes the search condition structure in detail, which is complex. Minor gap: it does not state side effects of mark_series_read/unread or that update_series_metadata is a mutation, but the verbs imply it.

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

Conciseness4/5

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

The description is structured as a bulleted list of operations, which is scannable. However, it is quite long, especially the search condition repeated twice for two operations, adding verbosity. It could be trimmed by referencing the condition once, but overall structure is good and front-loaded with the operation list.

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

Completeness4/5

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

Given the tool's complexity (13 operations, many with complex parameters), the description is thorough. It covers return types implicitly (e.g., 'list', 'get details'), and with an output schema present, it doesn't need to detail return formats. It provides enough context for an agent to select and invoke operations correctly, but some operations lack side-effect details (e.g., mark_series_read) which would enhance completeness.

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

Parameters5/5

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

The schema has 0% coverage (only two generic params: operation and arguments), so the description must compensate by documenting each operation's parameters. It does this effectively by listing exact function signatures with parameter names and defaults, and for search operations, it explains the condition structure in detail (supported fields, operators, enums). This is far beyond the schema's capability.

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 provides a clear list of all operations with specific verbs (e.g., 'analyze_series', 'get_latest_series', 'search_series') and explicit resource scope (all on Komga series). It distinguishes between similar operations like 'get_latest_series', 'get_new_series', and 'get_updated_series' by their exact definitions.

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 explains when to use each operation, e.g., 'List recently added or updated series' vs 'List newly added series' vs 'List series that were updated but are not newly added'. It also notes admin requirements for some operations, providing clear context. However, it does not explicitly mention when not to use this tool compared to siblings, but the sibling scope is obvious.

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

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/arr-mcps/komga-mcp'

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