Skip to content

feat(mcp): list the server in the official MCP Registry - #102

Merged
JeanExtreme002 merged 1 commit into
mainfrom
feat/mcp-registry
Oct 2, 2026
Merged

JeanExtreme002 merged 1 commit into
mainfrom
feat/mcp-registry

Conversation

@JeanExtreme002

Copy link
Copy Markdown
Owner

Prepares PyMemoryEditor's MCP server for the official MCP Registry, which directories such as PulseMCP ingest from.

Changes

  • server.json: the listing io.github.JeanExtreme002/PyMemoryEditor, validated against the 2025-12-11 schema. It's left out of the sdist.
  • README: a hidden <!-- mcp-name: ... --> marker. The registry checks it in the description PyPI shows to confirm the package is ours, so it only counts once a release carries it.
  • pymemoryeditor mcp [flags] runs the MCP server, the same as pymemoryeditor-mcp [flags]. A registry client builds <runtimeHint> <runtimeArguments> <identifier> <packageArguments>, and the identifier has to be the PyPI project, so the only command it can reach is pymemoryeditor, which opened the Qt app. The listing makes it run uvx --from "PyMemoryEditor[mcp]==3.0.1" pymemoryeditor mcp. The subcommand is handled before any Qt import and leaves the server's signal handling alone.
  • The identifier is lowercase pymemoryeditor because uvx looks the executable up by its exact name: with PyMemoryEditor it finds nothing on Linux.
  • docs/mcp.md mentions the subcommand.

Tests

tests/mcp_server/test_registry.py checks that:

  • the README marker matches server.json;
  • both versions in server.json and the --from pin equal __version__, so the next version bump has to update server.json too;
  • the identifier is the console script that runs main_cli;
  • the description fits the registry's 100-character limit;
  • main_cli([..., "mcp", ...]) reaches the server with the flags and never imports PySide6.

Without the subcommand the dispatch test fails.

End to end in a clean python:3.12-slim container, uvx --from "pymemoryeditor[mcp] @ <this wheel>" pymemoryeditor mcp --read-only completed the MCP handshake. It listed 13 tools, since write_value drops out under --read-only. flake8 passes, as do tests/mcp_server (733) and tests/app (165).

After merging

  1. Bump to 3.0.2 (with server.json, which the test enforces) and release it to PyPI.
  2. mcp-publisher login github and mcp-publisher publish.

Add server.json and the mcp-name marker the registry's PyPI ownership check
reads from the README. A registry client starts a PyPI server as
`uvx --from "PyMemoryEditor[mcp]==X" pymemoryeditor mcp`, by the project
name, so `pymemoryeditor mcp [flags]` now runs the MCP server (without Qt),
the same as `pymemoryeditor-mcp`. Tests keep server.json, the README marker
and the package version in step.
@github-actions github-actions Bot added docs Documentation changes (docs/) app GUI application changes (PyMemoryEditor/app/) lib Library changes (PyMemoryEditor/) tests Test changes (tests/) labels Oct 2, 2026
@codecov

codecov Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.89%. Comparing base (58f8292) to head (5befeb9).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #102   +/-   ##
=======================================
  Coverage   89.89%   89.89%           
=======================================
  Files          41       41           
  Lines        3682     3682           
=======================================
  Hits         3310     3310           
  Misses        372      372           
Flag Coverage Δ
Linux-py3.10 64.94% <ø> (ø)
Linux-py3.11 64.94% <ø> (ø)
Linux-py3.12 64.94% <ø> (ø)
Linux-py3.13 64.94% <ø> (ø)
Windows-py3.10 66.51% <ø> (ø)
Windows-py3.11 66.51% <ø> (ø)
Windows-py3.12 66.51% <ø> (ø)
Windows-py3.13 66.51% <ø> (ø)
macOS-py3.12 87.22% <ø> (ø)
mcp-Linux-py3.12 91.15% <ø> (ø)
mcp-Windows-py3.12 91.35% <ø> (ø)
mcp-macOS-py3.12 91.45% <ø> (ø)
speed-Linux-py3.12 66.54% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@JeanExtreme002
JeanExtreme002 merged commit 40005dc into main Oct 2, 2026
19 checks passed
@github-actions
github-actions Bot deleted the feat/mcp-registry branch October 2, 2026 02:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app GUI application changes (PyMemoryEditor/app/) docs Documentation changes (docs/) lib Library changes (PyMemoryEditor/) tests Test changes (tests/)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant