sansfiction-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SANSFICTION_TOKEN | No | Bearer token (sf_mcp_...) for personal-library tools. Public catalog tools work without it. Generate at https://sansfiction.com/docs/agents | |
| SANSFICTION_BASE_URL | No | Override the API base URL. Defaults to https://sansfiction.com |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_booksA | Search the public SansFiction catalog (no auth). Returns JSON { query, searchType, count, books[] }; each book includes |
| get_bookA | Get full public metadata for a single book by catalog UUID or slug. Returns { book } (title, authors, description, editions, series, identifiers). Returns a 404 error if not found. When to use: you already have a book_id or slug and need details/editions. If you only have a title or author, call search_books first to obtain the id. |
| get_seriesA | Get a book series and its ordered volumes by series UUID. Returns { series } including the volume list with positions. Returns a 404 error if the series is unknown. When to use: to enumerate every volume in a series and their reading order. Obtain series_id from a book's |
| list_public_collectionsA | List public, curated collections (no auth). Returns { count, collections[] } with id, name, and description. Page through results with limit + offset. When to use: browse editorially curated public collections available to everyone. For the signed-in user's OWN collections, use list_my_collections instead. |
| list_my_booksA | List books on the authenticated user's shelves, most-recently-updated first. Returns { count, books[] } where each entry has status, current_page, percent, rating, and book metadata. When to use: browse or enumerate the user's library, optionally filtered by shelf. To find a specific title within the library use search_my_library; for the public catalog use search_books. Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents). |
| add_book_to_libraryA | Add a catalog book to the user's library. Idempotent upsert — calling again with a different status moves the book to that shelf rather than erroring. When to use: put a catalog book (book_id from search_books) onto a shelf for the first time. To edit an existing entry's status/rating/review/progress use update_library_book; to take a book off entirely use remove_book_from_library. Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents). |
| update_library_bookA | Update one or more fields of a book already in the library. Supply any subset — only the fields you pass change. Special behavior: |
| remove_book_from_libraryA | Remove a book from the user's library entirely (all shelves). Idempotent — removing a book that is not present is a no-op. When to use: permanently take a book out of the library. If you only want to change its shelf (e.g. mark 'dnf' or 'read'), use update_library_book instead — do not remove and re-add. Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents). |
| search_my_libraryA | Full-text search restricted to the user's own library (matches book title and subtitle). Returns { count, books[] } with status and rating. When to use: find a specific book the user already owns. For catalog-wide discovery use search_books; to list everything on the shelves (optionally by status) use list_my_books. Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents). |
| list_my_collectionsA | List the user's own collections. Returns { count, collections[] } (id, name, description, visibility). When to use: the signed-in user's OWN collections. For editorially curated public collections available to everyone, use list_public_collections instead. Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents). |
| get_reading_statsA | Reading statistics for a time range, matching the app's Stats page. Choose the range in ONE of two ways: (a) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fgbytes/sansfiction-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server