Skip to content

Add MCP server test suite, stdio smoke test, and trim/pin dependencies #36

Description

@TMHSDigital

Why it matters

The MCP server has no tests. CI only runs py_compile, so the data-path bug, the pipeline mismatch in shader_helper, and the non-compiling scaffolds all shipped through green CI. Dependencies are unpinned and include packages the server never uses.

Evidence

  • No tests/ directory anywhere; .github/workflows/validate.yml "Validate MCP server" job runs python3 -m py_compile only.
  • mcp-server/requirements.txt: mcp>=1.0.0, fastapi>=0.100.0, uvicorn>=0.23.0. server.py imports neither FastAPI nor uvicorn (stdio transport only). mcp is unbounded across major versions.
  • .github/dependabot.yml covers only github-actions, not pip in /mcp-server.
  • mcp-server/tools/*.py are 3-line stubs ("exists to maintain the expected directory structure") that CI compiles but nothing imports.

Suggested approach

  • Add pytest tests per tool: happy path, no-match path, invalid input, and launching from a different CWD.
  • Add an MCP protocol smoke test (start the server over stdio with the mcp client, list tools, call each once).
  • Drop fastapi and uvicorn; pin mcp to a compatible range (e.g. mcp>=1.14,<2); move to pyproject.toml.
  • Add the pip ecosystem to Dependabot.
  • Either move tool logic into mcp-server/tools/ modules (and test them there) or delete the stubs.
  • Add ruff lint to CI.

Done when

CI runs a pytest suite plus a stdio smoke test on every PR, and dependencies are minimal and bounded.

Activity

  1. added
    dependenciesPull requests that update a dependency file
    testingTest coverage and test tooling
    mcp-serverPython MCP server and data
    on Oct 8, 2026
  2. TMHSDigital commented on Oct 9, 2026

    @TMHSDigital
    OwnerAuthor

    Partly done in #49: pytest suite (48 tests) in CI on Python 3.10/3.12, unused fastapi/uvicorn removed, mcp capped below 2, Dependabot for pip. Still open: linter, and removing the empty tools/ stubs.

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

    cidependenciesPull requests that update a dependency filemcp-serverPython MCP server and datapriority: mediumImportant, not urgenttestingTest coverage and test tooling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions