SPINES MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SPINES MCP Server Search for books by Ursula K. Le Guin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SPINES MCP Server
Access SPINES book collections, reading lists, and bookshelf data from AI assistants via the Model Context Protocol.
Features
Recognize books from photos of a bookshelf; several photos of one shelf become one collection
Search books by title, author, or ISBN
Browse and filter book collections
Manage reading lists (add and remove books)
Explore personas, categories, and books commonly shelved together
AI prompts for shelf analysis and book recommendations
Related MCP server: hardcover-mcp
Quick Start
Prerequisites
Node.js 18+
A SPINES API key (get one here)
Installation
npm install -g @spines/mcp-serverConfiguration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"spines": {
"command": "npx",
"args": ["-y", "@spines/mcp-server"],
"env": {
"SPINES_API_KEY": "gtspn_live_your_key_here"
}
}
}
}VS Code / Cursor
Add to your MCP settings:
{
"spines": {
"command": "npx",
"args": ["-y", "@spines/mcp-server"],
"env": {
"SPINES_API_KEY": "gtspn_live_your_key_here"
}
}
}Environment Variables
Variable | Required | Default | Description |
| Yes | - | Your API key |
| No |
| API base URL |
| No |
| Verbose logging to stderr |
| No | - | Bring your own LLM key for |
| No | - | Your provider API key. With both set, recognition uses your key and no SPINES credits |
Tools
Read Tools
Tool | Description |
| Search for books by title, author, or ISBN |
| Get full details for a specific book |
| Get a book collection with all its books |
| List your collections with optional filters |
| List all approved book categories |
| Get details about a persona |
| Find books commonly shelved together with a book (Shelfology) |
| Check your daily recognition credit balance |
Write Tools
Tool | Description |
| Add a book to a reading list |
| Remove a book from a reading list |
| Recognize books from one or more bookshelf photos and save them as a collection (uses credits) |
Tool Details
search_books
query: string - Search query (title, author, or ISBN)
limit?: number - Max results (1-50, default 10)get_book_details
book_id: string - The book's unique IDget_collection
collection_id: string - The collection's unique IDlist_collections
limit?: number - Max results (1-50, default 20)
cursor?: string - Pagination cursor
persona_id?: string - Filter by persona
category_id?: string - Filter by categorylist_categories
(no arguments)get_persona
persona_id: string - The persona's unique IDget_book_pairings
book_id: string - The book to find pairings for
limit?: number - Max results (1-50, default 10)check_credits
(no arguments)add_to_reading_list
book_id: string - The book to add
list_name?: string - List name (default: "want_to_read")remove_from_reading_list
entry_id: string - The reading list entry ID to removerecognize_bookshelf
image_url?: string - URL of a single photo
image_base64?: string - Base64-encoded single photo
images?: array - Several photos of one bookshelf, saved as ONE collection;
each entry is { image_url } or { image_base64 }
cover_index?: number - Zero-based index into images of the cover photo (default 0)
title?: string - Title for the new collectionSend either image_url / image_base64 or images, not both. Example:
{
"images": [
{ "image_url": "https://example.com/shelf-left.jpg" },
{ "image_url": "https://example.com/shelf-right.jpg" }
],
"cover_index": 1,
"title": "Living room"
}Photo limit: 4 per request with a regular key. A book that appears on two photos is kept once.
Credits: each photo uses one credit; the request needs at least one to start. With
SPINES_LLM_PROVIDER/SPINES_LLM_API_KEYset, no credits are used.Prefer URLs. Base64 photos over 4 MB in total do not fit in one request.
Duplicates: a photo already in SPINES fails the whole request (
RECOGNIZE_IMAGE_DUPLICATE, with the index of that photo).Timing: the tool waits while the server reads every photo, then polls until book matching finishes (up to 2 minutes). It returns the finished collection, or the job's current status (with its
job_id) if matching is still running or its status could not be read. If the first step times out (5 minutes), the collection may still be created: checklist_collectionsbefore trying again, since a retry uses credits again.
Resources
URI | Description |
| A book collection with metadata |
| Full book details |
| Persona profile and collections |
| User's reading lists |
Prompts
Prompt | Description |
| Analyze a collection for themes and reading patterns |
| Get recommendations based on your library |
| Compare two collections for similarities |
Troubleshooting
Problem | Solution |
"SPINES_API_KEY is required" | Set the env var in your MCP client config |
401 errors | Check your API key is valid and not expired |
403 errors | Your key may lack required scopes |
429 errors | Rate limited — wait and retry |
| The server may still be working; check |
Tools not appearing | Restart your MCP client |
Development
git clone https://github.com/GetSpines/mcp-server
cd mcp-server
npm install
npm run build
npm testLicense
MIT
Available Tools
11 toolsadd_to_reading_listCIdempotent
Add a book to a reading list
Inputs: book_id (required), list_name.
check_creditsARead-onlyIdempotent
Check your daily recognition credit balance
Inputs: no named parameters.
get_book_detailsCRead-onlyIdempotent
Get full details for a specific book
Inputs: book_id (required).
get_book_pairingsARead-onlyIdempotent
Find books commonly co-shelved with a specific book (Shelfology)
Inputs: book_id (required), limit.
get_collectionARead-onlyIdempotent
Get a book collection with all its books
Inputs: collection_id (required).
get_personaCRead-onlyIdempotent
Get details about a persona (bookshelf owner)
Inputs: persona_id (required).
list_categoriesBRead-onlyIdempotent
List all approved book categories
Inputs: no named parameters.
list_collectionsCRead-onlyIdempotent
List the user's collections with optional filters
Inputs: limit, cursor, persona_id, category_id.
recognize_bookshelfA
Recognize books from one or more photos of a bookshelf; several photos become one collection (uses daily credits or BYOK)
Inputs: title, images, image_url, cover_index, +1 more.
remove_from_reading_listCDestructiveIdempotent
Remove a book from a reading list
Inputs: entry_id (required).
search_booksBRead-onlyIdempotent
Search for books by title, author, or ISBN
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct resource or action: searching books, retrieving details, recognizing photos, managing collections, reading lists, personas, categories, and credits. No two tools have overlapping purposes that could cause misselection.
All tool names follow a consistent snake_case verb_noun pattern: get_book_pairings, recognize_bookshelf, search_books, get_book_details, get_collection, list_collections, list_categories, get_persona, add_to_reading_list, remove_from_reading_list, check_credits.
11 tools is well within the ideal range of 3–15 and each tool earns its place for the book discovery and collection management domain. No tool feels redundant or missing from a count perspective.
Notable gaps exist: there is no way to view a reading list (only add/remove), no update or delete operations for collections, and no list of personas. These missing lifecycle operations could hinder agents from verifying state or managing resources fully.
Maintenance
Related MCP Connectors
Academic literature search, retrieval, and private library management on top of OpenAlex.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Search books and authors, fetch editions, browse subjects, and resolve cover images.
Agentic AI book creator: plan, write, illustrate, narrate, and publish books from any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to help users manage their reading experience by searching books, tracking reading progress, managing bookmarks, and generating personalized recommendations and summaries.-
- AlicenseAqualityBmaintenanceConnects AI assistants to the Hardcover book library, enabling natural language book searches, reading status updates, list management, and library exploration.28377 PyPI10MIT
- AlicenseNot gradedqualityBmaintenanceBridges your Calibre e-book library with AI assistants via the Model Context Protocol, enabling natural-language library management, semantic search, RAG, and agentic workflows.51MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI assistants with direct access to your ebook library, enabling listing books, reading chapters, and searching across books via the Model Context Protocol.MIT