Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RUN uv pip install --system .
# OAuth callback, even though FastMCP constructs the redirect with `iss` and
# advertises it as mandatory. This version-guarded compatibility layer only
# stops affected clients from requiring that response parameter.
RUN python -c "from importlib.metadata import version; from pathlib import Path; assert version('fastmcp') == '4.0.3'; p = Path('/usr/local/lib/python3.11/site-packages/fastmcp/server/auth/oauth_proxy/proxy.py'); s = p.read_text(); old = 'metadata.authorization_response_iss_parameter_supported = True'; new = 'metadata.authorization_response_iss_parameter_supported = False'; assert s.count(old) == 1; p.write_text(s.replace(old, new))"
RUN python -c "from importlib.metadata import version; from pathlib import Path; assert version('fastmcp').startswith('4.'); p = Path('/usr/local/lib/python3.11/site-packages/fastmcp/server/auth/oauth_proxy/proxy.py'); s = p.read_text(); old = 'metadata.authorization_response_iss_parameter_supported = True'; new = 'metadata.authorization_response_iss_parameter_supported = False'; assert s.count(old) == 1; p.write_text(s.replace(old, new))"

LABEL io.google-mcp.workaround="openai-codex-0146-rfc9207-iss"

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@ legacy MCP 2025 clients that use `Mcp-Session-Id` and GET SSE as well as MCP
Do not enable FastMCP's `stateless_http` option on this shared endpoint; doing
so removes the legacy GET channel.

The server runs on FastMCP 4 (`fastmcp>=4.0.3`) paired with `mcp[cli]==2.0.0`. The Docker build also applies a version-guarded
The server runs on FastMCP 4 (`fastmcp>=4.0.6,<5`) paired with `mcp[cli]>=2.0.0,<3`. The Docker build also applies a version-guarded
OAuth metadata workaround for Codex CLI 0.146. It stops advertising the RFC
9207 authorization-response `iss` parameter as mandatory while FastMCP still
includes it in redirects. The build fails if the expected FastMCP version or
includes it in redirects. The build fails if the expected FastMCP major version or
patch location changes, so upgrades require explicit interoperability tests.

For Codex, configure and authenticate the server as described in the
Expand Down
7 changes: 4 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,17 @@ version = "0.0.4"
requires-python = ">=3.10"
license = "Apache-2.0"
dependencies = [
"google-ads>=32.0.0",
"mcp[cli]==2.0.0",
"fastmcp>=4.0.6"
"google-ads>=33.0.0",
"mcp[cli]>=2.0.0,<3",
"fastmcp>=4.0.6,<5"
]

description = "MCP Server for Google Ads, depends on Google Ads API."
readme = "README.md"
authors = [
{ name = "Dean Lukies", email = "lukiesd@users.noreply.github.com" },
{ name = "Mattia Tommasone", email = "Raibaz@users.noreply.github.com" },
{ name = "Ben Karl", email = "benrkarl@users.noreply.github.com" },
]
keywords = ["Google Ads", "Google Ads API", "MCP"]
classifiers = [
Expand Down
Loading