Skip to content

fix: add missing container property to mempalace HTTP MCP server for MCP Gateway v0.2.30+#28324

Open
Copilot wants to merge 4 commits intomainfrom
copilot/fix-mempalace-config-add-container-property
Open

fix: add missing container property to mempalace HTTP MCP server for MCP Gateway v0.2.30+#28324
Copilot wants to merge 4 commits intomainfrom
copilot/fix-mempalace-config-add-container-property

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 24, 2026

MCP Gateway v0.2.30 requires a container property on all server configs (stdio and HTTP alike). The mempalace HTTP MCP server was missing it, causing gh-aw.agent.setup to fail with a jsonschema oneOf validation error on every codex workflow that uses mempalace (e.g. Daily Fact About gh-aw).

Changes

Workflow config

  • shared/mcp/mempalace.md: Added container: "python:3.12-slim" to the mempalace MCP server block — the direct fix for the runtime failure

Compiler

  • mcp_property_validation.go: Removed the guard that rejected container on HTTP-type MCP servers (that constraint was correct pre-v0.2.30; now invalid)
  • mcp_config_custom.go: Added container extraction in the case "http": branch of getMCPConfig; added container as first field in the HTTP JSON property render order so it appears in the generated gateway config

Schemas

  • mcp-gateway-config.schema.json (pkg + docs): Added container to httpServerConfig.properties and required: ["container", "type", "url"]
  • main_workflow_schema.json: Added container to http_mcp_tool properties (needed so compile-time validation accepts container + url together — previously additionalProperties: false caused a spurious "Unknown property: url" error)
  • mcp_config_schema.json: Relaxed allOf constraints — removed container from the HTTP not clause, and changed the "if container present, then type must be stdio" rule to allow stdio | http

Generated

  • daily-fact.lock.yml + all 201 workflows recompiled; mempalace gateway config now emits:
