mylar3-mcp
Click on "Install 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., "@mylar3-mcpwhat's on my wanted list?"
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.
mylar3-mcp
Part of the arr-mcps collection. MCP server exposing Mylar3's HTTP API as tools, so an LLM can read and manage your comic library: watchlist, wanted issues, pull-list/upcoming, history, logs, story arcs, and providers.
Built with FastMCP.
Enabling the API on your Mylar3 server
Mylar3's API is opt-in and disabled by default. You must enable it and obtain an
API key in Mylar's web UI (or bootstrap it with cmd=getAPI if HTTP basic auth
is configured). This is server-side configuration specific to how you run
Mylar3, and out of scope for this project - see Mylar3's own settings for
API_ENABLED and API_KEY.
Related MCP server: komga-mcp
Install
Download a wheel from the latest release
and install it as a uv tool (no repo checkout needed):
uv tool install mylar3_mcp-*.whlThis puts a mylar3-mcp command on your PATH. Register it with Claude Code:
claude mcp add mylar3 \
--env MYLAR_URL=http://your-mylar-host:8090 \
--env MYLAR_API_KEY=<32-char key> \
-- mylar3-mcpFrom source
uv sync
cp .env.example .env # fill in MYLAR_URL and MYLAR_API_KEYclaude mcp add mylar3 \
--env MYLAR_URL=http://your-mylar-host:8090 \
--env MYLAR_API_KEY=<32-char key> \
-- uv run --directory /path/to/mylar3-mcp mylar3-mcpConfig
Env var | Required | Default |
| yes | - |
| yes (except | none (no |
| no |
|
Tools
5 resource-scoped tools, each covering multiple Mylar3 ?cmd= API
commands (40 total) via an operation parameter. Reads use GET, writes use
POST. Call a tool with operation set to one of its listed commands and an
arguments dict matching that command's params — the tool's own description
(visible to your MCP client) lists every operation, its signature, and a
one-line doc.
Tool | Operations | Covers |
| 12 | Add/get/pause/resume/refresh/delete comics, book type, status, recheck files, index, find |
| 7 | Issue info, queue/unqueue, force search/process, regenerate covers, refresh seriesjson |
| 7 | Read list, upcoming, wanted, story arcs, seriesjson listing, annual series |
| 4 | List/add/change/delete providers |
| 10 | Version, API, history, logs, config, GitHub check, update, restart, shutdown |
Example: mylar_comics(operation="mylar_del_comic", arguments={"id": "12345", "directory": True}).
Command-level naming (mylar_<verb>_<resource>, matching the underlying
?cmd= API command) is preserved as the operation value:
Operation | cmd |
| getIndex |
| getComic |
| getComicInfo |
| getIssueInfo |
| getReadList |
| getUpcoming |
| getWanted |
| getHistory |
| getLogs |
| findComic |
| getStoryArc |
| getVersion |
| listProviders |
| seriesjsonListing |
| listAnnualSeries |
| getAPI |
| addComic |
| pauseComic |
| resumeComic |
| refreshComic |
| changeBookType |
| changeStatus |
| recheckFiles |
| queueIssue |
| unqueueIssue |
| regenerateCovers |
| refreshSeriesjson |
| addStoryArc |
| forceSearch |
| forceProcess |
| addProvider |
| changeProvider |
| checkGithub |
| update |
| restart |
| clearLogs |
| delComic ( |
| delProvider |
| shutdown (stops the server) |
| configUpdate (session-cookie auth, see AGENTS.md) |
Notes
Mylar3's API responses are inconsistently enveloped: some wrap in
{"success": true, "data": ...}, some return the payload raw, and some return the bare string"OK". The server unwraps all of these so tools return just the meaningful data.mylar_queue_issueandmylar_force_searchcan actually snatch/download issues - treat them as state-changing.Binary endpoints (
getArt,downloadIssue,downloadNZB) are deliberately not exposed - they stream bytes, not JSON, which isn't useful over MCP.idparams are ComicVine ComicIDs; issue IDs are separate. Bulk-capable cmds (refreshComic,recheckFiles,regenerateCovers,refreshSeriesjson) accept comma-separated lists orall/missing.
Development
make help # list all commandsCommand | Does |
|
|
| Offline tests - one per endpoint, mocked HTTP |
| Tests against the live instance (needs |
| Build wheel + sdist into |
| Bump the version in |
| Remove build artifacts |
The release workflow (.github/workflows/release.yml) builds and publishes to
Releases whenever a v* tag
is pushed - so the usual flow is make bump-patch, commit, then tag and push.
The integration suite only reads data, plus a single reversible write test that
pauses and resumes an existing series (set via MYLAR_TEST_COMIC_ID) - it never
snatches, deletes, or modifies your library.
Available Tools
5 toolsmylar_comicsA
mylar comics operations on Mylar3. Pass operation and an arguments dict matching that operation's parameters.
mylar_add_comic(id) — Queue adding a series to the watchlist by ComicVine ComicID. Runs in a background thread.
mylar_change_book_type(id, booktype) — Force a series' book type.
booktype: Print, Digital, TPB, GN, HC, or One-Shot.mylar_change_status(status_from, status_to, id) — Bulk-change issue status across a series. Pass id='all' for every series. status_from/status_to are issue statuses.
mylar_del_comic(id, directory=None) — Delete a series from the watchlist (and its issues).
idis the ComicVine ComicID. WARNING: pass directory='true' to also delete the comic folder from disk (rmtree).mylar_find_comic(name, issue=None, type_=None, mode=None, page=None, pageSize=None, serinfo=None) — Search ComicVine for a series.
nameis required; type_='story_arc' searches arcs, mode can be series/pullseries/want.mylar_get_comic(id) — Get one series and its issues: returns {comic, issues, annuals}.
idis the ComicVine ComicID.mylar_get_comic_info(id) — Get a single series row from the comics table.
idis the ComicVine ComicID.mylar_get_index() — List every series on the Mylar3 watchlist (id, name, status, publisher, etc.).
mylar_pause_comic(id) — Pause a series' wanted tracking.
idis the ComicVine ComicID.mylar_recheck_files(id) — Recheck files on disk for a series.
idaccepts a single id, comma-list, or a JSON array.mylar_refresh_comic(id) — Queue a ComicVine refresh of a series.
idaccepts a single id or comma-separated list.mylar_resume_comic(id) — Resume a paused series.
idis the ComicVine ComicID.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses important behaviors like background execution ('Runs in a background thread') and destructive delete warning ('WARNING: pass directory='true' to also delete the comic folder from disk (rmtree)'). However, it lacks details on side effects for other mutating operations (e.g., change_book_type, change_status), permission requirements, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured as a bullet list with a clear opening instruction. Each operation is documented in one line with its parameters and brief explanation. It is concise yet thorough, front-loading the general usage pattern and itemizing operations without unnecessary prose.
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 (12 operations, 0% schema coverage), the description covers all operations with signatures and basic behavior. An output schema exists, so return values need not be detailed. Some parameter semantics and behavioral details are incomplete, but the description provides enough to invoke the tool correctly for most operations, making it reasonably 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 has 0% description coverage and only exposes operation and arguments, so the description must compensate. It provides per-operation parameter lists and explains many key semantics (e.g., booktype values, id='all' for bulk, type_='story_arc' for arcs, directory='true' for folder deletion). Some parameters remain cryptic (e.g., issue, pageSize, serinfo in mylar_find_comic), but overall it adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it handles 'mylar comics operations on Mylar3' and lists all supported operations with specific verb+resource pairs (e.g., 'mylar_add_comic(id) — Queue adding a series'), distinguishing this tool from sibling tools focused on issues queue, lists, providers, and system.
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 clear usage context: use this tool for comics-related operations (add/delete/get/pause etc.) on Mylar3. It does not explicitly mention when not to use this tool or name alternatives, but the scope is well-defined through the operation list and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mylar_issues_queueA
mylar issues queue operations on Mylar3. Pass operation and an arguments dict matching that operation's parameters.
mylar_force_process(nzb_name, nzb_folder, failed=None, issueid=None, comicid=None, ddl=None, oneoff=None, apc_version=None, comicrn_version=None) — Enqueue a post-processing job. Requires nzb_name and nzb_folder. Used by SABnzbd/NZBGet-style callbacks.
mylar_force_search() — Trigger a wanted-issue search across the library. May snatch/download wanted issues. Runs in-process.
mylar_get_issue_info(id) — Get a single issue row from the issues table.
idis the IssueID.mylar_queue_issue(id) — Mark an issue Wanted and immediately kick off a search (may snatch/download).
idis the IssueID.mylar_refresh_seriesjson(comicid) — Regenerate series.json files.
comicid: single, list, 'all', 'missing', or 'refresh-missing'.mylar_regenerate_covers(id, overwrite_existing=None) — Re-fetch series cover images.
id: single, comma-list, 'all', or 'missing'.mylar_unqueue_issue(id) — Mark an issue Skipped (un-queue it).
idis the IssueID.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of explaining side effects, but it only discloses potentially significant behavior for two operations ('may snatch/download' for force_search and queue_issue). Other mutating operations, like mylar_force_process and mylar_unqueue_issue, do not mention permissions, reversibility, external effects, or other behavioral consequences.
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 longer than average but necessarily so given the seven distinct operations. The per-operation bullet list with signatures and short comments is well-organized and scannable, with no significant 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?
Given the high complexity (seven operations), minimal input schema, and no annotations, the description does a solid job of covering the purpose and key parameters of each operation. An output schema exists, so not explaining return values is acceptable, but a few operation side effects remain under-specified.
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 is generic (operation plus a free-form arguments object), so the description's detailed function signatures add substantial meaning. It lists parameter names and provides allowed values for several (e.g., comicid: single, list, 'all', 'missing', or 'refresh-missing'), although some optional parameters like ddl and oneoff remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as the Mylar3 issues-queue tool and enumerates seven specific operations (e.g., mylar_force_process, mylar_queue_issue) with concise explanations. This distinguishes it from sibling tools like mylar_comics and mylar_providers.
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?
Each operation is accompanied by a brief usage context, such as 'Used by SABnzbd/NZBGet-style callbacks' and 'Trigger a wanted-issue search across the library.' It does not explicitly say when not to use the tool or name alternatives, but the per-operation guidance gives clear situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mylar_lists_discoveryA
mylar lists discovery operations on Mylar3. Pass operation and an arguments dict matching that operation's parameters.
mylar_add_story_arc(issues=None, arclist=None, id=None, storyarcname=None) — Add/create a story arc. Provide
issuesORarclist.storyarcnamerequired when creating;idto extend an existing arc.mylar_get_read_list() — List the issues in the read list, ordered by issue date.
mylar_get_story_arc(id=None, customOnly=None) — List story arcs; with
id, list that arc's issues in reading order. Pass customOnly='1' for custom arcs only.mylar_get_upcoming(include_downloaded_issues=None) — List this week's wanted issues. Pass include_downloaded_issues='Y' to also include Snatched/Downloaded.
mylar_get_wanted(story_arcs=None) — List wanted issues. Pass story_arcs='true' to also include Wanted story-arc issues and annuals.
mylar_list_annual_series(list_issues=None, group_series=None, show_downloaded=None) — List annual issues. Provide list_issues OR group_series; pass show_downloaded to include downloaded.
mylar_seriesjson_listing(missing=None) — List series with/without series.json. Pass missing='1' for only series missing a series.json.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must handle behavioral disclosure, and it does disclose parameter-specific behaviors (e.g., customOnly='1', include_downloaded_issues='Y'). It also explicitly marks `mylar_add_story_arc` as 'Add/create', signaling mutation. Still, it does not give a high-level summary of which operations are read-only versus mutating, nor does it mention permissions, side effects, rate limits, or 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 opens with a crisp one-line overview and invocation pattern, then uses a consistent bullet list for all seven operations. Each entry follows the same 'signature — explanation' format without redundancy or filler. Although the description is lengthy due to the number of operations, every sentence carries necessary information and is well-structured for scanning.
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 all operations and their parameters, and an output schema exists to define return values, reducing that burden. The main gaps are the lack of explicit read-only vs mutation distinction (though inferable) and the misleading 'discovery' umbrella that doesn't fit the add operation. These minor omissions prevent perfect completeness for agent decision-making.
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 is minimal, with only `operation` and a generic `arguments` object (0% coverage), so the description fully compensates. It documents every operation's parameter signature, required vs optional arguments (e.g., storyarcname required when creating, id to extend), and explains the meaning of special flags. This adds substantial meaning beyond the schema and enables correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as handling Mylar3 list operations, enumerating all supported operations and their purposes. It differentiates from sibling tools by its 'lists' scope. However, the term 'discovery' is contradictory because `mylar_add_story_arc` is a mutation operation, not a read-only discovery, which slightly weakens clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by providing the invocation pattern ('Pass `operation` and an `arguments` dict...') and listing all operations, which tells an agent exactly what actions are possible. However, it offers no explicit comparison to sibling tools, no when-to-use/when-not-to-use guidance, and no mention of prerequisites or context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mylar_providersA
mylar providers operations on Mylar3. Pass operation and an arguments dict matching that operation's parameters.
mylar_add_provider(providertype, name, host, prov_apikey, enabled, categories=None, uid=None) — Add a newznab or torznab provider. providertype is 'newznab' or 'torznab' (torznab requires categories).
mylar_change_provider(providertype, name=None, prov_id=None, altername=None, host=None, prov_apikey=None, enabled=None, categories=None, uid=None) — Modify a provider. Provide providertype and either
nameorprov_id, plus any fields to change.mylar_del_provider(providertype, name=None, prov_id=None) — Remove a provider. Provide providertype and either
nameorprov_id.mylar_list_providers() — List configured newznab/torznab providers: returns {newznabs: [...], torznabs: [...]}.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It provides operation semantics (add/change/delete/list), notes the constraint that torznab requires categories, and specifies that delete requires either name or prov_id. However, it does not discuss side effects like persistence, permissions, idempotency, or error behavior, which are important for a tool that mutates provider configuration.
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-organized: a one-line overview followed by four operation signatures with descriptive notes. Each line adds specific value, with no filler or redundant repetition. The structure makes it easy to scan and understand the tool's capabilities quickly.
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 dispatcher tool with four operations, the description covers all operation parameters and even highlights the return structure for list_providers. The presence of an output schema reduces the need to document return values further. However, additional context about side effects (e.g., whether changes persist to Mylar3's config) would improve operational completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description is the primary source of parameter meaning. It enumerates each operation's parameters, defaults, and required fields, and explains the operation vs. arguments pattern. It does not explicitly type every parameter (e.g., 'enabled' as boolean) or describe the arguments dict structure beyond the signatures, but it compensates well overall.
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 defines the tool's role as managing Mylar3 providers, explicitly listing all four supported operations (add, change, delete, list) with detailed function signatures. This distinguishes it from sibling tools that target comics, issues, lists, or system functions, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation list effectively tells the agent when to use the tool (whenever provider management is needed), and each signature clarifies the exact scope of each operation. However, there is no explicit 'when not to use' or direct comparison with alternative tools, leaving the agent to infer the appropriate context from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mylar_systemA
mylar system operations on Mylar3. Pass operation and an arguments dict matching that operation's parameters.
mylar_check_github() — Check GitHub for updates and return current version data.
mylar_clear_logs() — Clear Mylar3's in-memory log buffer.
mylar_get_api(username, password) — Bootstrap helper: fetch the API key using HTTP basic login credentials. Does not require MYLAR_API_KEY.
mylar_get_history() — List rows from the snatched table (download history), newest first.
mylar_get_logs() — Return Mylar3's in-memory log buffer.
mylar_get_version() — Get Mylar3 version info: git_path, install_type, current_version, latest_version, commits_behind.
mylar_restart() — Restart Mylar3.
mylar_set_config(settings) — Set one or more Mylar config options via the web configUpdate endpoint. Takes a dict of checkbox/text settings keyed by their config.ini name (e.g. {"notify_pack_gif": True}). Checkboxes use boolean values; unchecked checkboxes should be set to False. Requires MYLAR_WEB_USERNAME and MYLAR_WEB_PASSWORD. Applies immediately and persists to config.ini.
mylar_shutdown() — Shut down Mylar3. This stops the server.
mylar_update() — Trigger Mylar3 to self-update (may restart the app).
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and succeeds: it discloses side effects (e.g., mylar_shutdown 'stops the server', mylar_update 'may restart the app'), persistence ('Applies immediately and persists to config.ini'), and auth requirements. It also notes when a function does NOT require the API key, which is valuable 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 front-loaded with the general invocation pattern, then uses a clear bulleted list to cover each operation. Every line supplies necessary information without fluff; the length is appropriate for a 10-operation dispatcher and remains 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?
The tool is complete for its purpose: it explains the dispatch mechanism, lists all operations, specifies their arguments, flags side effects, and notes credentials. The output schema exists but doesn't reduce the need for behavioral details, which are provided. Sibling tools are clearly different domains, so no further contextual clarification is needed.
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?
Despite 0% schema description coverage, the description thoroughly explains parameters for each operation in prose, such as 'Pass operation and an arguments dict matching that operation's parameters' and explicitly details argument shapes (e.g., 'Takes a dict of checkbox/text settings keyed by their config.ini name'). This fully compensates for the generic input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool handles 'mylar system operations on Mylar3' and enumerates all supported operations with specific verbs and targets (e.g., 'Check GitHub for updates', 'Clear Mylar3's in-memory log buffer'). It distinguishes from sibling tools by focusing exclusively on system operations rather than comics, issues, lists, or providers.
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 each sub-operation, including when to use them (e.g., 'Bootstrap helper: fetch the API key' for mylar_get_api) and prerequisites (e.g., requires MYLAR_WEB_USERNAME and MYLAR_WEB_PASSWORD for set_config). It does not explicitly discuss alternatives or exclusion cases, but the dispatcher nature makes such guidance largely unnecessary.
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. Dates show when Glama detected each change.
5 tool updates
v0.2.0- First observed
mylar_comics - First observed
mylar_issues_queue - First observed
mylar_lists_discovery - First observed
mylar_providers - First observed
mylar_system
TDQS
The five tools are clearly grouped by domain (comics, issues queue, lists/discovery, providers, system), making it easy to select the appropriate namespace. However, there is some overlap between mylar_comics and mylar_issues_queue (e.g., mylar_change_status vs. mylar_queue_issue/unqueue_issue) and subtle differences like mylar_get_comic vs. mylar_get_comic_info that could cause occasional misselection.
All tool names follow a consistent snake_case pattern of mylar_<domain> (mylar_comics, mylar_issues_queue, mylar_lists_discovery, mylar_providers, mylar_system). The operation names within each tool also consistently use the mylar_ prefix and a verb_noun style, ensuring predictability.
With exactly 5 tools, the server falls well within the ideal 3-15 range. Each tool represents a logical domain and earns its place, even though it internally dispatches many operations. The count is neither too thin nor bloated for the Mylar3 management purpose.
The tool surface covers the major lifecycle operations for comics (add, delete, get, refresh, pause/resume), issues (queue/unqueue, search), lists (wanted, upcoming, read list, story arcs), providers (CRUD), and system management (version, logs, config, restart). Minor gaps exist, such as no direct tool to edit an issue's metadata beyond queue status, but core workflows are fully supported.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that enables local LLMs to manage a home media stack including Radarr, Sonarr, Prowlarr, and others.MIT
- AlicenseAqualityAmaintenanceMCP server exposing Komga's REST API as tools for browsing and managing comic, manga, BD, magazine, and ebook libraries.8MIT
- AlicenseCqualityAmaintenanceMCP server exposing Radarr's v3 REST API as tools, enabling LLMs to read and manage movies, downloads, history, indexers, and more.100MIT
- AlicenseBqualityAmaintenanceMCP server that exposes the Bookshelf (Readarr fork) v1 REST API as tools, allowing an LLM to read and manage authors, books, book files, editions, series, download queue, history, indexers, import lists, custom formats, tags, commands, and system status, with full read/write access and destructive tools flagged.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mylar3-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server