Add Podman Streamable HTTP interoperability - #211
Open
mrbrazzi wants to merge 2 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This change adds an explicitly enabled Streamable HTTP transport for the Google Analytics MCP server while preserving the existing stdio behavior.
It also provides a reproducible, non-root Podman deployment for WSL and documents configurations for clients such as Codex and Antigravity.
Changes
/mcp.subscriptions/listencompatibility handler.fastmcp==4.0.0b3andmcp==2.0.0compatibility pair.analytics_mcp*so deployment assets are not treated as Python packages.Motivation
The current server is primarily designed for clients that launch it over stdio. This makes it difficult to operate one isolated server in WSL/rootless Podman and share it with multiple MCP clients.
The new transport is opt-in and keeps existing stdio configurations unchanged.
A related interoperability approach was previously validated in googleads/google-ads-mcp#108. This contribution applies the relevant transport and Podman patterns to Google Analytics, without introducing the Google Ads-specific OAuth storage or compatibility patches.
The open googleanalytics/google-analytics-mcp#160 targets Cloud Run and per-user OAuth. This PR instead focuses on a local WSL/rootless Podman deployment using read-only mounted Application Default Credentials, so the two scopes are complementary.
Validation
Automated
The repository was mounted read-only into separate ephemeral containers reproducing the presubmit matrix:
nox -s lintnox -s tests-3.10nox -s tests-3.11nox -s tests-3.12nox -s tests-3.13All formatting checks passed, and all 8 tests passed on every Python version.
git diff --check main...HEADalso passes.Manual interoperability
No credentials, property identifiers, or private Analytics response data are included in this contribution.
Contributor checklist