You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note:make build could not be executed in this environment due to network restrictions preventing Go module downloads. All other checks were performed via static code analysis.
Important Issues 🟡
Issues that are misleading but have workarounds:
1. README.md: port field described as "Listen port" — it is metadata-only
Location:README.md, Gateway Configuration table
Problem: The Gateway Configuration table says:
| `port` | Listen port |
This implies the port config field controls which port the server listens on.
Actual Behavior: The port field is validated for range (1–65535) and stored for metadata purposes only. It does not set the listen address. The actual listen address comes from:
The --listen CLI flag (default: 127.0.0.1:3000 for direct binary)
run_containerized.sh reads MCP_GATEWAY_PORT and passes --listen ${HOST}:${PORT} to awmg
Impact: A user who sets "gateway": {"port": 8080} in their JSON config (or port = 8080 in TOML) expecting the server to listen on 8080 will be confused when the server still listens on the default 3000.
Code References:
internal/config/validation.go:381-383 — only validates range, never sets listen address
internal/cmd/root.go — uses listenAddr from --listen flag exclusively; cfg.Gateway.Port is never read
internal/cmd/flags_core.go — --listen flag default: 127.0.0.1:3000
Correct Documentation (already exists elsewhere):
config.example.toml says: "This field is parsed and validated but does NOT control the actual listen port. To change the listen port, use the --listen flag."
docs/CONFIGURATION.md:429 says: "Validated and stored for metadata purposes only. The actual listen address is always set by the --listen CLI flag (default 127.0.0.1:3000)."
| `port` | Metadata only; validated (1–65535) but does not control the listen address. Use `--listen` flag or `MCP_GATEWAY_PORT` (containerized) to set the actual listen port. |
Minor Issues 🔵
Small inconsistencies or missing details:
2. docs/CONFIGURATION.md: Incorrect claim that [gateway.tracing] supports ${VAR} expansion
Location:docs/CONFIGURATION.md, line 413
Problem: The file says:
Variable expansion with ${VAR_NAME} is only supported in [gateway.opentelemetry] and legacy [gateway.tracing] fields
This implies both sections support variable expansion.
Actual Behavior: Only [gateway.opentelemetry] fields are expanded. The legacy [gateway.tracing] section does not get variable expansion.
Code Reference:
internal/config/config_core.go:474-488 — expandTracingVariables() is called only when cfg.Gateway.Opentelemetry != nil; no expansion is performed for the legacy Tracing field
Correct Documentation (already exists elsewhere):
config.example.toml:254-255 says: "The [gateway.opentelemetry] section supports ${VAR_NAME} expansion; the legacy [gateway.tracing] section does not"
CONTRIBUTING.md:690-691 says: "${VAR} expansion supported only in [gateway.opentelemetry] section fields"
Suggested Fix: Update docs/CONFIGURATION.md:413:
- Variable expansion with `${VAR_NAME}` is only supported in `[gateway.opentelemetry]` fields (the legacy `[gateway.tracing]` section does **not** support variable expansion)
3. README.md: Ambiguous "forwarded as-is" description for MCP methods
Location:README.md, API Endpoints section
Problem: The file says:
Supported MCP methods: tools/list, tools/call, and any other method (forwarded as-is).
The phrase "forwarded as-is" could be misinterpreted to mean the gateway proxies arbitrary MCP methods (e.g. resources/list, prompts/get) to backend servers.
Actual Behavior: Only tools/list and tools/call cause the gateway to call backend MCP servers. All other methods are handled by the go-sdk server natively (returning empty results or SDK-level errors) and are not proxied to backends.
internal/server/unified.go:170-203 — only registers tool handlers on the SDK server
Suggested Fix: Clarify what "forwarded as-is" means:
Supported MCP methods: `tools/list`, `tools/call` (proxied to backend servers), plus standard lifecycle methods (`initialize`, etc.) handled natively by the MCP SDK.
Accurate Sections ✅
Makefile targets (make build, test, test-unit, test-integration, test-all, lint, coverage, install, test-race, test-rust, format, clean, agent-finished) — all exist and are correctly described
Go version (1.25.0) in CONTRIBUTING.md matches go.mod
Summary
Found 2 discrepancies and 1 clarification opportunity during the nightly documentation reconciliation check.
Important Issues 🟡
Issues that are misleading but have workarounds:
1. README.md:
portfield described as "Listen port" — it is metadata-onlyLocation:
README.md, Gateway Configuration tableProblem: The Gateway Configuration table says:
This implies the
portconfig field controls which port the server listens on.Actual Behavior: The
portfield is validated for range (1–65535) and stored for metadata purposes only. It does not set the listen address. The actual listen address comes from:--listenCLI flag (default:127.0.0.1:3000for direct binary)run_containerized.shreadsMCP_GATEWAY_PORTand passes--listen ${HOST}:${PORT}toawmgImpact: A user who sets
"gateway": {"port": 8080}in their JSON config (orport = 8080in TOML) expecting the server to listen on 8080 will be confused when the server still listens on the default 3000.Code References:
internal/config/validation.go:381-383— only validates range, never sets listen addressinternal/cmd/root.go— useslistenAddrfrom--listenflag exclusively;cfg.Gateway.Portis never readinternal/cmd/flags_core.go—--listenflag default:127.0.0.1:3000Correct Documentation (already exists elsewhere):
config.example.tomlsays: "This field is parsed and validated but does NOT control the actual listen port. To change the listen port, use the --listen flag."docs/CONFIGURATION.md:429says: "Validated and stored for metadata purposes only. The actual listen address is always set by the--listenCLI flag (default127.0.0.1:3000)."Suggested Fix: Update
README.mdGateway Configuration table:Minor Issues 🔵
Small inconsistencies or missing details:
2.
docs/CONFIGURATION.md: Incorrect claim that[gateway.tracing]supports${VAR}expansionLocation:
docs/CONFIGURATION.md, line 413Problem: The file says:
This implies both sections support variable expansion.
Actual Behavior: Only
[gateway.opentelemetry]fields are expanded. The legacy[gateway.tracing]section does not get variable expansion.Code Reference:
internal/config/config_core.go:474-488—expandTracingVariables()is called only whencfg.Gateway.Opentelemetry != nil; no expansion is performed for the legacyTracingfieldCorrect Documentation (already exists elsewhere):
config.example.toml:254-255says: "The[gateway.opentelemetry]section supports${VAR_NAME}expansion; the legacy[gateway.tracing]section does not"CONTRIBUTING.md:690-691says: "${VAR}expansion supported only in[gateway.opentelemetry]section fields"Suggested Fix: Update
docs/CONFIGURATION.md:413:3. README.md: Ambiguous "forwarded as-is" description for MCP methods
Location:
README.md, API Endpoints sectionProblem: The file says:
The phrase "forwarded as-is" could be misinterpreted to mean the gateway proxies arbitrary MCP methods (e.g.
resources/list,prompts/get) to backend servers.Actual Behavior: Only
tools/listandtools/callcause the gateway to call backend MCP servers. All other methods are handled by the go-sdk server natively (returning empty results or SDK-level errors) and are not proxied to backends.Code Reference:
internal/mcp/connection_methods.go:13-29— method dispatch switch covers onlytools/list,tools/call,resources/list,resources/read,prompts/list,prompts/get; unknown methods return"unsupported method"errorinternal/server/unified.go:170-203— only registers tool handlers on the SDK serverSuggested Fix: Clarify what "forwarded as-is" means:
Accurate Sections ✅
make build,test,test-unit,test-integration,test-all,lint,coverage,install,test-race,test-rust,format,clean,agent-finished) — all exist and are correctly describedCONTRIBUTING.mdmatchesgo.modawmg) matchesMakefileand code--config,--config-stdin,--listen,--routed,--unified,--env,--validate-env,-v/-vv/-vvv,--log-dir,--payload-dir,--payload-size-threshold,--sequential-launch,--otlp-endpoint,--otlp-sample-rate) — all verified present in codeCONTRIBUTING.mdmatch actualinternal/directory127.0.0.1:3000(direct binary) and0.0.0.0:8000(viarun.sh) match code1.44for all architectures matchesrun_containerized.sh:276-280MCP_GATEWAY_PORT,MCP_GATEWAY_DOMAIN,MCP_GATEWAY_API_KEY) matchrun_containerized.shcommandfield vs JSON stdincontainerfield — correctly documented and enforced${VAR}expansion —CONTRIBUTING.mdcorrectly limits expansion to[gateway.opentelemetry]fields onlyCONTRIBUTING.mdmatchesgo.moddocs/CONFIGURATION.md,docs/ENVIRONMENT_VARIABLES.md,docs/PROXY_MODE.md, etc.) existawmg proxy) flags (--guard-wasm,--policy,--github-token,--listen) match codelocaltype alias forstdioconfirmed in validation coderun_containerized.shauto-adds--config-stdinas documented in READMETested Commands
make --dry-run buildmake --dry-run testtest-unitmake --dry-run test-unit./internal/...make --dry-run test-integrationmake --dry-run test-all./...make --dry-run lintmake --dry-run coveragemake --dry-run installmake buildCode References
internal/config/config_core.go,internal/config/config_stdin.gointernal/config/config_tracing.go:74-112internal/config/validation.go:381-383internal/cmd/flags_core.go,internal/cmd/root.gointernal/mcp/connection_methods.gointernal/server/unified.go,internal/server/routed.goWarning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
proxy.golang.orgSee Network Configuration for more information.