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).

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.

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/ps-copilot-sandbox/copilot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server