- TypeScript 100%
api.jikan.moe was shut down on 2026-10-01 (jikan-rest #613) and now times out. Tenrai (api.tenrai.org/v1) is a Jikan v4-compatible replacement, so search and research only change base URL and error text. Model 2026.10.23.2; the 2026.10.23.1 upgrade entry records a short-lived myanimelist.net page fallback that was removed before release. Manifest 2026.10.23.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| extensions/models | ||
| tests/property | ||
| .gitignore | ||
| .swamp.yaml | ||
| CLAUDE.md | ||
| LICENSE.txt | ||
| manifest.yaml | ||
| README.md | ||
@keeb/mal
MyAnimeList integration for swamp. Wraps Tenrai, a Jikan v4-compatible API (the public Jikan API was discontinued on 2026-10-01), behind structured swamp methods for anime metadata search and seasonal catalog research. One resource per show.
Installation
swamp extension install @keeb/mal
Models
@keeb/mal/lookup
Search MAL and pull seasonal catalogs. No credentials required — Tenrai is a public MAL proxy; the model paces requests at ~1 req/s.
models:
- name: mal
type: "@keeb/mal/lookup"
Methods
| Method | Args | Description |
|---|---|---|
search |
query, limit? (default 5) |
Search MAL by title, write top N results as anime resources |
research |
year, season (winter/spring/summer/fall) |
Pull every show for a given season, one anime resource per unique show |
swamp model method run mal search --query "frieren"
swamp model method run mal research --year 2026 --season spring
Resource: anime
Identity: slugified title. Attributes include malId, title, titleEnglish,
titleJapanese, type, episodes, status, score, scoredBy, rank,
synopsis, genres, themes, demographics, season, year, studios,
and url.
Resources have infinite lifetime with a garbage-collection retention of 50 versions per identity.
Rate limits
Requests are paced at roughly one per second (Jikan's old limit). The research
method paginates through full seasonal catalogs and sleeps 1s between pages
to stay under the limit. Expect a few seconds of runtime for a typical
season fetch.