MCP Server

Scrykeeper Royal Road Intelligence

com.scrykeeper/royal-road-intelligence
Data & Analytics Media & Content Public & reachable MCP 2025-11-25

What this MCP does

Provides Royal Road story, author, audience, market, and commercial intelligence.

get_author
Get Author Intelligence
Get a resolved Scrykeeper author identity, known works and deduplicated observed audience footprint. Known works are not guaranteed to be a complete bibliography.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'get_authorArguments', 'required': ['identity_id'], 'properties': {'identity_id': {'type': 'integer', 'title': 'Identity Id'}}}
Output schema
{'type': 'object', 'title': 'get_authorDictOutput', 'additionalProperties': True}
get_data_context
Get Scrykeeper Data Context
Return Scrykeeper's current data coverage, source-specific freshness, methodology and limitations. Use this when interpreting reader, author or commercial metrics.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'get_data_contextArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_data_contextDictOutput', 'additionalProperties': True}
get_story
Get Story Intelligence
Get Scrykeeper intelligence for one Royal Road fiction ID. Observed readers are sampled graph observations and are not total readership. Anonymous demo access is available; higher limits are available at https://scrykeeper.com/api/access.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'get_storyArguments', 'required': ['rr_fiction_id'], 'properties': {'rr_fiction_id': {'type': 'integer', 'title': 'Rr Fiction Id'}}}
Output schema
{'type': 'object', 'title': 'get_storyDictOutput', 'additionalProperties': True}
search_market
Search Market Intelligence
Search Scrykeeper's Royal Road market dataset by genre, lifecycle, followers, sampled observed readers, update recency and known commercial mapping. commercial='none' means no accepted mapping in Scrykeeper, not unpublished.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'search_marketArguments', 'properties': {'q': {'type': 'string', 'title': 'Q', 'default': ''}, 'sort': {'enum': ['audience', 'followers', 'recent'], 'type': 'string', 'title': 'Sort', 'default': 'audience'}, 'genre': {'enum': ['', 'litrpg', 'progression', 'cultivation', 'xianxia', 'dungeon_core', 'time_loop', 'cozy', 'fanfiction'], 'type': 'string', 'title': 'Genre', 'default': ''}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 20}, 'cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cursor', 'default': None}, 'lifecycle': {'enum': ['', 'ongoing', 'completed', 'stubbed', 'hiatus', 'inactive', 'dropped', 'unknown'], 'type': 'string', 'title': 'Lifecycle', 'default': ''}, 'commercial': {'enum': ['all', 'known', 'none'], 'type': 'string', 'title': 'Commercial', 'default': 'all'}, 'readers_max': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Readers Max', 'default': None}, 'readers_min': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Readers Min', 'default': None}, 'updated_days': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Updated Days', 'default': None}, 'followers_max': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Followers Max', 'default': None}, 'followers_min': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Followers Min', 'default': None}}}
Output schema
{'type': 'object', 'title': 'search_marketDictOutput', 'additionalProperties': True}
Added
get_data_context
Sept. 23, 2026, 2:40 a.m.
Added
search_market
Sept. 23, 2026, 2:40 a.m.
Added
get_author
Sept. 23, 2026, 2:40 a.m.
Added
get_story
Sept. 23, 2026, 2:40 a.m.