trackmcp
Back to directory
invariantlabs-ai

mcp-streamable-http

View on GitHub

Example implementation of MCP Streamable HTTP client/server in Python and TypeScript.

105 stars TypeScriptAI & Machine Learning Updated Oct 31, 2025
llmmcpmcp-clientmcp-servermcp-streamable-httpmodel-context-protocolmodel-context-protocol-clientmodel-context-protocol-servertool-use

Documentation

MCP Streamable HTTP – Python and Typescript Examples

This repository provides example implementations of MCP (Model Context Protocol) Streamable HTTP client and server in Python and Typescript, based on the specification: πŸ“„ MCP Streamable HTTP Spec.

You can set up a client + server stack entirely using either Python or TypeScript. This example also demonstrates cross-language compatibility, allowing a Python client to communicate with a TypeScript server, and vice-versa.

πŸš€ Getting Started

1. Clone the Repository

bash
git clone https://github.com/invariantlabs-ai/mcp-streamable-http.git
cd python-example

2. Python Example

1. Add Your Anthropic API Key

Update the `.env` file inside the `python-example/client` directory with the following content:

env
ANTHROPIC_API_KEY=your_api_key_here

2. Set Up the Server

bash
cd python-example/server
pip install .
python weather.py

By default, the server will start at `http://localhost:8123`.

If you'd like to specify a different port, use the `--port` flag:

bash
python weather.py --port=9000

3. Set Up the Client

bash
cd ../client
pip install .

4. Run the Client

bash
python client.py

This will start an interactive chat loop using the MCP Streamable HTTP protocol.

If you started the MCP server on a different port, specify it using the `--mcp-localhost-port` flag:

bash
python client.py --mcp-localhost-port=9000

3. Typescript Example

1. Add Your Anthropic API Key

Update the `.env` file inside the `typescript-example/client` directory with the following content:

env
ANTHROPIC_API_KEY=your_api_key_here

2. Set Up the Server

bash
cd typescript-example/server
npm install && npm run build
node build/index.js

By default, the server will start at `http://localhost:8123`.

If you'd like to specify a different port, use the `--port` flag:

bash
node build/index.js --port=9000

3. Set Up the Client

bash
cd ../client
npm install && npm run build

4. Run the Client

bash
node build/index.js

This will start an interactive chat loop using the MCP Streamable HTTP protocol.

If you started the MCP server on a different port, specify it using the `--mcp-localhost-port` flag:

bash
node build/index.js --mcp-localhost-port=9000

πŸ’¬ Example Queries

In the client chat interface, you can ask questions like:

  • β€œAre there any weather alerts in Sacramento?”
  • β€œWhat’s the weather like in New York City?”
  • β€œTell me the forecast for Boston tomorrow.”

The client will forward requests to the local MCP weather server and return the results using Anthropic’s Claude language model. The MCP transport layer used will be Streamable HTTP.

Frequently asked questions

What is mcp-streamable-http?

mcp-streamable-http is Example implementation of MCP Streamable HTTP client/server in Python and TypeScript.

How do I install mcp-streamable-http?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp-streamable-http open source?

Yes β€” it is hosted on GitHub at https://github.com/invariantlabs-ai/mcp-streamable-http and has 105 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP