Releases: cyanheads/anime-mcp-server
Release list
v0.1.7: AniList result contracts
v0.1.6: Recovery and pagination guidance
Recovery and pagination guidance
v0.1.5: character-name lookups and conditional truncation
character-name lookups and conditional truncation
anime_find_charactersname and voice-actor lookups return results again — required truncation enrichment was written only in media-ID mode, so those calls failed output validationanime_find_charactersandanime_get_recommendationsdisclose truncation only when the source reports a further page
v0.1.4: mcp-ts-core ^0.12.3 adoption with pagination disclosures
mcp-ts-core ^0.12.3 adoption with pagination disclosures
- Protocol revision 2026-07-28 served alongside the 2025 era on MCP SDK v2; tool inputs strict (unknown argument keys rejected by name); advertised outputSchema declares the error envelope — this server's tool contracts unchanged
- totalCount enrichment on search, rankings, schedule (season), studio, and relations; truncated/shown/cap disclosure on find_characters (by_media) and recommendations
- anime_get_schedule text headers render mode:; find_characters throws missing_identifier when voice_actor_name is absent
- Community-health files added (CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, FUNDING); Docker production stage drops optional peers and adds a HEALTHCHECK; tsconfig split typechecks tests/; bunfig supply-chain guard
- deps: @cyanheads/mcp-ts-core ^0.10.6 → ^0.12.3, TypeScript ^6.0.3 → ^7.0.2, Bun pins 1.3.11 → 1.4.0
73 tests pass; devcheck clean.
v0.1.3: mcp-ts-core ^0.10.6 adoption
mcp-ts-core ^0.10.6 adoption
Framework upgrade with server-identity adoption, packaging-tooling sync, and an error-code alignment.
Dependency bumps:
@cyanheads/mcp-ts-core^0.9.21 → ^0.10.6@types/node^25.9.2 → ^25.9.3
Added:
scripts/clean-mcpb.tspost-pack bundle cleaner, wired into thebundlescriptlint:packagingpost-bundle content andcreateApp()identity checkscoerce-boolean-env-flagantipattern rule indevcheck
Changed:
createApp()sets explicitname/title= anime-mcp-serveranime_get_studio,anime_find_characters,anime_get_scheduleerrors recoded InvalidParams → ValidationError.mcpbignoredev-dir patterns re-anchored to root
73 tests pass; bun run devcheck clean.
v0.1.2: DX fixes: empty-result notices, description leaks removed, studio error contract
DX fixes: empty-result notices, description leaks removed, studio error contract
Patch targeting tool definition language and observability gaps found in field-test.
Fixed:
- anime_search_media, anime_get_rankings, anime_get_schedule — empty-result paths now populate structuredContent.notice with applied filters and recovery suggestion (#1, #4)
- anime_get_recommendations — removed audience-leaking phrase from liked_aspects description (#2)
- anime_get_media — scores output description rewritten to describe the data rather than coach the consumer (#3)
- anime_get_studio — missing_identifier added to errors contract; ctx.fail now populates data.reason on the missing-name-or-id path (#5)
Dependency bumps:
@types/node^25.9.1 → ^25.9.2
73 tests pass; bun run devcheck clean.
v0.1.1: Initial public release — 8 tools + 1 resource over AniList, Jikan, and Kitsu
Initial public release — 8 tools + 1 resource over AniList, Jikan, and Kitsu
Keyless MCP server for anime/manga discovery and metadata. Covers search, full detail with dual scoring (AniList + MAL), franchise watch order, airing schedule, characters and staff, recommendations, rankings, and studio filmography.
Added:
- anime_search_media, anime_get_media, anime_get_relations, anime_get_schedule, anime_find_characters, anime_get_recommendations, anime_get_rankings, anime_get_studio — 8-tool surface
- anime://media/{id} resource — full JSON media record by AniList ID
- Three-source service layer: AniList GraphQL (primary), Jikan REST (MAL scores, recs), Kitsu JSON:API (streaming links)
Security:
- Free-text and search inputs bounded (max 50–500 chars) across 6 tools
- sort array capped at 5 items x max(50) each — blocks unbounded GraphQL variable injection
- Kitsu ID numeric guard — rejects path-traversal via malformed API response
- Number.isNaN for AniList ID validation in resource handler
73 tests pass; bun run devcheck clean.