mcpField
S
spines

spines

Local
github.com/GetSpinesGames & Entertainment0Updated 2w ago

About spines

spines is an MCP server for accessing SPINES book collections from AI clients. It supports bookshelf photo recognition alongside collection and reading-list management, plus book pairings and prompts for analysis and recommendations.

Key features

  1. 01Search by title, author, or ISBN
  2. 02Recognize bookshelf photos into collections
  3. 03Browse and filter collections
  4. 04Add or remove reading-list books
  5. 05Explore book pairings and prompts

Use cases

  1. 01Turn bookshelf photos into digital collections
  2. 02Look up books and browse collections
  3. 03Maintain a to-read list and explore recommendations

MCP support

Provides MCP tools for book search, collection management, and bookshelf recognition, along with resources for collections, books, personas, and reading lists. It also offers prompts for shelf analysis and recommendations.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"superagentic-spines": {
"command": "npx",
"args": [
"-y",
"@spines/mcp-server"
],
"env": {
"SPINES_API_KEY": "<SPINES_API_KEY>"
}
}
}
}
Run commandnpx -y @spines/mcp-server
Environment variables to set
SPINES_API_KEYSecretYour SPINES API key

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@spines/mcp-server1.1.0

Tools

11

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitnumberNoMaximum results to return
querystringYesSearch query (title, author name, or ISBN)

Details

From the project README

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

Quick Start

Prerequisites
Installation
npm install -g @spines/mcp-server
Configuration
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
VariableRequiredDefaultDescription
SPINES_API_KEYYes-Your API key
SPINES_API_URLNohttps://getspines.com/api/v1API base URL
SPINES_DEBUGNofalseVerbose logging to stderr
SPINES_LLM_PROVIDERNo-Bring your own LLM key for recognize_bookshelf; only gemini is accepted. Set together with SPINES_LLM_API_KEY
SPINES_LLM_API_KEYNo-Your provider API key. With both set, recognition uses your key and no SPINES credits

Tools

Read Tools
ToolDescription
search_booksSearch for books by title, author, or ISBN
get_book_detailsGet full details for a specific book
get_collectionGet a book collection with all its books
list_collectionsList your collections with optional filters
list_categoriesList all approved book categories
get_personaGet details about a persona
get_book_pairingsFind books commonly shelved together with a book (Shelfology)
check_creditsCheck your daily recognition credit balance
Write Tools
ToolDescription
add_to_reading_listAdd a book to a reading list
remove_from_reading_listRemove a book from a reading list
recognize_bookshelfRecognize 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 ID
get_collection
collection_id: string  - The collection's unique ID
list_collections
limit?: number        - Max results (1-50, default 20)
cursor?: string       - Pagination cursor
persona_id?: string   - Filter by persona
category_id?: string  - Filter by category
list_categories
(no arguments)
get_persona
persona_id: string  - The persona's unique ID
get_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 remove
recognize_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 collection

Send 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_KEY set, 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: check list_collections before trying again, since a retry uses credits again.

Resources

URIDescription
spines://collection/{id}A book collection with metadata
spines://book/{id}Full book details
spines://persona/{id}Persona profile and collections
spines://reading-listsUser's reading lists

Prompts

PromptDescription
analyze_shelfAnalyze a collection for themes and reading patterns
recommend_booksGet recommendations based on your library
compare_collectionsCompare two collections for similarities

Troubleshooting

ProblemSolution
"SPINES_API_KEY is required"Set the env var in your MCP client config
401 errorsCheck your API key is valid and not expired
403 errorsYour key may lack required scopes
429 errorsRate limited — wait and retry
TIMEOUT from recognize_bookshelfThe server may still be working; check list_collections before resending
Tools not appearingRestart your MCP client

Development

git clone https://github.com/GetSpines/mcp-server
cd mcp-server
npm install
npm run build
npm test

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.