"mempalace": {
  "container": "python:3.12-slim",
  "type": "http",
  "url": "http://host.docker.internal:8765/mcp",
  ...
}

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw k/gh-aw/gh-aw/.grev-parse k/gh-aw/gh-aw/.g--show-toplevel x_amd64/vet k/gh�� y\|cat << GH_AW_MCP_CONFIG\|mcpServers\b\|buildMCPGatewayJSONConfig\|generateMCPGatewayJSON k/gh-aw/gh-aw/pkg/workflow/action_cache.go x_amd64/vet k/gh-aw/gh-aw/pkgit k/gh-aw/gh-aw/pkrev-parse k/gh-aw/gh-aw/pk--show-toplevel x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw s $k => $v) echo--norc (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -M st/suppress-warnings.cjs ache/node/24.14.1/x64/bin/git HEAD -aw/aw-test-owne--experimental-import-meta-resolve run-script/lib/n--require st/dist/workers//home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs diff�� --binary --output=/tmp/gi--conditions n-dir/git --get decde047 ache/node/24.14.-bool git (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv get --global git http.https://git/opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/git y_with_explicit_git GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git 2847903004 rtcfg ck git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git LsRemoteWithRealgit LsRemoteWithRealrev-parse 1/x64/bin/node git rev-�� --show-toplevel 1/x64/bin/node /usr/bin/git . tions/setup/js/n/opt/hostedtoolcache/node/24.14.1/x64/bin/npm 64/pkg/tool/linuinstall git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260424-192222-42026/test-4179705167/.github/workflows remote /usr/bin/git -json GO111MODULE x_amd64/asm git conf�� user.email test@example.com /usr/bin/git -json GO111MODULE x_amd64/compile git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv /tmp/TestGuardPolicyBlockedUsersApprovalLabelsCompiledOutput3323044686/001 remote /opt/hostedtoolcache/node/24.14.1/x64/bin/node HEAD t-patch-utils-Ngremote t node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/archie.md (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv rtcfg GO111MODULE .cfg GOINSECURE /unix GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.upstream.url env CompiledOutput3721129990/001 7LFx/9x5EhNlMwHDxpQFH7LFx ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE g/x/crypto/chachrev-parse GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/compile /usr/bin/git rtcfg GO111MODULE .cfg git rev-�� --show-toplevel ache/go/1.25.8/x5 /usr/bin/git 273005/b171/_pkggit GO111MODULE ache/go/1.25.8/x--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /usr/bin/git 3441708/b474/_pkgit -tests 3441708/b474=> git rev-�� --show-toplevel git /usr/bin/git Xz34/0uXSzV-Sefrgit remote ache/go/1.25.8/x--show-toplevel git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ry=1 -buildtags 3441708/b472/_pkg_.a -errorsas -ifaceassert -nilfunc git -C /tmp/gh-aw-test-runs/20260424-192222-42026/test-2847903004 rev-parse om/owner/repo.git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv origin main /usr/bin/git . mp _modules/.bin/gi--show-toplevel git -C /tmp/gh-aw-test-runs/20260424-192501-53373/test-1228102919/.github/workflows config /usr/bin/git remote.origin.urgit tions/setup/js/nrev-parse ache/go/1.25.8/x--show-toplevel git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/xtest@example.com /usr/bin/git vaScript43722423git stmain.go 64/pkg/tool/linu-m git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git 3441708/b420/_pkgit hPW9/JwXM9fVV_p6rev-parse 3441708/b420=> git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers//home/REDACTED/work/gh-aw/gh-aw/acrev-parse /usr/bin/git 2501-53373/test-git --output=/tmp/gicommit ache/node/24.14.-m git rev-�� --show-toplevel ache/node/24.14.1/x64/bin/node /usr/bin/git 2501-53373/test-git k/gh-aw/gh-aw/acrev-parse e/git-receive-pa--show-toplevel git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -goversion go1.25.8 -c=4 -nolocalimports -importcfg /tmp/go-build527273005/b228/importcfg -pack env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv 01 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE XTNeUTv/Qvk2NwT5config (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv 01 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv user.name Test User /usr/bin/infocmp -json GO111MODULE 64/pkg/tool/linu--show-toplevel infocmp -1 xterm-color 64/pkg/tool/linux_amd64/compile /usr/bin/gh _.a 0/internal/langurev-parse x_amd64/compile gh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git -M t-patch-utils-Uqrev-parse 1/x64/bin/node git remo�� it 1/x64/bin/node /usr/bin/git 22/001/test-frongit (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/TestGuardPolicyMinIntegrityOnlymin-integrity_only_defaults_repo3190442447/0-p config /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet remote.origin.urgit hyphen1443251654rev-parse 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -ato�� -bool -buildtags mple.com/org/repo.git -errorsas -ifaceassert -nilfunc infocmp (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --git-dir 64/pkg/tool/linux_amd64/compile /usr/bin/git _.a GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linu--jq /usr/bin/git _.a ik_mNb6yT 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --all-progress-implied l /usr/bin/git --thin --delta-base-offrev-parse -q git rev-�� --show-toplevel git /usr/bin/git . tions/setup/js/nrev-parse ndor/bin/git git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/pkg/styles/huh_theme.go l /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript437224236/001/test-frontmatter-with-nested-objects.md go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows/approach-validator.md -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git clon�� /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen2649606496/001 l /usr/bin/git -q -m modules/@npmcli/REDACTED git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv --local core.hooksPath x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/pkOUTPUT k/gh-aw/gh-aw/pk-d $name) { hasDiscussionsEnabled } } k/gh-aw/gh-aw/pkgit k/gh-aw/gh-aw/pkrev-parse k/gh-aw/gh-aw/pk--show-toplevel x_amd64/vet k/gh�� go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv --hidden --glob x_amd64/vet --with-filename -- http.*container\--noprofile x_amd64/vet --no�� -container-propeINVALID,NEW (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch se 0354545/b034/vet.cfg .cfg -mindepth 1 -name ache/go/1.25.8/xconfig (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch --noprofile conntrack me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } INVALID,NEW -j DROP /usr/bin/gh api graphql -f le-check.lock.yml -f owner=github -f infocmp (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch /home/REDACTED/work/gh-aw/gh-aw/.gremote.origin.url config nfig/composer/vendor/bin/bash remote.origin.urgit -buildtags DiscussionsEnabl/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git -C /home/REDACTED/worremote.origin.url show rgo/bin/bash ithub/workflows -tests r: $owner, name:/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv GOMODCACHE 64/pkg/tool/linu/tmp/go-build1253441708/b115/vet.cfg /usr/bin/git _.a GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel pBvTgXO/G1KutSxXHjoE8hqd2SJr /usr/bin/git _.a rotocol/go-sdk@vrev-parse 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel nQ/RLCRnb0C_ygasi1eFckC/cpHUHD3G-buildtags /usr/bin/git -q ode_modules/viterev-parse 1/x64/bin/node git rev-�� --show-toplevel ode_modules/vitest/dist/workers/-tests /usr/bin/git user.name tions/setup/js/nrev-parse error git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --show-toplevel -goversion /usr/bin/git -c=4 -nolocalimports -importcfg git init�� /tmp/go-build1253441708/b430/embedcfg -pack /usr/bin/git 01 GO111MODULE 64/bin/go /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv -bool -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git init�� ons-test2192884615 -tests /usr/bin/infocmp HEAD st/suppress-warnrev-parse 1/x64/lib/node_m--show-toplevel infocmp (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260424-192222-42026/test-1999454547/.github/workflows config /opt/hostedtoolcache/node/24.14.1/x64/bin/node remote.origin.urgit h793482093/001' 64/bin/go node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript437224236/001/test-frontmatter-with-arra-test.timeout=10git go /opt/hostedtoolcache/node/24.14.1/x64/bin/node 01 GO111MODULE 64/bin/go node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows/architecture-guardian.md -buildtags /usr/bin/gh -errorsas -ifaceassert -nilfunc gh work�� list --json /usr/bin/git 80123322/001' 80123322/001' rgo/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name n.go 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link env 4vneU20yx GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile rtcf�� 472266275 diXaaNED5 ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet ch-that-does-notgit mp 652b2d5fe44a1896--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet comm�� 2501-53373/test-860435638 -m es.lock.yml k/node_modules/.git git p/bin/git go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name 0/message/catalog/catalog.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuremote.origin.url env /workflows go ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE t GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 5.0/internal/doc.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuremote1 env 6/001/test-inlined-imports-enabl-errorsas vZBL1k16k ache/go/1.25.8/x64/pkg/tool/linu-nilfunc GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuTest User (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name --output=/tmp/git-patch-utils-YTW5Yb/.diffsize.tmp ache/node/24.14.1/x64/bin/node 13ef39f7e0392a9cgit --stdout /opt/hostedtoolc--show-toplevel ache/node/24.14.1/x64/bin/node mpor�� 999 k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs /opt/hostedtoolcache/node/24.14.1/x64/bin/node r/work/gh-aw/gh-git /home/REDACTED/worrev-parse run-script/lib/n--show-toplevel k/gh-aw/gh-aw/actions/setup/js/nTest User (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name 0/internal/format/format.go 64/pkg/tool/linux_amd64/compile GOINSECURE o8601 64/src/internal/bytealg/indexbytxterm-color 64/pkg/tool/linux_amd64/compile env _.a GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE nal/poly1305 bis 64/pkg/tool/linuremote2 env _.a RR0X2oXnN 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name --output=/tmp/git-patch-utils-YTW5Yb/.diffsize.tmp ache/node/24.14.1/x64/bin/node 13ef39f7e0392a9cgit --stdout ache/node/24.14.--show-toplevel ache/node/24.14.1/x64/bin/node mpor�� commit.gpgsign k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs ache/node/24.14.1/x64/bin/node --require /home/REDACTED/worrev-parse git k/gh-aw/gh-aw/actions/setup/js/ntest@example.com (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE o 64/src/sync/atom--show-toplevel go env ithub/workflows GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 eF_9lmWUN 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env 472266275 tVIFB3NxN ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warn--conditions /snap/bin/git ch-that-does-notgit mp modules/@npmcli/--show-toplevel k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers/-q comm�� 2501-53373/test-860435638/custom/workflows -m e/git k/gh-aw/node_modgit git t e/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name X4Ap2OrxA 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link env ithub/workflows VGplouFzy rtcfg.link GOINSECURE 37ijmUppW-flcGmSinit GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-tests (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 tOLMlgimq 64/pkg/tool/linux_amd64/vet GOINSECURE cii GOMODCACHE 64/pkg/tool/linux_amd64/vet env 472266275 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs 1/x64/bin/node ch-that-does-notgit mp odules/npm/node_--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/link t-ha�� ithub/workflows/approach-validator.md -m e/git-upload-pack es/.bin/git git _modules/.bin/gi--show-toplevel go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD bis go env -json QuPWq4ACQ ache/go/1.25.8/x64/pkg/tool/linu-lang=go1.25 GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xtest@example.com (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 qtyQmI_fS 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env rtcfg o x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet ch-that-does-notgit mp 652b2d5fe44a1896--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet comm�� /ref/tags/v9 -m sv e_modules/.bin/ggit git ode_modules/.bin--show-toplevel go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD bis 64/src/math/floor_wasm.s env ithub/workflows YfB4YDUdE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet rtcf�� -json nXnE_1jro ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs 1/x64/bin/node ch-that-does-notgit mp 652b2d5fe44a1896--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet t-ha�� ithub/workflows/approach-validator.md -m /node_modules/.bin/go tions/setup/nodegit git git go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -c=4 -nolocalimports -importcfg /tmp/go-build1253441708/b419/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/tar.go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 GOMOD GOMODCACHE x_amd64/compile env lGitmaster_brancremote.origin.url lGitmaster_branch793482093/001' x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 GOMOD GOMODCACHE 64/pkg/tool/linuremote.origin.url env 6/001/test-frontmatter-with-env-template-expressions.md sNGC5r73k x_amd64/compile GOINSECURE go-sdk/jsonrpc GOMODCACHE x_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1253441708/b404/cli.test /tmp/go-build1253441708/b404/cli.test -test.testlogfile=/tmp/go-build1253441708/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true -nolocalimports -importcfg /tmp/go-build527273005/b216/importcfg -pack env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /tmp/go-build1424831385/b404/cli.test /tmp/go-build1424831385/b404/cli.test -test.testlogfile=/tmp/go-build1424831385/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true HEAD st/suppress-warnrun 1/x64/lib/node_m/tmp/go-handler-test-Oh7LO3/text-output.go git bran�� -M st/suppress-warnings.cjs cal/bin/git HEAD -aw/aw-test-owne--experimental-import-meta-resolve ache/node/24.14.--require st/dist/workers//home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x^remote\..*\.gh-resolved$ /usr/bin/git 2222-42026/test-git dcfg 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/link /usr/bin/git ingutil.test ZTds/2vgHE4jOupB-lh ortcfg.link git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git test-lpGaC5/testgit false k/gh-aw/node_mod--show-toplevel git rev-�� --show-toplevel git /usr/bin/git test-LrWNBF/testls /opt/hostedtoolc-lh ache/go/1.25.8/x/tmp/gh-aw/aw-feature-branch.patch git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 472266275 tVIFB3NxN ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm estl�� efaultBranchFromLsRemoteWithRealGitmain_branch17remote.origin.url efaultBranchFromLsRemoteWithRealGitmain_branch1743457601/001' .cfg GOINSECURE 273005/b047/ GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv user.name W5Yb/.diffsize.tmp bin/git 5683f8e2..HEAD 25f90c5aaeadc053rev-parse 1/x64/bin/node git comm�� -q t-patch-utils-UqhRMR/.diffsize.t-ifaceassert 1/x64/bin/node /js/generate_safgit (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json 1 x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv . hRMR/.diffsize.tmp e4752ac6..5427853118b4f4ae8db5f45d7b68b4884478eb59 --verify ode_modules/vite/tmp/js-hash-test-374378999/test-hash.js n-dir/git git add Gitmaster_branch1577696848/001' Gitmaster_branch1577696848/001' ache/node/24.14.1/x64/bin/git git commit -m 'tgit e/git _modules/.bin/gi--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE 6cK_-fl/UrWG3i_hconfig env lGitbranch_with_remote.origin.url lGitbranch_with_hyphen1443251654/001' x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE UF1gCAW/ZkGdLhrj-test.v=true env Gitbranch_with_h-test.timeout=10m0s Gitbranch_with_h-test.run=^Test x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv . hRMR/.diffsize.tmp ules/.bin/git origin/feature/tgit st/suppress-warnrev-parse 1/x64/bin/git git add . ode_modules/vitest/suppress-warnings.cjs x_amd64/link git remote add ogit git 1/x64/bin/node x_amd64/link (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -json Kt0zQSK0W x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env efaultBranchFromLsRemoteWithRealGitmaster_branchremote.origin.url efaultBranchFromLsRemoteWithRealGitmaster_branch793482093/001' 64/pkg/tool/linux_amd64/vet GOINSECURE ntio/asm/internaremote GOMODCACHE J_/CWrYu2czG7Ca7ylQP4Z8/vCNYLdc7Test commit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv user.email test@example.com 1/x64/lib/node_modules/npm/node_development --count tions/setup/js/nrev-parse 47 git rev-�� HEAD t-patch-utils-UqhRMR/.diffsize.tmp 64/pkg/tool/linux_amd64/compile --require 25f90c5aaeadc053-C ache/node/24.14./home/REDACTED/work/gh-aw/gh-aw/pkg/cli 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE go-sdk/internal/rev-parse 64/src/internal/--show-toplevel Eu/7mNRYRFA9RXlMxf9qL--/YcBrNqCWBFU4hJRv0Iid env 41P7GWbPK GO111MODULE ck GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion node --conditions development go run runs/20260424-192501-53373/test-2632579031/.github/workflows git /bin/sh it ode_modules/viterev-parse bin/git /bin/sh (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE uVsL8NFDM1C9 env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo -nolocalimports -importcfg /tmp/go-build1253441708/b420/importcfg -pack /tmp/go-build1253441708/b420/_testmain.go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE t GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm env 3873207850/001 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE 273005/b012/ GOMODCACHE ache/go/1.25.8/xrepos/{owner}/{repo}/actions/runs/12346/artifacts (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json context/xcontext.go 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name with-tools.md st/suppress-warnings.cjs 1/x64/bin/git HEAD -aw/aw-test-owne--experimental-import-meta-resolve /git st/dist/workers//home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs diff�� --binary --output=/tmp/gi--conditions it --get decde047 git git (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 2222-42026/test-1999454547/.github/workflows rg/x/text@v0.36.0/message/catalog.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env g_.a aFt_/WeZ-gWqCt5YqbNVEaFt_ 273005/b236=> GOINSECURE osh-tekuri/jsonsrev-parse GOMODCACHE /opt/hostedtoolcache/go/1.25.8/xTest User (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch /tmp/gh-aw-test-runs/20260424-192501-53373/test-.artifacts[].name rev-parse /usr/bin/git @{u} --output=/tmp/girev-parse 64/bin/git git rev-�� --show-toplevel git /usr/bin/git . git 1/x64/bin/node git (http block)
  • invalid.example.invalid
    • Triggering command: /usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git e/git init�� ndor/bin/git git ode_modules/.bin/git =receive test@example.com--git-dir=/tmp/bare-incremental-aILF6Q /git (dns block)
    • Triggering command: /usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git e/git init�� ndor/bin/git git ode_modules/.bin/git =receive test@example.com--git-dir=/tmp/bare-incremental-wjwnxm /git (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

…r MCP Gateway v0.2.30

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a4cdc059-5ce5-4f81-810a-4b28c14c8e91

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix mempalace MCP server config by adding 'container' property fix: add missing container property to mempalace HTTP MCP server for MCP Gateway v0.2.30+ Apr 24, 2026
Copilot AI requested a review from gh-aw-bot April 24, 2026 19:34
@pelikhan pelikhan marked this pull request as ready for review April 24, 2026 20:10
Copilot AI review requested due to automatic review settings April 24, 2026 20:10
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 24, 2026

Smoke CI completed successfully!

@github-actions
Copy link
Copy Markdown
Contributor

✅ smoke-ci: safeoutputs CLI comment + comment-memory run (24909625675)

Generated by Smoke CI for issue #28324 ·

@github-actions
Copy link
Copy Markdown
Contributor

Comment Memory

CI lights the path\nGreen checks bloom at dawn\nQuiet bots still sing

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Generated by Smoke CI for issue #28324 ·

@github-actions github-actions Bot mentioned this pull request Apr 24, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR updates MCP configuration handling to satisfy MCP Gateway v0.2.30+ requiring a container field on HTTP MCP server configs, fixing failures in workflows using the mempalace HTTP server.

Changes:

  • Add container to the mempalace HTTP MCP server config and regenerate affected workflow lockfiles.
  • Update compiler/rendering to allow and emit container for HTTP MCP servers.
  • Update JSON schemas (pkg + docs) to require/accept container for HTTP server configs.
Show a summary per file
File Description
pkg/workflow/schemas/mcp-gateway-config.schema.json Requires container for HTTP server configs and documents the field.
docs/public/schemas/mcp-gateway-config.schema.json Mirrors gateway schema change for docs/public distribution.
pkg/workflow/mcp_property_validation.go Removes validation that previously rejected container for HTTP MCP configs.
pkg/workflow/mcp_config_custom.go Ensures HTTP server JSON render order includes container; extracts container for HTTP type.
pkg/workflow/error_message_quality_test.go Removes the now-invalid test that expected container to be rejected for HTTP.
pkg/parser/schemas/mcp_config_schema.json Relaxes schema rules to allow container for HTTP and updates conditional constraints.
pkg/parser/schemas/main_workflow_schema.json Allows container in http_mcp_tool properties (compile-time validation).
.github/workflows/shared/mcp/mempalace.md Adds container: "python:3.12-slim" to mempalace HTTP MCP server config.
.github/workflows/daily-fact.lock.yml Regenerated output now includes python:3.12-slim and container in MCP server config.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comments suppressed due to low confidence (1)

pkg/workflow/mcp_property_validation.go:78

  • container is now required for HTTP MCP servers (per PR description and updated gateway schema), but validateMCPRequirements no longer enforces it. Because main_workflow_schema.json does not appear to require container for HTTP tools either, a workflow can pass compile-time checks and only fail later with a gateway/schema error. Add an explicit container required check for type: http here (similar to the existing URL requirement) and produce a targeted, user-facing error message with an example.
		// HTTP type requires 'url' property
		url, hasURL := mcpConfig["url"]

		// HTTP type cannot use mounts field (MCP Gateway v0.1.5+)
		if _, hasMounts := toolConfig["mounts"]; hasMounts {
			return fmt.Errorf("tool '%s' mcp configuration with type 'http' cannot use 'mounts' field. Volume mounts are only supported for stdio (containerized) MCP servers.\n\nExample:\ntools:\n  %s:\n    type: http\n    url: \"https://api.example.com/mcp\"\n\nSee: %s", toolName, toolName, constants.DocsToolsURL)
		}
  • Files reviewed: 9/9 changed files
  • Comments generated: 3

"Example:",
},
},
{
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test case validating the quality of the HTTP+container error message was removed, but new/changed validation behavior was introduced (HTTP now requires container, and container is no longer rejected). Add an error-message-quality test for “http type missing container” (and optionally ensure “http type with container + url” does not error) so regressions surface as clear actionable errors rather than schema oneOf failures.

Suggested change
{
{
name: "http type missing container",
tools: map[string]any{
"http-tool": map[string]any{
"type": "http",
"url": "https://example.com/mcp",
// Missing required container for http type
},
},
errorContains: []string{
"http",
"container",
"must",
"Example",
},
},
{

Copilot uses AI. Check for mistakes.
"type": "string",
"description": "Container image that provides the HTTP MCP server (e.g., 'python:3.12-slim'). Required by MCP Gateway v0.2.30+ for all server types. For HTTP servers started externally on the runner, this identifies the container image used to host the service.",
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9./_-]*(:([a-zA-Z0-9._-]+|latest))?$"
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The container regex is overly restrictive for common Docker image references: it disallows registry ports (e.g., localhost:5000/repo/image:tag) and digest-pinned references (e.g., image:tag@sha256:<64-hex>), and it is inconsistent with the looser pattern added in main_workflow_schema.json. Consider relaxing this validation (or aligning both schemas) to accept standard Docker image references including optional @sha256: digests and optional registry ports; otherwise valid configs may be rejected by schema validation.

Suggested change
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9./_-]*(:([a-zA-Z0-9._-]+|latest))?$"
"pattern": "^(?:[a-zA-Z0-9][a-zA-Z0-9._-]*(?::[0-9]+)?/)?[a-zA-Z0-9][a-zA-Z0-9._-]*(?:/[a-zA-Z0-9][a-zA-Z0-9._-]*)*(?::[a-zA-Z0-9._-]+)?(?:@sha256:[A-Fa-f0-9]{64})?$"

Copilot uses AI. Check for mistakes.
Comment on lines +10018 to +10022
"container": {
"type": "string",
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9/:_.-]*$",
"description": "Container image that provides the HTTP MCP server (e.g., 'python:3.12-slim'). Required by MCP Gateway v0.2.30+ for all server types. For HTTP servers started externally on the runner, this identifies the container image used to host the service."
},
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description says container is required for HTTP MCP tools, but in this diff it’s only added as an allowed property (no required / conditional requirement shown). This means workflows can still validate while omitting container, and then fail later when generating/validating the gateway config. Add a schema constraint (e.g., an if on type: "http" then required: ["container", "url"]) so invalid configs are rejected at workflow-compile validation time with a clear error.

Copilot uses AI. Check for mistakes.
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Smoke CI has started processing this pull request

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[deep-report] Fix mempalace MCP server config: add missing 'container' property for MCP Gateway v0.2.30

4 participants