Skip to content

Establish the copick-mcp test, transport, and packaging gate #53

Closed

Description

@uermel

Parent epic: #52

Objective

Establish a deterministic MCP, transport, and packaging gate on the current stable copick 1.x / copick-utils 1.x stack before changing runtime floors or CLI integration.

The repository currently declares a test extra but has no tests/ directory, no test workflow, and no committed lockfile.

Work

  • Add deterministic local project fixtures and a committed uv.lock.
  • Cover all 14 public MCP tools, including success, empty, and structured-error paths.
  • Cover the three copick.setup.commands entry points using only temporary desktop/code-global/code-project configuration paths.
  • Cover core commands, nested core subcommands, utility plugin commands, command details, and valid/invalid syntax parsing.
  • Add an in-process FastMCP client test that lists all tool names and exercises schema/result serialization.
  • Assert import, tool calls, Click parsing, and MCP startup place no non-protocol content on stdout.
  • Preserve the current metadata exploration result against the available legacy local fixture.
  • Record the missing setup/download groups and --help stdout/exit behavior as migration cases for the next issue rather than desired compatibility behavior.
  • Add an unconditional pull-request matrix on final CPython 3.11, 3.12, 3.13, and 3.14.
  • Make the workflow reusable with an exact commit SHA for release validation.
  • Build a baseline wheel/source distribution and verify all three setup entry points are present.

Tests should exercise behavior. Do not add AST/source-grep tests or tests that parse dependency declaration strings.

Acceptance criteria

  • The current stable-resolution behavior suite passes from a clean locked install.
  • All 14 MCP tools and three setup entry points have executing coverage.
  • In-process FastMCP schemas/results are serializable.
  • The suite detects direct stdout leakage.
  • Every pull request, including documentation-only changes, receives the stable-Python matrix.
  • The workflow can validate an exact release SHA.
  • Baseline distributions build and contain the registered setup entry points.

Non-goals

  • No dependency-floor migration in this issue.
  • No direct Zarr compatibility code.
  • No fix for the known CLI group/help defects until the next stack layer.

Activity

  1. uermel commented on Aug 19, 2026

    @uermel
    MemberAuthor

    Implemented in #58 under the revised scope. The repository now has a committed lock, 11 focused behavior tests covering the public MCP surfaces and setup commands, an in-process FastMCP check, and an unconditional Python 3.11-3.14 CI matrix. The same matrix validates exact release commits. Structural guards and artifact-content assertions were intentionally omitted as requested.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions