MCP Server

siftivo

com.siftivo/siftivo

What this MCP does

Searches and recommends books, authors, and series while allowing signed-in readers to manage shelves, ratings, and reading progress.

add_to_library
Add a book to my library
Put a book on one of the signed-in reader's shelves, move it to a different shelf, rate it, or record how far through it they are. Pass a workId from search_books, get_book, or recommend_from_titles. "Finished it, four stars" is one call with readingStatus FINISHED and rating 4.
Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workId'], 'properties': {'notes': {'type': 'string', 'maxLength': 2000, 'description': "The reader's own note on the book, private to them"}, 'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Whole stars, 1 to 5'}, 'workId': {'type': 'string', 'minLength': 1}, 'progress': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Percent read, 0 to 100'}, 'readingStatus': {'enum': ['NOT_STARTED', 'READING', 'FINISHED', 'DNF'], 'type': 'string', 'default': 'NOT_STARTED'}}, 'additionalProperties': False}
get_author
Get an author
An author, their biography, and the works Siftivo holds for them. Accepts an author id or slug.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
get_book
Get a book
Full detail for one book: synopsis, authors, series position, genres, and its page on siftivo.com. Accepts a work id, an edition id, or a slug.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'A Siftivo work id, edition id, or URL slug'}}, 'additionalProperties': False}
get_my_book
Get one book from my library
Whether the signed-in reader has this book on a shelf, and if so which shelf, their rating and how far through they are. Answers "have I read this?" without pulling the whole library.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workId'], 'properties': {'workId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
get_my_library
Get my library
The signed-in reader's own Siftivo library: what they want to read, are reading, finished, or set down, with their ratings.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'enum': ['NOT_STARTED', 'READING', 'FINISHED', 'DNF'], 'type': 'string', 'description': 'Filter to one shelf. Omit for the whole library.'}}, 'additionalProperties': False}
get_reading_index
Get the Siftivo Reading Index
The weekly Siftivo Reading Index: the fiction and nonfiction books moving most in cultural circulation this week, ranked.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'week': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Edition week, YYYY-MM-DD. Omit for the current edition.'}}, 'additionalProperties': False}
get_series
Get a series
A series and its works in reading order. Accepts a series id or slug.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
recommend_from_description
Recommend books from a description
Describe what someone is in the mood for, in their own words, and get books that match. Use this for a theme, subject or feeling ("books about grief", "cozy mysteries set in Cornwall"). Use search_books instead when you already know the title or author.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['description'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'isFiction': {'type': 'boolean'}, 'description': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'What the reader is after, in plain language'}}, 'additionalProperties': False}
recommend_from_titles
Recommend books from titles
Give Siftivo a few books someone liked, by title, and get books like them. Titles are resolved against the catalog first; anything that does not resolve is reported back rather than guessed at.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['titles'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'titles': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 10, 'minItems': 1, 'description': 'Book titles, optionally "Title by Author"'}, 'isFiction': {'type': 'boolean'}}, 'additionalProperties': False}
remove_from_library
Remove a book from my library
Take a book off the signed-in reader's shelves entirely, discarding their rating and progress for it. To move it to a different shelf instead, call add_to_library with a new readingStatus.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workId'], 'properties': {'workId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
search_books
Search books
Keyword search over the Siftivo book catalog. Matches titles, authors, and descriptions. Returns works with the ids other Siftivo tools accept.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Words to search for'}, 'isFiction': {'type': 'boolean', 'description': 'Restrict to fiction (true) or nonfiction (false)'}}, 'additionalProperties': False}
what_to_read_next
What to read next
Given one book, what to read after it: the next books in its series, more by the same author, and books that read like it. This is the same set the book page on siftivo.com shows.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workId'], 'properties': {'workId': {'type': 'string', 'minLength': 1, 'description': 'A workId from search_books, get_book, or a URL slug'}}, 'additionalProperties': False}
Changed
remove_from_library
Sept. 23, 2026, 2:54 a.m.
Changed
get_my_book
Sept. 23, 2026, 2:54 a.m.
Changed
add_to_library
Sept. 23, 2026, 2:54 a.m.
Changed
get_my_library
Sept. 23, 2026, 2:54 a.m.
Changed
recommend_from_titles
Sept. 23, 2026, 2:54 a.m.
Changed
recommend_from_description
Sept. 23, 2026, 2:54 a.m.
Changed
get_reading_index
Sept. 23, 2026, 2:54 a.m.
Changed
get_series
Sept. 23, 2026, 2:54 a.m.
Changed
get_author
Sept. 23, 2026, 2:54 a.m.
Changed
what_to_read_next
Sept. 23, 2026, 2:54 a.m.
Changed
get_book
Sept. 23, 2026, 2:54 a.m.
Changed
search_books
Sept. 23, 2026, 2:54 a.m.
Changed
remove_from_library
Sept. 21, 2026, 3:01 a.m.
Changed
get_my_book
Sept. 21, 2026, 3:01 a.m.
Changed
add_to_library
Sept. 21, 2026, 3:01 a.m.
Changed
get_my_library
Sept. 21, 2026, 3:01 a.m.
Changed
recommend_from_titles
Sept. 21, 2026, 3:01 a.m.
Changed
recommend_from_description
Sept. 21, 2026, 3:01 a.m.
Changed
get_reading_index
Sept. 21, 2026, 3:01 a.m.
Changed
get_series
Sept. 21, 2026, 3:01 a.m.
Changed
get_author
Sept. 21, 2026, 3:01 a.m.
Changed
what_to_read_next
Sept. 21, 2026, 3:01 a.m.
Changed
get_book
Sept. 21, 2026, 3:01 a.m.
Changed
search_books
Sept. 21, 2026, 3:01 a.m.
Added
remove_from_library
Sept. 17, 2026, 12:37 p.m.
Added
get_my_book
Sept. 17, 2026, 12:37 p.m.
Added
add_to_library
Sept. 17, 2026, 12:37 p.m.
Added
get_my_library
Sept. 17, 2026, 12:37 p.m.
Added
recommend_from_titles
Sept. 17, 2026, 12:37 p.m.
Added
recommend_from_description
Sept. 17, 2026, 12:37 p.m.