
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
@cyanheads/anime-mcp-server
Advanced tools
Search anime/manga, get full detail, franchise watch order, seasonal schedule, characters, rankings, and studio filmography via MCP. STDIO or Streamable HTTP.
Search anime/manga, get full detail, franchise watch order, seasonal schedule, characters, rankings, and studio filmography via MCP. STDIO or Streamable HTTP.
Eight tools covering anime and manga discovery, detail, and navigation:
| Tool | Description |
|---|---|
anime_search_media | Search anime or manga by title, genre, tag, season, year, format, or status. Returns ranked results with IDs, titles, scores, format, and episode/chapter counts. AniList primary; Jikan fallback on empty results. |
anime_get_media | Full detail for one anime or manga by AniList ID — synopsis, format, episode/chapter count, status, season, studios, source material, genres and tags (spoiler-flagged), AniList and MAL scores side by side, streaming links, cover/banner, and direct relations. |
anime_get_relations | Franchise untangler. Walks the related-works graph from a media ID beyond one hop — sequels, prequels, side stories, movies, OVAs, source and adaptation — and returns them in suggested watch/read order. |
anime_get_schedule | Airing schedule for a season or upcoming episode window. Season mode lists all anime airing in a given season/year. Upcoming mode returns the next episode for each airing title within a date window, with UTC timestamp and countdown. |
anime_find_characters | Characters and voice actors for a title, or look up a character/VA by name. Returns characters with role (main/supporting/background), voice actors by language, and cross-links to other media. |
anime_get_recommendations | Recommendations for a title, merged from AniList and Jikan (MAL), with scores and vote counts. Optionally accepts what the user liked about the source title to contextualize picks. |
anime_get_rankings | Top, trending, or seasonal rankings. Filterable by genre, tag, and format. Top returns all-time by score; trending returns current week; seasonal returns the current or specified season sorted by popularity. |
anime_get_studio | A studio's full filmography by name or AniList studio ID — all titles the studio produced, sortable by year or score, with format, status, and episode count. |
anime_search_mediaSearch for anime or manga across multiple dimensions.
TV, MOVIE, OVA, MANGA, NOVEL, etc.), and status (RELEASING, FINISHED, etc.)include_adult: true (default off)page and per_pageanime_get_mediaFull detail for a single anime or manga — the flagship tool for a title's complete profile.
spoiler flag; relation descriptions omitted unless reveal_spoilers: trueanime_get_relationsBuild the watch/read order for an entire franchise.
max_depth hops (default 2, max 4)seasonYear and episode/chapter count for contextanime_find_charactersBidirectional character and voice actor lookup.
StaffLanguage enum (JAPANESE, ENGLISH, KOREAN, etc.)| Type | Name | Description |
|---|---|---|
| Resource | anime://media/{id} | Full media record for an anime or manga by AniList ID — same data as anime_get_media. Stable URI for injectable context. |
All resource data is also reachable via tools. Use anime_search_media to discover AniList IDs before fetching the resource URI.
Built on @cyanheads/mcp-ts-core:
none, jwt, oauthin-memory, filesystem, Supabase, Cloudflare KV/R2/D1Anime/manga-specific:
idMal bridge — no cross-source ID guessingAgent-friendly output:
meanScore (0–100) and MAL score (0–10) with population size (scored_by) so agents can reason about weight; never blended into a compositeisGeneralSpoiler; relation descriptions omitted unless opted inWINTER 2024) to avoid the winter/spring/summer/fall boundary footgunNo API keys required — all three upstream sources (AniList, Jikan, Kitsu) are keyless public APIs.
Add the following to your MCP client configuration file:
{
"mcpServers": {
"anime-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/anime-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}
Or with npx (no Bun required):
{
"mcpServers": {
"anime-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/anime-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}
Or with Docker:
{
"mcpServers": {
"anime-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT_TYPE=stdio",
"ghcr.io/cyanheads/anime-mcp-server:latest"
]
}
}
}
For Streamable HTTP, set the transport and start the server:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp
git clone https://github.com/cyanheads/anime-mcp-server.git
cd anime-mcp-server
bun install
cp .env.example .env
# edit .env if you want to change transport or log level
No server-specific env vars are required. All framework variables are optional with sensible defaults.
| Variable | Description | Default |
|---|---|---|
MCP_TRANSPORT_TYPE | Transport: stdio or http. | stdio |
MCP_HTTP_PORT | Port for HTTP server. | 3010 |
MCP_HTTP_HOST | Hostname for HTTP server. | 127.0.0.1 |
MCP_HTTP_ENDPOINT_PATH | Endpoint path for the MCP server. | /mcp |
MCP_AUTH_MODE | Auth mode: none, jwt, or oauth. | none |
MCP_LOG_LEVEL | Log level (RFC 5424): debug, info, notice, warning, error. | info |
OTEL_ENABLED | Enable OpenTelemetry instrumentation. | false |
See .env.example for the full list of optional overrides.
Build and run:
# One-time build
bun run rebuild
# Run the built server
bun run start:stdio
# or
bun run start:http
Run checks and tests:
bun run devcheck # Lint, format, typecheck, security
bun run test # Vitest test suite
bun run lint:mcp # Validate MCP definitions against spec
docker build -t anime-mcp-server .
docker run --rm -p 3010:3010 anime-mcp-server
The Dockerfile defaults to HTTP transport, stateless session mode, and logs to /var/log/anime-mcp-server. OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.
| Directory | Purpose |
|---|---|
src/index.ts | createApp() entry point — registers tools, resources, and inits services. |
src/mcp-server/tools | Tool definitions (*.tool.ts). |
src/mcp-server/resources | Resource definitions (*.resource.ts). |
src/services/anilist | AniList GraphQL client — primary source for all queries. |
src/services/jikan | Jikan v4 REST client — MAL scores and recommendations. |
src/services/kitsu | Kitsu JSON:API client — streaming links with sub/dub language detail. |
tests/ | Unit and integration tests mirroring src/. |
changelog/ | Per-version changelog files (changelog/<minor>.x/<version>.md). |
See CLAUDE.md/AGENTS.md for development guidelines and architectural rules. The short version:
try/catch in tool logicctx.log for request-scoped logging, ctx.state for tenant-scoped storagesrc/mcp-server/*/definitions/index.tsPromise.allSettledIssues and pull requests are welcome. Run checks and tests before submitting:
bun run devcheck
bun run test
Apache-2.0 — see LICENSE for details.
FAQs
Search anime/manga, get full detail, franchise watch order, seasonal schedule, characters, rankings, and studio filmography via MCP. STDIO or Streamable HTTP.
The npm package @cyanheads/anime-mcp-server receives a total of 49 weekly downloads. As such, @cyanheads/anime-mcp-server popularity was classified as not popular.
We found that @cyanheads/anime-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.