MCP Books Service logo

MCP Books Service

by thappatan

This project demonstrates the implementation of the Model Context Protocol (MCP) in a blog application system. It provides a seamless integration between language models and structured data operations using a TypeScript-based MCP server, a mock book data service, and a Python-based MCP client.

View on GitHub

Last updated: N/A

MCP Blog Project

This project demonstrates the implementation of Model Context Protocol (MCP) in a blog application system. It consists of three main components that work together to provide a seamless integration between language models and structured data operations.

Project Structure

.
├── books-mcp-server/     # TypeScript MCP server implementation
│   ├── build/           # Compiled JavaScript files
│   ├── src/             # Source TypeScript files
│   └── package.json     # Server dependencies and scripts
├── books-mock-service/  # Mock service for book data
│   └── server.js        # Express.js mock server
└── mcp-client/         # Python MCP client implementation
    └── client.py       # Main client application

Components

1. Books MCP Server

A TypeScript-based MCP server that handles the communication protocol between the client and the mock service.

  • Built with TypeScript for type safety
  • Uses @modelcontextprotocol/sdk for MCP implementation
  • Runs on stdio transport layer

2. Books Mock Service

A simple Express.js server that simulates a book data service.

  • Provides mock endpoints for book-related operations
  • Built with Express.js
  • Lightweight and easy to extend

3. MCP Client

A Python-based client that integrates with language models using the MCP protocol.

  • Uses langchain_ollama for LLM integration
  • Implements MCPAgent for handling queries
  • Provides an interactive CLI interface

Setup Instructions

  1. Books MCP Server Setup
cd books-mcp-server
npm install
npm run build
  1. Books Mock Service Setup
cd books-mock-service
npm install
npm run dev
  1. MCP Client Setup
cd mcp-client
# Create and activate virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
# Install dependencies (requirements.txt needed)
pip install langchain-ollama mcp-use

Usage

  1. Start the mock service:
cd books-mock-service
npm run dev
  1. In a new terminal, run the client:
cd mcp-client
python client.py
  1. Enter your queries when prompted. Type 'exit' to quit.

Development

  • The MCP server is built using TypeScript. Make changes in the src directory and rebuild using npm run build
  • The mock service can be extended by adding new routes in server.js
  • The client can be customized by modifying the LLM configuration in client.py

Dependencies

  • Node.js and npm for the MCP server and mock service
  • Python 3.x for the client
  • Ollama for local LLM support
  • Various npm packages as specified in package.json files
  • Python packages: langchain-ollama, mcp-use