Book recommendations from your reading history, plus your shelves, ratings and series order.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Log reading on the signed-in reader's Siftivo shelves: add a book to want to read (NOT_STARTED), mark it READING, FINISHED or DNF, rate it, or record progress. Suits "add X to my list", "I just finished X, four stars" and "I'm halfway through X". "Finished it, four and a half stars" is one call with readingStatus FINISHED and rating 4.5. The workId comes from search_books. Each field given replaces what the reader had there before, so send a rating or a note only when they asked for that one to change. Omitting readingStatus leaves the book on the shelf it is already on. Needs a linked Siftivo account.
The reader's own note on the book, private to them
Stars, 0.5 to 5 in half-star steps
Percent read, 0 to 100
Who can see the book on their shelves: EVERYONE, or ONLY_ME to keep it off every surface other people reach. Omit to leave it as it is.
The shelf to put the book on. Omit to leave it where it is, or NOT_STARTED for a book the reader has not opened yet.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Log reading on the signed-in reader's Siftivo shelves: add a book to want to read (NOT_STARTED), mark it READING, FINISHED or DNF, rate it, or record progress. Suits "add X to my list", "I just finished X, four stars" and "I'm halfway through X". "Finished it, four and a half stars" is one call with readingStatus FINISHED and rating 4.5. The workId comes from search_books. Each field given replaces what the reader had there before, so send a rating or a note only when they asked for that one to change. Omitting readingStatus leaves the book on the shelf it is already on. Needs a linked Siftivo account.
| Argument | Type | Description |
|---|---|---|
| notes | string | The reader's own note on the book, private to them |
| rating | number | Stars, 0.5 to 5 in half-star steps |
| workId* | string | |
| progress | integer | Percent read, 0 to 100 |
| visibility | string | Who can see the book on their shelves: EVERYONE, or ONLY_ME to keep it off every surface other people reach. Omit to leave it as it is. |
| readingStatus | string | The shelf to put the book on. Omit to leave it where it is, or NOT_STARTED for a book the reader has not opened yet. |
{
"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": "number",
"maximum": 5,
"minimum": 0.5,
"multipleOf": 0.5,
"description": "Stars, 0.5 to 5 in half-star steps"
},
"workId": {
"type": "string",
"minLength": 1
},
"progress": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "Percent read, 0 to 100"
},
"visibility": {
"enum": [
"EVERYONE",
"ONLY_ME"
],
"type": "string",
"description": "Who can see the book on their shelves: EVERYONE, or ONLY_ME to keep it off every surface other people reach. Omit to leave it as it is."
},
"readingStatus": {
"enum": [
"NOT_STARTED",
"READING",
"FINISHED",
"DNF"
],
"type": "string",
"description": "The shelf to put the book on. Omit to leave it where it is, or NOT_STARTED for a book the reader has not opened yet."
}
},
"additionalProperties": false
}An author's biography and the books Siftivo holds for them, with years. Suits "what else has X written" and "tell me about X". Takes the author's name, an author id, or a siftivo.com slug.
| Argument | Type | Description |
|---|---|---|
| id* | string | An author name, an author id, or a siftivo.com slug |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "An author name, an author id, or a siftivo.com slug"
}
},
"additionalProperties": false
}What one book is about: synopsis, authors, year, series and position, genres, and its siftivo.com page. Suits "what is X about" and "is X part of a series". For a reader who has linked their Siftivo account it also suits "would I like X": when the book fits their taste, the result says why. Takes a workId from search_books, or a siftivo.com slug.
| Argument | Type | Description |
|---|---|---|
| id* | string | A Siftivo work id, edition id, or URL slug |
{
"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
}Which of up to 25 books the signed-in reader already has on a shelf, and for each one the shelf, their rating and their progress. Takes titles ("Title by Author" resolves best) or workIds. Suits "have I read X", "which of these have I read" and checking a list of book suggestions against what the reader has already read. Titles not in the catalog come back under unmatched. Needs a linked Siftivo account.
| Argument | Type | Description |
|---|---|---|
| books* | array | Work ids, siftivo.com slugs, or titles, optionally "Title by Author" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"books"
],
"properties": {
"books": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 25,
"minItems": 1,
"description": "Work ids, siftivo.com slugs, or titles, optionally \"Title by Author\""
}
},
"additionalProperties": false
}The signed-in reader's Siftivo shelves: what they want to read, are reading, finished or did not finish, with their ratings, progress, private notes and which books are set to only me. Suits "what am I reading", "what is on my to-read list" and "what have I finished". Filter to one shelf with status. Needs a linked Siftivo account.
| Argument | Type | Description |
|---|---|---|
| status | string | Filter to one shelf. Omit for the whole library. |
{
"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
}The signed-in reader's taste: the books, authors, series, genres and moods they love, what they avoid or quit, why each one counts, and how far from their usual taste they like to range. A recommendation for this reader rests on it, so it suits "what should I read next", "recommend me a book", "something I would like" and "what kind of books do I like" when no book or mood is named. The strongest 40 entries come back by default, and limit raises that. Needs a linked Siftivo account. It is the same profile the app's own recommendations use.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Most steering entries to return, strongest first |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 40,
"maximum": 500,
"minimum": 1,
"description": "Most steering entries to return, strongest first"
}
},
"additionalProperties": false
}The weekly Siftivo Reading Index: the fiction and nonfiction books moving most in cultural circulation this week, ranked, with weeks on the chart and new entries. Suits "what books are popular right now", "what is everyone reading" and "what are the big books this week".
| Argument | Type | Description |
|---|---|---|
| week | string | Edition week, YYYY-MM-DD. Omit for the current edition. |
{
"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
}A book series in reading order: every book with its position and publication year, and whether the series is complete. Suits "what order do the X books go in", "what is book 3 of X" and "is the next X book out". Takes the series name, or a series id from get_book or what_to_read_next.
| Argument | Type | Description |
|---|---|---|
| id* | string | A series id, a URL slug, or the series name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "A series id, a URL slug, or the series name"
}
},
"additionalProperties": false
}Book recommendations from a mood, theme or subject in the reader's own words: "cozy fantasy with found family", "a good book about grief", "something light for the beach". Matches on meaning rather than on a title or an author name. For a reader who has linked their Siftivo account, the results leave out books already in their library and books they hid, avoided or recently passed on, and a result that fits their taste says why.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| isFiction | boolean | |
| description* | string | What the reader is after, in plain language |
{
"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
}Book recommendations from books the reader already loved, named by title: "books like Project Hail Mary", "I loved Circe and Piranesi, what else would I like", a book club that enjoyed one pick. Titles are resolved against the catalog first, and any that do not resolve are reported back rather than guessed at. Other books by the same authors are left out. For a reader who has linked their Siftivo account, the results leave out books already in their library and books they hid, avoided or recently passed on, and a result that fits their taste says why.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| titles* | array | Book titles, optionally "Title by Author" |
| isFiction | boolean |
{
"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
}Take a book off the signed-in reader's shelves entirely, discarding its shelf, progress and notes. The reader's rating for the book stays. Suits "take X off my shelves" and "remove X from my list". Moving a book between shelves is add_to_library with a new readingStatus. Needs a linked Siftivo account.
| Argument | Type | Description |
|---|---|---|
| workId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"workId"
],
"properties": {
"workId": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Find a book in the Siftivo catalog by its title or author, or by words from what it is about, and get the workId the other Siftivo tools take. Suits a named book ("add Circe to my list", "what is Babel about", "is Demon Copperhead worth reading") and the book behind a half-remembered plot ("the novel about a man alone in an endless house of statues").
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | Words to search for |
| isFiction | boolean | Restrict to fiction (true) or nonfiction (false) |
{
"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 after one particular book: the next books in its series, more by the same author, and books that read like it, the same set its siftivo.com page shows. Suits "what should I read after X", "is there a sequel to X" and "more like X". For a reader who has linked their Siftivo account, each list leaves out books already in their library and books they hid, avoided or recently passed on, and a book that fits their taste says why. Takes a workId from search_books.
| Argument | Type | Description |
|---|---|---|
| workId* | string | A workId from search_books, get_book, or a URL slug |
{
"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
}