MCP Hub
Back to servers

MCP Middleware Server

A FastMCP server providing session-based memory and dynamic authentication using LangChain and Google Gemini. It enables persistent conversation history tracking through a session-ID system over HTTP transport.

Updated
Jan 24, 2026

MCP Middleware Server & Client

This project implements a FastMCP server with session-based memory using LangChain and Google Gemini, along with a client that demonstrates multi-server session compatibility.

Features

  • Session-based Memory: Each client session maintains its own conversation history.
  • Dynamic Authentication: API keys are passed via headers and used to initialize session-specific LLMs.
  • Streamable HTTP: Uses HTTP transport for robust session management.

Setup Instructions

1. Prerequisites

  • Python 3.10+
  • A Google Gemini API Key

2. Installation

Clone the repository and install the dependencies:

pip install -r requirements.txt

3. Environment Configuration

Create a .env file based on the .env.example:

cp .env.example .env

Edit .env and add your GOOGLE_API_KEY.

Usage

Running the Server

Start the MCP server using the following command:

python server.py

By default, the server will run on http://127.0.0.1:8000/mcp.

Running the Client

In a new terminal, run the client:

python client.py

Session Compatibility Example

The server maintains state across multiple requests within the same session. You can verify this by following these steps in the client:

  1. Inform the AI of your name:

    • Input: HI my name is Tapan
    • AI Response: Hello Tapan! Nice to meet you. How can I help you today?
  2. Verify the memory:

    • Input: what is my name?
    • AI Response: Your name is Tapan.

This works because the session_id is tracked in the _session_histories dictionary on the server, ensuring that each user has a personalized and continuous conversation.

Files

  • server.py: The FastMCP server implementation with Auth middleware and session handling.
  • client.py: A Python client using MultiServerMCPClient to interact with the server.
  • .env.example: Template for environment variables.
  • requirements.txt: Project dependencies.

Reviews

No reviews yet

Sign in to write a review