talebook-mcp

HorkyChen/talebook-mcp

3.2

If you are the rightful owner of talebook-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Talebook MCP Server is a simple Model Context Protocol (MCP) server built with FastAPI, designed to provide book-related tools.

Tools
  1. get_books_count

    Get the current count of books in the collection

Talebook MCP Server

A simple Model Context Protocol (MCP) server built with FastAPI that provides book-related tools.

Features

  • get_books_count: Returns the current count of books in the collection (defaults to 1)
  • Built with FastAPI for both MCP and HTTP interfaces
  • Supports both stdio transport (for MCP clients) and HTTP endpoints

Installation

  1. Install dependencies:
pip install -r requirements.txt

Usage

Running as MCP Server (stdio transport)

python src/server.py

Running as FastAPI HTTP Server

python src/server.py --fastapi

The HTTP server will be available at http://localhost:8000

Available Endpoints (HTTP mode)

  • GET / - Health check
  • GET /tools - List available tools
  • POST /tools/get_books_count - Get books count

Available Tools (MCP mode)

  • get_books_count: Get the current count of books in the collection
    • Input: No parameters required
    • Output: Text content with the books count

MCP Configuration

To use this server with an MCP client, add the following to your MCP configuration:

{
  "mcpServers": {
    "talebook-mcp": {
      "command": "python",
      "args": ["/path/to/talebook-mcp/src/server.py"],
      "env": {}
    }
  }
}

Development

The server is structured to be easily extensible. To add new tools:

  1. Add the tool definition to the list_tools() function
  2. Add the tool handler to the call_tool() function
  3. Implement the tool function
  4. Optionally add HTTP endpoints for the new tool

Example Tool Usage

When using an MCP client, you can call the get_books_count tool:

{
  "method": "tools/call",
  "params": {
    "name": "get_books_count",
    "arguments": {}
  }
}

The server will respond with:

{
  "content": [
    {
      "type": "text",
      "text": "Current books count: 1"
    }
  ]
}