Skip to content

build(deps): pin mcp SDK below 2.0 ahead of protocol RC (backport #5953)#5958

Open
mergify[bot] wants to merge 1 commit into
release-1.0.xfrom
mergify/bp/release-1.0.x/pr-5953
Open

build(deps): pin mcp SDK below 2.0 ahead of protocol RC (backport #5953)#5958
mergify[bot] wants to merge 1 commit into
release-1.0.xfrom
mergify/bp/release-1.0.x/pr-5953

Conversation

@mergify
Copy link
Copy Markdown
Contributor

@mergify mergify Bot commented May 27, 2026

What does this PR do?

Pins the mcp Python SDK dependency to >=1.23.0,<2.0 across all five declaration sites (pyproject.toml core, type_checking, test-common, and two provider registry specs). This prevents fresh installs from pulling an incompatible SDK version when the MCP 2026-07-28 Release Candidate ships, which introduces breaking changes to the session model, transport layer, and protocol handshake.

Partial #5952 (this addresses the immediate dependency pin; the full migration is tracked there)

Test Plan

  1. Verify all mcp>= references are pinned with <2.0 upper bound:
rg '"mcp>=' pyproject.toml src/ogx/providers/registry/
  1. Run pre-commit to confirm no regressions:
uv run pre-commit run --all-files

Output: all 40 checks passed.


Open in Devin Review
This is an automatic backport of pull request #5953 done by [Mergify](https://mergify.com).
Open in Devin Review

# What does this PR do?

Pins the `mcp` Python SDK dependency to `>=1.23.0,<2.0` across all five
declaration sites (pyproject.toml core, type_checking, test-common, and
two provider registry specs). This prevents fresh installs from pulling
an incompatible SDK version when the MCP 2026-07-28 Release Candidate
ships, which introduces breaking changes to the session model, transport
layer, and protocol handshake.

Partial #5952 (this addresses the immediate dependency pin; the full
migration is tracked there)

## Test Plan

1. Verify all `mcp>=` references are pinned with `<2.0` upper bound:
```bash
rg '"mcp>=' pyproject.toml src/ogx/providers/registry/
```

2. Run pre-commit to confirm no regressions:
```bash
uv run pre-commit run --all-files
```

Output: all 40 checks passed.
<!-- devin-review-badge-begin -->

---

<a href="https://app.devin.ai/review/ogx-ai/ogx/pull/5953"
target="_blank">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
<img
src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
alt="Open in Devin Review">
  </picture>
</a>
<!-- devin-review-badge-end -->

---------

Signed-off-by: Sébastien Han <[email protected]>
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
(cherry picked from commit bb63ea6)

# Conflicts:
#	pyproject.toml
#	uv.lock
@mergify
Copy link
Copy Markdown
Contributor Author

mergify Bot commented May 27, 2026

Cherry-pick of bb63ea6 has failed:

On branch mergify/bp/release-1.0.x/pr-5953
Your branch is up to date with 'origin/release-1.0.x'.

You are currently cherry-picking commit bb63ea69.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   src/ogx/providers/registry/responses.py
	modified:   src/ogx/providers/registry/tool_runtime.py

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   pyproject.toml
	both modified:   uv.lock

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread pyproject.toml
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Incomplete mcp<2.0 pin: starter optional dependency group still allows mcp 2.x

The PR's intent is to pin mcp below 2.0 across all dependency specifications. The starter optional dependency group at pyproject.toml:100 still specifies "mcp>=1.23.0" without the <2.0 upper bound. Users installing with pip install ogx[starter] could get mcp 2.x, which the PR explicitly aims to prevent.

(Refers to line 100)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread pyproject.toml
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Incomplete mcp<2.0 pin: unit dependency group still allows mcp 2.x

The unit dependency group at pyproject.toml:222 still specifies "mcp>=1.23.0" without the <2.0 upper bound, inconsistent with the PR's goal. Unit tests could install mcp 2.x, causing test failures or masking compatibility issues that the pin was supposed to prevent.

(Refers to line 222)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread pyproject.toml
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Incomplete mcp<2.0 pin: test dependency group still allows mcp 2.x

The test dependency group at pyproject.toml:245 still specifies "mcp>=1.23.0" without the <2.0 upper bound, inconsistent with the PR's goal. Integration tests could install mcp 2.x, causing test failures or allowing incompatible code to pass CI.

(Refers to line 245)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread pyproject.toml
Comment on lines +194 to +209
<<<<<<< HEAD
"ogx-client==1.0.2",
=======
"ogx-client>=1.0.2",
]
test-common = [
"aiohttp",
"aiosqlite",
"asyncpg>=0.29.0",
"chardet",
"mcp>=1.23.0,<2.0",
"pgvector>=0.3.0",
"psycopg2-binary>=2.9.0",
"pypdf>=6.10.2",
"sqlalchemy[asyncio]>=2.0.41",
>>>>>>> bb63ea69 (build(deps): pin mcp SDK below 2.0 ahead of protocol RC (#5953))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Unresolved git merge conflict markers in pyproject.toml break TOML parsing

Lines 194–209 of pyproject.toml contain literal <<<<<<< HEAD, =======, and >>>>>>> bb63ea69 merge conflict markers. These are invalid TOML syntax and will cause any TOML parser (pip, uv, setuptools, etc.) to fail when reading the file, completely breaking dependency resolution, installation, and builds.

Prompt for agents
The pyproject.toml file contains unresolved git merge conflict markers at lines 194-209 within the type_checking dependency group. The conflict is between HEAD (which has `ogx-client==1.0.2` and no test-common group) and the bb63ea69 commit (which has `ogx-client>=1.0.2` and introduces a new test-common dependency group). You need to resolve this merge conflict by deciding:

1. Which version spec to use for ogx-client (==1.0.2 vs >=1.0.2)
2. Whether to include the new test-common dependency group

Remove all three conflict marker lines (<<<<<<< HEAD, =======, >>>>>>> bb63ea69) and keep the intended content. Given the PR is about pinning mcp<2.0, you likely want to keep both the ogx-client entry (closing the type_checking group) and the new test-common group with its mcp pin.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant