MyDramaList MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MDL_API_KEY | No | Optional SDK configuration override | |
| MDL_TIMEOUT | No | Seconds per upstream HTTP request | 30 |
| MDL_MCP_HOST | No | Host to bind; 0.0.0.0 inside Docker | 127.0.0.1 |
| MDL_MCP_PORT | No | Port to bind | 8000 |
| MDL_DEVICE_ID | No | Optional SDK configuration override | |
| MDL_MCP_TOKEN | No | Required server bearer secret for HTTP, 32+ characters | |
| MDL_TOKEN_FILE | No | Path to token file; default is ~/.mydramalist/token.json (/data/token.json in Docker) | |
| MDL_APP_VERSION | No | Optional SDK configuration override | |
| MDL_IMPERSONATE | No | SDK transport default | chrome |
| MDL_ACCESS_TOKEN | No | Optional MyDramaList app API bearer token | |
| MDL_MCP_READ_ONLY | No | true hides/disables writes | false |
| MDL_MCP_TOKEN_FILE | No | Path to file containing required server bearer secret for HTTP, 32+ characters | |
| MDL_REQUEST_INTERVAL | No | Minimum seconds between upstream calls | 0.25 |
| MDL_ACCESS_TOKEN_FILE | No | Path to file containing optional MyDramaList app API bearer token | |
| MDL_MCP_ALLOWED_HOSTS | No | Comma-separated localhost and 127.0.0.1 host/port patterns | |
| MDL_MCP_ALLOWED_ORIGINS | No | Comma-separated localhost and 127.0.0.1 HTTP origins |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mdl_search_titlesC | Search: titles. Use filters for additional upstream search parameters; page starts at 1. filters is a JSON object of upstream parameters. |
| mdl_search_top_dramasC | Search: top dramas. |
| mdl_search_peopleC | Search: people. |
| mdl_titles_get_titleD | Titles: get title. |
| mdl_titles_get_comment_countB | Titles: get comment count. Total comment count, read from the |
| mdl_titles_get_reviewsC | Titles: get reviews. |
| mdl_titles_get_reviews_pageD | Titles: get reviews page. |
| mdl_titles_get_recommendationsD | Titles: get recommendations. |
| mdl_titles_get_creditsD | Titles: get credits. |
| mdl_titles_get_genresC | Titles: get genres. |
| mdl_titles_search_tagsD | Titles: search tags. |
| mdl_explore_trendingC | Explore: trending. params is a JSON object of upstream parameters. |
| mdl_explore_top_airingC | Explore: top airing. params is a JSON object of upstream parameters. |
| mdl_explore_upcomingD | Explore: upcoming. params is a JSON object of upstream parameters. |
| mdl_explore_recommendedC | Explore: recommended. params is a JSON object of upstream parameters. |
| mdl_explore_currently_watchingC | Explore: currently watching. params is a JSON object of upstream parameters. |
| mdl_explore_top_moviesC | Explore: top movies. params is a JSON object of upstream parameters. |
| mdl_users_get_user_infoD | Users: get user info. |
| mdl_users_get_personC | Users: get person. |
| mdl_users_get_person_creditsC | Users: get person credits. |
| mdl_users_get_user_statsC | Users: get user stats. |
| mdl_reviews_getC | Reviews: get. |
| mdl_comments_listD | Comments: list. params is a JSON object of upstream parameters. |
| mdl_custom_lists_get_user_listsD | Custom Lists: get user lists. |
| mdl_custom_lists_popularD | Custom Lists: popular. |
| mdl_custom_lists_recent_activityD | Custom Lists: recent activity. |
| mdl_custom_lists_trendingC | Custom Lists: trending. |
| mdl_custom_lists_featuredD | Custom Lists: featured. |
| mdl_custom_lists_get_detailC | Custom Lists: get detail. |
| mdl_custom_lists_get_votesD | Custom Lists: get votes. |
| mdl_custom_lists_get_watch_statusC | Custom Lists: get watch status. |
| mdl_custom_lists_list_commentsD | Custom Lists: list comments. params is a JSON object of upstream parameters. |
| mdl_feeds_fetchD | Feeds: fetch. params is a JSON object of upstream parameters. |
| mdl_feeds_getC | Feeds: get. |
| mdl_articles_getD | Articles: get. |
| mdl_articles_featuredD | Articles: featured. |
| mdl_groups_getC | Groups: get. |
| mdl_calendar_quarterC | Calendar: quarter. quarter is the upstream quarter identifier; use documented API values. |
| mdl_leaderboard_getD | Leaderboard: get. |
| mdl_awards_listC | Awards: list. |
| mdl_account_get_profileB | Account: get profile. Requires host-configured MyDramaList authentication. |
| mdl_account_get_privacyA | Account: get privacy. |
| mdl_account_get_activitiesB | Account: get activities. Requires host-configured MyDramaList authentication. |
| mdl_titles_get_progressC | Titles: get progress. Requires host-configured MyDramaList authentication. |
| mdl_users_get_user_watchlistC | Users: get user watchlist. Requires host-configured MyDramaList authentication. params is a JSON object of upstream parameters. |
| mdl_watchlist_fetchC | Watchlist: fetch. Fetch a status list, e.g. |
| mdl_watchlist_fetch_pageC | Watchlist: fetch page. Requires host-configured MyDramaList authentication. |
| mdl_watchlist_get_last_activitiesA | Watchlist: get last activities. |
| mdl_reviews_check_already_wroteC | Reviews: check already wrote. Requires host-configured MyDramaList authentication. |
| mdl_custom_lists_friends_votedC | Custom Lists: friends voted. Requires host-configured MyDramaList authentication. |
| mdl_custom_lists_i_votedC | Custom Lists: i voted. Requires host-configured MyDramaList authentication. |
| mdl_notifications_fetchC | Notifications: fetch. Requires host-configured MyDramaList authentication. |
| mdl_calendar_episodesC | Calendar: episodes. Requires host-configured MyDramaList authentication. |
| mdl_friends_requestsC | Friends: requests. Requires host-configured MyDramaList authentication. |
| mdl_account_update_profile_infoA | Account: update profile info. Only non-null fields supplied are sent; omitted fields are preserved. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_account_update_privacyB | Account: update privacy. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_account_map_profile_pictureA | Account: map profile picture. Use the filename returned by mdl_upload_image. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_users_like_personB | Users: like person. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_watchlist_addA | Watchlist: add. Add or update a watchlist entry, including episode progress, rating, dates and notes. item is the upstream sync JSON object. The package does not define a typed request model or numeric status mapping. Use confirmed API fields; do not invent a status code. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_watchlist_removeA | Watchlist: remove. |
| mdl_reviews_submitA | Reviews: submit. parent_id identifies the title. Publishes a review on MyDramaList. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_reviews_editA | Reviews: edit. fields is an upstream patch object; rating edits use a nested ratings object. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. fields is a JSON object of upstream parameters. |
| mdl_reviews_deleteB | Reviews: delete. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_reviews_voteB | Reviews: vote. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_comments_postA | Comments: post. Publishes a comment. ptype is the upstream content type (clist for lists). Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_comments_updateC | Comments: update. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_comments_deleteA | Comments: delete. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_comments_likeB | Comments: like. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_createC | Custom Lists: create. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_editA | Custom Lists: edit. fields is an upstream patch object, e.g. name and description. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. fields is a JSON object of upstream parameters. |
| mdl_custom_lists_deleteB | Custom Lists: delete. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_set_votesB | Custom Lists: set votes. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_add_itemA | Custom Lists: add item. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_remove_itemA | Custom Lists: remove item. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_sort_itemB | Custom Lists: sort item. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_likeB | Custom Lists: like. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_post_commentB | Custom Lists: post comment. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_custom_lists_update_commentB | Custom Lists: update comment. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_feeds_createB | Feeds: create. Publishes an activity post; privacy defaults to public. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_feeds_editB | Feeds: edit. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_feeds_deleteA | Feeds: delete. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_feeds_hideB | Feeds: hide. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_feeds_likeA | Feeds: like. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_articles_likeB | Articles: like. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_notifications_clearC | Notifications: clear. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_notifications_clear_allA | Notifications: clear all. Requires host-configured MyDramaList authentication. Changes data on MyDramaList; use only for an explicit user request. |
| mdl_server_statusA | Show authentication presence and server mode. Does not call MyDramaList. |
| mdl_capabilitiesA | List available operations, authentication requirements, and package limitations. |
| mdl_upload_imageA | Upload a JPEG/PNG/WebP as base64 (max 5 MiB), returning its upstream filename. target=profile uploads only; call mdl_account_map_profile_picture to apply it. target=feed uploads only; use returned metadata in a requested feed post. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 89 tools
Most tools have distinct resource+action semantics (e.g. mdl_reviews_submit vs mdl_reviews_edit vs mdl_reviews_delete), and namespaces like titles_/users_/custom_lists_ keep domains separated. A few boundaries are fuzzy, notably mdl_comments_like vs mdl_feeds_like vs mdl_articles_like (like operations across content types) and the get/fetch pairs (mdl_feeds_get vs mdl_feeds_fetch, mdl_watchlist_fetch vs mdl_watchlist_fetch_page), but descriptions mostly disambiguate.
Every tool follows the same namespace_verb_noun convention (mdl_<domain>_<action>), with consistent snake_case and a predictable verb vocabulary (get, list, fetch, create, edit, delete, like, add, remove). No camelCase mixing or irregular verb styles across all 89 tools.
89 tools is far beyond the 15-25 range that keeps a surface navigable for an agent. While the server covers a rich multi-domain API (titles, users, reviews, comments, lists, feeds, notifications, account), the sheer count creates selection and context-loading overhead that undermines usability.
Coverage is exceptionally thorough: full CRUD for reviews, comments, custom lists, feeds, and watchlist; read paths for titles, users, explore, articles, groups, awards, calendar, leaderboard, plus account/profile management and auth-aware operations. Almost no obvious domain gap remains, with server_status and capabilities providing introspection.