Skip to main content
Glama
ps-copilot-sandbox

Book Database MCP Server

Book Database MCP Server

NOTE

This is a small MCP (Model Context Protocol) demo server used during the GitHub Copilot Agents and MCP training sessions. It used by a demo explained in thecopilot-agent-and-mcp repository.

Functional

Book Database MCP Server exposes a simple set of tools that let an MCP-capable agent or client query a curated book database. Key features:

  • Retrieve a book's basic information (ISBN, title, author) by title.

  • Retrieve detailed book information (summary, date, author) by ISBN.

  • Batch queries: request multiple books by a list of titles or ISBNs.

  • Uses small JSON files as the backing dataset (easy to read and modify for demos).

Related MCP server: librarian

Technical

  • Runtime: Node.js (TypeScript source in src/).

  • Protocol: Model Context Protocol (MCP) using @modelcontextprotocol/sdk.

  • Transport: Standard I/O transport (StdioServerTransport) — this server communicates over stdio.

  • Validation: Input schemas are validated with zod for each tool.

  • Data: src/data/books.json (basic list) and src/data/books-details.json (summaries and dates).

  • Tools implemented in src/index.ts:

    • get-book-by-isbn — takes isbn: string (10 chars)

    • get-book-by-title — takes title: string

    • get-books-by-titles — takes titles: string[]

    • get-books-by-isbn-list — takes isbnList: string[] (10-char items)

Setup

Prerequisites: Node.js (18+ recommended) and npm.

  1. Clone the repository and enter the demo folder:

git clone <repo-url>
cd <repo-root>
  1. Install dependencies:

npm install
  1. Build the TypeScript sources:

npm run build

The build produces build/index.js and the build folder is listed in package.json files.

Run

Start the MCP server (it runs on stdio and writes a startup log to stderr):

node build/index.js

When running successfully you should see an informational message on stderr similar to:

Book database MCP Server running on stdio

You don't need to start the server manually during the demo as it will be started by the MCP server configuration in the webapp demo repository.

Usage examples

The server exposes the tool names listed above. Example calls (conceptual):

  • Get details by ISBN:

    • Tool: get-book-by-isbn

    • Input: { "isbn": "0451524935" } # returns details for "1984"

  • Get basic info by title:

    • Tool: get-book-by-title

    • Input: { "title": "The Hobbit" }

  • Batch lookup by titles:

    • Tool: get-books-by-titles

    • Input: { "titles": ["1984", "Brave New World"] }

Data

The datasets are small JSON files in src/data/ so you can easily tweak entries during a workshop:

  • src/data/books.json — array of simple book objects (ISBN, title, author)

  • src/data/books-details.json — object with a books array containing summaries and dates

Notes

  • This project is intentionally small and focused on demonstrating how to serve tools over MCP.

  • If you want to interactively test tools locally, write a tiny Node client that uses StdioClientTransport from @modelcontextprotocol/sdk and spawn this server as a child process so their stdio streams are connected.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Self-hosted MCP server for searching and discovering books using Anna's Archive and Goodreads datasets, enabling full-text search, ISBN/md5 lookup, similarity matching, and optional download URL retrieval.
    3 npm
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables browsing, searching, and quote verification of a local ebook library via MCP, providing deterministic RAG with no embeddings or network.
    6
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching the Kakao Daum Book Search API by title, author, publisher, or ISBN, retrieving detailed bibliographic and pricing metadata, and exporting results to xlsx, csv, json, or sqlite through MCP or CLI.
    4
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables bibliographic research on a private local Calibre library by providing read-only metadata search, book inspection, and optional RAG-based content retrieval through MCP.
    5
    -