ultra-e2e-test tasks
List, create and move tasks through todo, in progress and done.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1claude mcp add ultra-e2e-test-tasks -e 'TASK_API_URL=http://localhost:8080' -e 'TASK_API_TIMEOUT_MS=10000' -- docker run -i --rm ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1
{
"mcpServers": {
"ultra-e2e-test-tasks": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1"
],
"env": {
"TASK_API_URL": "http://localhost:8080",
"TASK_API_TIMEOUT_MS": "10000"
}
}
}
}
Environment variables
TASK_API_URLWhere the task API is: an absolute http or https URL.TASK_API_TIMEOUT_MSHow long one call to the task API may take, in milliseconds.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
ultra-e2e-test
The end-to-end test for TEMPLATE1: a project generated with every feature, then released and updated through each template release, so that init, template-update, releases and MCP publishing are proven on a real repository rather than only in the template's own CI.
Getting started
You need:
- Node 24 (
.node-version), for the scripts and every Node module. - Go 1.26 (
services/api-go/go.mod), and golangci-lint for the complete local check; without it,verify.mjsreports golangci-lint as skipped, and CI still runs it. - Python 3.13 or newer and uv (
services/api-py/.python-version), which installs the rest. - The GitHub CLI, only to apply repository settings with
configure-github.mjs.
Each toolchain version is pinned once, in the file named beside it above, so there is no .tool-versions to keep in step; mise and asdf can read those files directly.
- Install the dependencies of every module present:
node scripts/setup.mjs Run the checks every CI job runs on the code:
node scripts/verify.mjs # everything node scripts/verify.mjs <module> # the chassis plus the named modules onlyIt runs each module's own checks and tests, and the API contract against every task service present. A check it cannot run is reported as skipped, never as passed. A few checks run only in CI, because they need a container engine, a network service or a CI-only tool: actionlint and zizmor on the workflows,
npm audit signatures, building and starting each container image, and the report-only scans insecurity.yml.- Start what you are working on. Each module's entry under What's here names the command that starts it.
What's here
scripts/—setup.mjsinstalls every module,verify.mjsruns every module's checks,check-hygiene.mjsguards the repository's shape,check-docs.mjsits documentation,check-contract.mjsholds every task service to the one API contract inscripts/contract/, andconfigure-github.mjsapplies the repository settings (squash merging, the requiredverifycheck, security features).services/api-go/— Go task API in Clean Architecture layers.go run ./cmd/apithere serves it on port 8080. READMEservices/api-ts/— TypeScript task API with a pure domain core.npm startthere serves it on port 8080. READMEservices/api-py/— Python task API, same routes and layers.uv run --directory src python -m api_py.mainthere serves it on port 8080. READMEservices/mcp-server/— MCP server exposing the task API to an AI assistant.npm startthere serves it over stdio, calling the task API atTASK_API_URL; the README shows how to register it with a client. READMEapps/web/— React single-page app, organised by feature.npm run devthere serves it at http://localhost:5173, with/apipassed to a task service on port 8080. READMEpackages/ts-library/— TypeScript library published to npm.npm run verifythere builds it and checks the package consumers would install. READMEarchitecture/— LikeC4 model of the system.npm run devthere previews every view. READMEdocs/— the documentation index and the rules for keeping it true;docs/adr/holds the architecture decision records..claude/skills/— step-by-step procedures coding agents follow for recurring tasks..github/prompts/holds Copilot prompt files that wrap one of them;AGENTS.mdholds the rules all of them follow..github/— workflows, issue forms, pull request template, Dependabot and code owners.
Working with a coding agent
AGENTS.md holds the rules every coding agent follows here; CLAUDE.md, GEMINI.md and Copilot's instructions point to it rather than repeating it. For a recurring task, such as recording a decision or taking a template update, the matching procedure in .claude/skills/ is the one to follow. Ask the agent to run node scripts/verify.mjs and to say what it ran before it reports a change as done.
Continuous integration
verify.yml— on every pull request, every push tomain, and in a merge queue: repository hygiene, chassis tests, actionlint, a security audit of the workflows with zizmor, and one job per module — each service job also runs the API contract and starts the service's container image to prove it answers — all feeding the aggregateverifyjob, which is the only required check (ADR-0002).pr-title.yml— pull request titles follow Conventional Commits.copilot-setup-steps.yml— the environment GitHub's Copilot coding agent prepares before it works here: every toolchain the selected features need, thennode scripts/setup.mjs. It runs on its own only when it changes.security.yml— report-only scans that fail only when a scan could not run: gitleaks over new commits and weekly over history,npm auditfor every npm lockfile, and a Trivy scan of every container image the repository builds, for fixable high and critical vulnerabilities in its operating-system and language packages.security.yml, Go — govulncheck, reporting only vulnerabilities in code the Go service actually calls.security.yml, Python — pip-audit over the Python service's lockfile.codeql.yml— CodeQL analysis; enable it by setting the repository variableCODEQL_ENABLED=true(needs a public repository or GitHub Advanced Security).scorecard.yml— OpenSSF Scorecard: an outside measurement of the practices this repository claims, published and uploaded to code scanning; enable it withSCORECARD_ENABLED=trueon a public repository. Some checks measure the project rather than the workflows, and a new or single-maintainer repository scores low on them: Code-Review and Branch-Protection while pull requests merge without a second person's review, Maintained for its first 90 days, SAST until CodeQL has run on recent pull requests, and CII-Best-Practices until the project registers for the badge.mcp-publish.yml— after a release, pushes the MCP server's image, built for amd64 and arm64, to GitHub Container Registry and itsserver.jsonto the MCP Registry, tokenlessly; enable it withMCP_PUBLISH_ENABLED=true(how).release.yml— release-please onmain, off untilRELEASE_ENABLED=true, whichconfigure-github.mjssets. Releases start at0.1.0. GitHub holds the checks of a pull request opened bygithub-actions[bot]until someone approves them, so releasing is: open the release pull request, Approve workflows to run, wait forverify, merge. ARELEASE_PLEASE_TOKENsecret holding a GitHub App or personal token removes that step.- Library publishing — with
releaseselected, each release publishespackages/ts-libraryto npm with provenance onceNPM_PUBLISH_ENABLED=trueis set and npm trusts the workflow (how). architecture.yml— publishes the architecture model to GitHub Pages oncePAGES_ENABLED=trueis set.
Dependabot proposes grouped updates weekly for every ecosystem present, SHA-pinned actions included.
Taking template updates
This project was generated from ultra-e2e-test, and CHANGELOG.md records the release it came from. When a later release fixes something you want, scripts/template-update.mjs brings the change in: it regenerates the project as the old and the new release would have made it, with this project's name and features, and applies the difference as a three-way merge. What you changed yourself is kept, and a conflict is left to resolve like any merge conflict.
node scripts/template-update.mjs --to vX.Y.Z --dry-run # what would change
node scripts/template-update.mjs --to vX.Y.Z # apply, then review, verify and commit
Updates only move forward: a release older than the one the project is on is refused.
The update-from-template skill walks an agent through the whole procedure.
Contributing and security
CONTRIBUTING.md describes the workflow, SECURITY.md how to report a vulnerability privately, and CODE_OF_CONDUCT.md the expected conduct. Guidance for coding agents is in AGENTS.md.
License
Frequently asked questions
What is ultra-e2e-test tasks?
List, create and move tasks through todo, in progress and done.
How do I install ultra-e2e-test tasks?
It runs on your machine. In Claude Code: claude mcp add ultra-e2e-test-tasks -e 'TASK_API_URL=http://localhost:8080' -e 'TASK_API_TIMEOUT_MS=10000' -- docker run -i --rm ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does ultra-e2e-test tasks need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is ultra-e2e-test tasks open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains ultra-e2e-test tasks?
It is published by hynix666. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.