Skip to content

py-mcp: new package (with missing deps, py-pyjwt 2.10.1) - #5637

Draft
aprozo wants to merge 5 commits into
spack:developfrom
aprozo:add-py-mcp
Draft

py-mcp: new package (with missing deps, py-pyjwt 2.10.1)#5637
aprozo wants to merge 5 commits into
spack:developfrom
aprozo:add-py-mcp

Conversation

@aprozo

@aprozo aprozo commented Jul 17, 2026

Copy link
Copy Markdown

Adds the official Model Context Protocol (MCP) python SDK and its missing dependencies, one commit per package:

  • py-pyjwt: add v2.10.1 — mcp needs pyjwt>=2.10.1; newer sdists use the PEP 625 lowercase filename, so the version carries an explicit url.
  • py-httpx-sse: new package (0.4.0)
  • py-sse-starlette: new package (2.1.3)
  • py-restrictedpython: new package (8.1) — not an mcp dependency itself, but commonly needed by MCP servers that sandbox code execution; included since it is the only other missing piece for packaging real MCP servers.
  • py-mcp: new package (1.28.1) — all other dependencies already exist in builtin. The cli variant (typer-based mcp dev CLI) defaults to off because py-typer currently pins py-click@:8.1.8, which cannot unify with environments on click 8.3+.

Context: these back the MCP servers being packaged for the EIC's eic-shell container (eic/eic-spack#986); they are general-purpose, so proposing them here rather than carrying copies in a downstream repo. Verified in that stack: all concretize, build, install, and pass spack test run (import tests).

aprozo added 5 commits July 17, 2026 16:48
The official Model Context Protocol (MCP) python SDK. The cli variant
(typer-based mcp dev CLI) defaults to off: py-typer currently pins
py-click@:8.1.8, which cannot unify with environments on click 8.3+.
@spackbot-triage spackbot-triage Bot added new-package Additions of new packages to the Spack ecosystem new-version Modifications to packages' `depends_on()` directives python dependencies Modifications with a `depends_on()` directive update-package Modifications to packages in the repository maintainers Modifications to a package's `maintainers()` directive licenses Modifications to a package's `license()` directive new-variant Modifications to packages' `variant()` directives labels Jul 17, 2026
version(
"2.10.1",
sha256="3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953",
url="https://files.pythonhosted.org/packages/source/p/pyjwt/pyjwt-2.10.1.tar.gz",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Prefer using url_for_version for changed url.


# Default off: the cli extra pulls py-typer, whose newest builtin version
# pins py-click@:8.1.8 and cannot unify with environments that need
# click 8.3+ (e.g. eic_xl via flask). MCP servers only need mcp core.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Comments refer to irrelevant third party environments (eic_xl).

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

Labels

dependencies Modifications with a `depends_on()` directive licenses Modifications to a package's `license()` directive maintainers Modifications to a package's `maintainers()` directive new-package Additions of new packages to the Spack ecosystem new-variant Modifications to packages' `variant()` directives new-version Modifications to packages' `depends_on()` directives python update-package Modifications to packages in the repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants