containerized-mcp-streamable-http
Enables GitHub Copilot Desktop/CLI to discover and invoke the server's echo and server_info tools over Streamable HTTP.
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., "@containerized-mcp-streamable-httpUse the echo tool with 'hello MCP'."
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.
Containerized MCP Streamable HTTP
A minimal, standalone TypeScript MCP server that runs in a local container and connects to GitHub Copilot over stateless, JSON-only Streamable HTTP.
It exposes:
POST /mcp: MCP messages over Streamable HTTP with JSON responsesGET /health: process and container healthecho: returns validated text unchangedserver_info: returns the standalone server name, version, and transport
GET /mcp and every other non-POST method intentionally return
405 Method Not Allowed. The server has no stdio transport, legacy HTTP+SSE
transport, SSE response stream, or MCP sessions.
Architecture
flowchart LR
C["GitHub Copilot Desktop / CLI<br/>MCP client"]
L["127.0.0.1:3000<br/>host loopback only"]
D["Local Docker or Podman container<br/>0.0.0.0:3000 internally"]
H["GET /health"]
M["POST /mcp<br/>Streamable HTTP (JSON-only)<br/>stateless"]
T["echo<br/>server_info"]
C -->|"type: http"| L
L --> D
D --> H
D --> M
M --> TRelated MCP server: Homelab MCP starter
Versions
The direct dependencies are pinned to versions used by the source example on 2026-08-07:
Component | Version |
Node.js container image | 24.13.0 |
| 1.30.0 |
| 5.2.1 |
| 4.4.3 |
| 7.0.2 |
| 4.1.10 |
Primary references, accessed 2026-08-07:
Install and test
Requires Node.js 24 or later:
npm ci
npm run lint
npm test
npm run buildRun without a container:
npm startThe local process defaults to 127.0.0.1:3000. The container sets
HOST=0.0.0.0 internally so published ports work.
Build and run with Docker
docker build -t containerized-mcp-streamable-http .
docker run --rm -d --name containerized-mcp-streamable-http \
-p 127.0.0.1:3000:3000 containerized-mcp-streamable-http
curl http://127.0.0.1:3000/health
docker stop containerized-mcp-streamable-httpBuild and run with Podman
podman build -t containerized-mcp-streamable-http .
podman run --rm -d --name containerized-mcp-streamable-http \
-p 127.0.0.1:3000:3000 containerized-mcp-streamable-http
curl http://127.0.0.1:3000/health
podman stop containerized-mcp-streamable-httpPublishing to 127.0.0.1 is deliberate. This unauthenticated demonstration is
not exposed on other host interfaces.
Configure GitHub Copilot Desktop or CLI
The committed .github/mcp.json is the supported shared
repository configuration. Open this trusted repository in a local Copilot
Desktop/App project or start Copilot CLI from its root after the container is
running.
For portable user configuration, add the same server to
~/.copilot/mcp-config.json. If COPILOT_HOME is set, use
$COPILOT_HOME/mcp-config.json instead:
{
"mcpServers": {
"containerized-mcp-streamable-http": {
"type": "http",
"url": "http://127.0.0.1:3000/mcp",
"tools": ["echo", "server_info"]
}
}
}The type must be http, which selects Streamable HTTP. Do not configure
sse, stdio, or local.
The supported CLI command is:
copilot mcp add --transport http --tools echo,server_info \
containerized-mcp-streamable-http http://127.0.0.1:3000/mcpInside Copilot CLI, verify discovery:
/mcp show containerized-mcp-streamable-httpThen ask Copilot:
Use the containerized-mcp-streamable-http server_info tool and show its exact result.
Use the containerized-mcp-streamable-http echo tool with exactly "hello MCP".Expected results:
{"name":"containerized-mcp-streamable-http","version":"1.0.0","transport":"Streamable HTTP (JSON-only)"}hello MCPStart a new desktop project session after adding or changing MCP configuration; an already-running session may not reload its tool catalog. If MCP content is blocked by an administrator, the organization or enterprise MCP policy and allowlist must permit this server.
Evidence
The source implementation from which this standalone repository was extracted
was verified on 2026-08-07 with MCP SDK 1.30.0, six passing tests, Docker, and
a fresh GitHub Copilot Desktop-managed session. That Desktop session listed
and invoked both tools; echo("desktop-app-client-ok") returned
desktop-app-client-ok.
This standalone repository changes the package/server name and makes the
transport label explicit. On 2026-08-07, the extraction passed npm ci,
type-check lint, all six tests, and the TypeScript build. Its Docker image was
built and run on 127.0.0.1:3000; HTTP checks and the official MCP SDK client
confirmed initialization, tool listing, both tool calls, JSON responses, no
session ID, and 405 responses for unsupported methods. Podman was not installed
in the validation environment. No fresh Desktop test was performed against the
standalone repository, so the source Desktop result remains prior evidence.
See DEMO.md for a presenter-focused walkthrough.
Production boundary
This is a local demonstration, not a production deployment. A production or shared MCP server requires HTTPS, authentication and authorization (typically OAuth), deployment-specific Origin validation, managed secrets, network access restrictions, and a narrow tool allowlist. Enterprise GitHub Copilot MCP policy and registry/allowlist controls must also permit the server. Never put credentials in MCP configuration files.
Current upstream advisories
On 2026-08-07, a clean npm ci followed by npm audit reports five affected
package entries: three high and two moderate. They trace to two transitive
advisories in the MCP SDK 1.30.0 dependency graph:
High:
fast-urihost confusion, GHSA-7p8r-x3mc-p8w7 affects installedfast-uri3.1.4 throughajv.Moderate: Hono CORS middleware ReDoS, GHSA-8j4g-w8fx-2239 affects installed Hono 4.12.32.
No compatible patched release is currently available: 3.1.4 is the latest
fast-uri 3.x release accepted by the dependency graph, and 4.12.32 is the
latest Hono release while its advisory names 4.12.34 as patched. The only
automatic action offered by npm is a breaking downgrade of
@modelcontextprotocol/sdk from 1.30.0 to 1.25.3. This example retains the
required SDK version. Re-run npm audit and update patched transitive releases
before production use.
License
No license is included. The source repository does not contain an applicable license file for this extraction, so no license was invented. Copyright law applies by default.
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.
Related MCP Servers
- Alicense-qualityDmaintenanceA simple Model Context Protocol (MCP) server that allows GitHub Copilot to access custom tools, including an example tool to return the author name.MIT
- Flicense-qualityBmaintenanceA minimal MCP server for homelab environments, providing demo tools like ping and echo over Streamable HTTP for testing client-server integration.
- AlicenseAqualityFmaintenanceA minimal MCP server that exposes a single bash tool to execute commands inside a devcontainer, returning real output and exit codes.1MIT
- AlicenseAqualityAmaintenanceA minimal MCP server that provides health/status checks and multilingual greetings via the server_info and greet tools.2MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/xavierxmorris/containerized-mcp-streamable-http'
If you have feedback or need assistance with the MCP directory API, please join our Discord server