Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOODREADS_JWTNoManual auth: your Goodreads JWT token
GOODREADS_COOKIENoManual auth: your Goodreads browser session cookie, e.g. '_session_id2=...; other_cookie=...'
GOODREADS_BROWSERNoForce a browser for automatic macOS browser auth ('brave' or 'chrome'). Automatic auth tries Brave first, then Chrome.
GOODREADS_NO_BROWSER_AUTHNoSet to 1 to disable automatic browser auth

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
author_getB

Fetch a public Goodreads author page. Required: author_id.

book_getB

Fetch a public Goodreads book page. Required: book_id.

contextA

Get API domain context: resource taxonomy, auth requirements, query tips, and unique capabilities. Call this first.

enrichC

Resolve a title or Goodreads book ID to metadata suitable for syncing into Notion.

goodreads-search_booksC

Search public Goodreads book pages. Required: q.

importB

Import data from a JSONL file by issuing POST requests for each record. Each line must be a valid JSON object. Failed records are logged to stderr but do not stop the import.

review_get-shelfB

Fetch a public Goodreads user shelf page. Required: user_id. Optional: shelf.

shelf_auth_checkC

Validate Goodreads write authentication.

shelf_rateC

Set a Goodreads rating for a book.

shelf_setC

Mark a book as to-read, currently-reading, or read.

shelf_unrateB

Remove your Goodreads rating for a book.

shelf_unshelveC

Remove a book from your Goodreads shelves.

sqlA

Run read-only SQL against local database. Use for ad-hoc analysis, aggregations, and joins across synced resources. Requires sync first.

syncA

Sync data from the API into a local SQLite database. Supports resumable incremental sync (only fetches new data since last sync) and full resync. Once synced, use the 'search' command for instant full-text search.

Exit codes & warnings: Resources the API denies access to (HTTP 403, or HTTP 400 with an access-policy body) are reported as warnings rather than failing the run. In --json mode each is emitted as a {"event":"sync_warning",...} line carrying status, reason, and message fields, and a final {"event":"sync_summary",...} aggregates the run.

Exit 0 when at least one resource synced and no resource flagged in the spec as critical (x-critical: true) failed; non-critical failures emit {"event":"sync_warning","reason":"exit_policy_default_changed", ...} so callers can detect that a partial failure was tolerated. Pass --strict to exit non-zero on any per-resource failure. Exit is always non-zero when every selected resource failed, regardless of --strict.

workflow_archiveA

Archive fetches all syncable resources from the API and stores them in a local SQLite database. Supports incremental sync (only new data since last run) and full resync. After archiving, use 'search' for instant full-text search.

workflow_statusB

Show local archive status and sync state for all resources

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 16 tools

Disambiguation2/5

Most tools target distinct Goodreads resources or actions, but sync and workflow_archive are near-duplicates: both fetch API resources into a local SQLite database with incremental/full resync. enrich also overlaps somewhat with book_get, so an agent cannot reliably distinguish the intended choice from descriptions alone.

Naming Consistency2/5

Tool names mix noun_verb (author_get, book_get, shelf_rate), verb_noun (workflow_archive), single-word commands (context, sync, sql), a hyphenated namespace (goodreads-search_books), and an internal hyphen (review_get-shelf). They are readable but do not follow a predictable convention.

Tool Count3/5

At 16 tools, the set is just above the ideal 3–15 range and feels slightly heavy, especially with the duplicate sync/workflow_archive pair and a separate workflow_status tool. The count is not extreme, but the redundancy inflates the surface.

Completeness3/5

Core read, search, shelf-write, and local sync/SQL operations are present, but there are notable gaps: no standalone review retrieval/write, no author search, and no current-user/profile tool. The sync and workflow_archive descriptions also reference a 'search' command that is not exposed as a tool, leaving a dead end.

Maintenance

ActivityMaintained
ResponsivenessNo issues