Books API MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Books API MCP Serverlist all books"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
my-mcp-server — 3-layer HTTP + MCP demo
A small, all-Python demo of three layers wired together over HTTP:
VS Code (native MCP client)
│ HTTP → http://127.0.0.1:9100/mcp
▼
MCP server (mcp_server/server.py, Streamable HTTP transport)
│ HTTP → http://127.0.0.1:8000
▼
HTTP API server (http_server/app.py, Flask, GET endpoints)
│
▼
in-memory "books" dataLayer 1 — HTTP API (http_server/app.py): a plain Flask REST-ish API with GET endpoints. Knows nothing about MCP.
Layer 2 — MCP server (mcp_server/server.py): exposes MCP tools over the Streamable HTTP transport. Each tool calls a layer-1 endpoint with
httpx.Layer 3 — VS Code: uses its built-in MCP client via .vscode/mcp.json to connect to layer 2 over HTTP. No custom extension or Node.js needed.
Setup
Note: a Windows
.venv/is committed to this repo for convenience. It contains hardcoded paths toC:\Users\400861\...and Windows-only binaries, so it will not work on macOS/Linux or other machines. On any other setup, delete.venv/and rebuild it with the steps below.
Create a project-local virtual environment and install the pinned deps.
Each machine should build its own venv from requirements.txt.
Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txtmacOS / Linux (bash/zsh):
python3 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -r requirements.txtThe direct-path form above works without "activating" the venv. If you prefer to activate it:
.\.venv\Scripts\Activate.ps1(Windows) orsource .venv/bin/activate(macOS/Linux), after which plainpythonuses the venv.
Related MCP server: Flask MCP Server Implementation Guide
Run (two terminals)
Use the venv's Python. Windows examples use .\.venv\Scripts\python.exe;
on macOS/Linux swap in ./.venv/bin/python.
Terminal 1 — the HTTP API (port 8000):
.\.venv\Scripts\python.exe http_server/app.pyTerminal 2 — the MCP server (port 9100):
.\.venv\Scripts\python.exe mcp_server/server.pyPort 9100 is used because 9000 is occupied by Zscaler (ZSATunnel) on this machine. Override any port with env vars:
HTTP_SERVER_PORT,MCP_SERVER_PORT,HTTP_API_BASE_URL.
Verify the chain
With both servers running:
.\.venv\Scripts\python.exe mcp_server/test_client.pyExpected: it lists the tools (list_books, get_book, list_genres,
api_health) and prints results proxied from the Flask API.
Use from VS Code
Open this folder in VS Code (MCP support requires a recent VS Code build).
With both servers running, VS Code reads .vscode/mcp.json and connects to
http://127.0.0.1:9100/mcp.Start the server from the
mcp.jsongutter "Start" action (or the MCP: List Servers command), then use the tools from Copilot Chat's Agent mode.
HTTP API endpoints (layer 1)
Method | Path | Description |
GET |
| Liveness probe |
GET |
| List books; filters: |
GET |
| Single book by id |
GET |
| Distinct genres |
MCP tools (layer 2)
Tool | Calls |
|
|
|
|
|
|
|
|
This server cannot be installed
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
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/400861/my-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server