Retro Eye care Haitian Deep Dark Default

This chapter describes ShardingSphere-MCP end-to-end contract validation and LLM smoke validation.

Scope

test/e2e/mcp covers:

  • Distribution startup and configuration.
  • HTTP runtime.
  • STDIO runtime.
  • MCP baseline contract.
  • Tool/resource/prompt/completion discovery.
  • Real-model MCP smoke.
  • Encrypt and Mask workflow usability validation.

Local preparation

Install MCP E2E dependency modules into the local repository first:

./mvnw -pl test/e2e/mcp -am install -DskipTests -DskipITs -Dspotless.skip=true -B -ntp

LLM Runtime

The MCP LLM lane uses a local Docker image to host an OpenAI-compatible endpoint. Before building, inspect Docker usage:

docker system df

Check host architecture selection without downloading the model:

sh test/e2e/mcp/src/test/resources/docker/llm-runtime/build-local.sh --dry-run

Build the local runtime image:

sh test/e2e/mcp/src/test/resources/docker/llm-runtime/build-local.sh

Run LLM Smoke

./mvnw -pl test/e2e/mcp -Pllm-e2e test -DskipITs -Dspotless.skip=true \
  -Dtest=LLMSmokeE2ETest \
  -Dsurefire.failIfNoSpecifiedTests=true

Run LLM Usability Suite

./mvnw -pl test/e2e/mcp -Pllm-e2e test -DskipITs -Dspotless.skip=true \
  -Dtest=LLMUsabilitySuiteE2ETest \
  -Dsurefire.failIfNoSpecifiedTests=true

External Debug

For local debugging only, connect to an already running OpenAI-compatible endpoint:

./mvnw -pl test/e2e/mcp -Pllm-e2e test -DskipITs -Dspotless.skip=true \
  -Dtest=LLMSmokeE2ETest \
  -Dmcp.llm.runtime-mode=external-debug \
  -Dmcp.llm.base-url=http://127.0.0.1:8080/v1 \
  -Dsurefire.failIfNoSpecifiedTests=true

External debug endpoints cannot be used as score-closing evidence.

Artifacts

LLM artifacts are written under:

test/e2e/mcp/target/llm-e2e/

GitHub Actions entry points:

  • .github/workflows/mcp-llm-e2e.yml
  • .github/workflows/mcp-llm-usability-e2e.yml

These checks provide additional visibility and should not be configured as required branch protection or ruleset checks by themselves. If a very large PR misses a path-filter match, use workflow_dispatch to add manual evidence.