Skip to content

Conversation

@robertlestak
Copy link

Description

Add streamable HTTP transport support to memory and sequential thinking MCP servers, enabling them to run over HTTP in addition to the default stdio transport.

Server Details

  • Servers: memory, sequential-thinking
  • Changes to: transport layer (added HTTP support alongside stdio)

Motivation and Context

This change enables these servers to be used in environments where HTTP transport is preferred or required over stdio, such as web-based clients or containerized deployments. The implementation maintains backward compatibility by defaulting to stdio transport.

How Has This Been Tested?

  • Tested stdio transport (default behavior) remains unchanged
  • Tested HTTP transport with MCP_TRANSPORT=http environment variable
  • Verified session management (initialization, message handling, cleanup)
  • Confirmed both POST/GET/DELETE request handling works correctly

Breaking Changes

No breaking changes. This is fully backward compatible:

  • Default behavior (stdio) is unchanged
  • HTTP transport is opt-in via MCP_TRANSPORT=http environment variable

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Documentation update

Checklist

  • I have read the MCP Protocol Documentation
  • My changes follows MCP security best practices
  • I have updated the server's README accordingly
  • I have tested this with an LLM client
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have documented all environment variables and configuration options

Additional context

Implementation follows the pattern from the Immich MCP server PR. Key features:

  • Uses @modelcontextprotocol/sdk v1.23.0 StreamableHTTPServerTransport
  • Session management with UUID-based session IDs
  • Supports POST (send), GET (receive), DELETE (close) HTTP methods
  • Environment variables:
    • MCP_TRANSPORT=http - enables HTTP transport (default: stdio)
    • PORT - HTTP port number (default: 3000)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant