Skip to content

docs: fix 5 discrepancies from nightly documentation reconciliation#1123

Merged
lpcox merged 2 commits intomainfrom
copilot/fix-http-server-documentation
Feb 19, 2026
Merged

docs: fix 5 discrepancies from nightly documentation reconciliation#1123
lpcox merged 2 commits intomainfrom
copilot/fix-http-server-documentation

Conversation

Copy link
Contributor

Copilot AI commented Feb 19, 2026

Five documentation inaccuracies identified by the nightly reconciliation workflow — ranging from a broken link to outdated implementation status and missing env var docs.

Changes

  • config.example.toml: Remove (not implemented yet) from HTTP server example — HTTP transport is fully supported
  • README.md: Replace broken [SERENA_TEST_RESULTS.md](SERENA_TEST_RESULTS.md) link (file doesn't exist) with reference to make test-serena-gateway
  • README.md: Document ${VAR} variable expression syntax as a valid option for gateway.domain field (was already validated by validation_schema.go but undocumented)
  • README.md: Add MCP_GATEWAY_HOST and MCP_GATEWAY_MODE to env vars table — both are read by run_containerized.sh but were absent from docs
  • CONTRIBUTING.md: Update DOCKER_API_VERSION note — arm64-specific 1.43 fallback was removed; both architectures now fall back to 1.44

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:

  • example.com
    • Triggering command: /tmp/go-build1656947692/b279/launcher.test /tmp/go-build1656947692/b279/launcher.test -test.testlogfile=/tmp/go-build1656947692/b279/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true 64/src/runtime/cgo --local ache/go/1.25.7/x64/pkg/tool/linu-fmessage-length=0 user.email (dns block)
  • invalid-host-that-does-not-exist-12345.com
    • Triggering command: /tmp/go-build1656947692/b264/config.test /tmp/go-build1656947692/b264/config.test -test.testlogfile=/tmp/go-build1656947692/b264/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true 64/src/runtime/cgo --global x_amd64/compile pull.rebase (dns block)
  • nonexistent.local
    • Triggering command: /tmp/go-build1656947692/b279/launcher.test /tmp/go-build1656947692/b279/launcher.test -test.testlogfile=/tmp/go-build1656947692/b279/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true 64/src/runtime/cgo --local ache/go/1.25.7/x64/pkg/tool/linu-fmessage-length=0 user.email (dns block)
  • slow.example.com
    • Triggering command: /tmp/go-build1656947692/b279/launcher.test /tmp/go-build1656947692/b279/launcher.test -test.testlogfile=/tmp/go-build1656947692/b279/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true 64/src/runtime/cgo --local ache/go/1.25.7/x64/pkg/tool/linu-fmessage-length=0 user.email (dns block)
  • this-host-does-not-exist-12345.com
    • Triggering command: /tmp/go-build1656947692/b288/mcp.test /tmp/go-build1656947692/b288/mcp.test -test.testlogfile=/tmp/go-build1656947692/b288/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true 5/md5block_amd64-errorsas (dns block)

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

Original prompt

This section details on the original issue you should resolve

<issue_title>📚 Documentation Reconciliation Report - 2026-02-19</issue_title>
<issue_description>## Summary

Found 5 discrepancies between documentation and implementation during nightly reconciliation check.


Critical Issues 🔴

1. config.example.toml incorrectly marks HTTP servers as "not implemented yet"

Location: config.example.toml, line 98
Problem: The comment # Example 4: HTTP-based MCP Server (not implemented yet) contradicts the README and actual implementation.
Actual Behavior: HTTP transport is fully supported. README.md (line 151) explicitly states "http" is "HTTP transport (fully supported)". The code in internal/config/config_stdin.go and internal/server/ fully implements HTTP server proxying.
Impact: Users reading config.example.toml as a reference will believe HTTP servers are unsupported and avoid using them, even though the feature is complete and production-ready.
Suggested Fix: Update line 98 in config.example.toml:

-# Example 4: HTTP-based MCP Server (not implemented yet)
+# Example 4: HTTP-based MCP Server

Also uncomment the example or add a complete working example.
Code Reference: internal/config/config_stdin.go:214-224 (HTTP handling), README.md:151 ("fully supported")


Important Issues 🟡

2. README references SERENA_TEST_RESULTS.md which does not exist

Location: README.md, line 637
Problem: The link [SERENA_TEST_RESULTS.md](SERENA_TEST_RESULTS.md) points to a file that does not exist in the repository.
Actual Behavior: The file SERENA_TEST_RESULTS.md is missing from the repo root.
Impact: Clicking the link leads to a 404 on GitHub. Users following Serena MCP testing instructions cannot access the referenced test results.
Suggested Fix: Either create SERENA_TEST_RESULTS.md with current test results, or remove the broken reference from README.md.
Code Reference: README.md:637

3. CONTRIBUTING.md documents outdated DOCKER_API_VERSION fallback values

Location: CONTRIBUTING.md, line 494
Problem: The note says "Set DOCKER_API_VERSION=1.43 for arm64 (Mac) or 1.44 for amd64 (Linux)". However, both run.sh and run_containerized.sh now use 1.44 as the fallback for all architectures (the arm64-specific 1.43 path was removed).
Actual Behavior: Both scripts query the Docker daemon's current API version first; if unavailable, they fall back to 1.44 for all architectures.

# run.sh and run_containerized.sh (lines ~240-243):
if [ "$arch" = "arm64" ] || [ "$arch" = "aarch64" ]; then
    export DOCKER_API_VERSION=1.44  # was 1.43
else
    export DOCKER_API_VERSION=1.44
fi

Impact: Developers following the CONTRIBUTING guide on arm64 Macs may manually set the wrong version (1.43) thinking it's required.
Suggested Fix: Update CONTRIBUTING.md line 494:

-**Note:** Set `DOCKER_API_VERSION=1.43` for arm64 (Mac) or `1.44` for amd64 (Linux).
+**Note:** The `DOCKER_API_VERSION` is set automatically by `run.sh` using the Docker daemon's current API version (falls back to `1.44` for all architectures if detection fails).

Code Reference: run.sh:105-111, run_containerized.sh:241-244


Minor Issues 🔵

4. README domain field description omits variable expression support

Location: README.md, line 204
Problem: The documentation states:

domain (optional): Domain name for the gateway

  • Allowed values: "localhost", "host.docker.internal"

This omits a third valid option: variable expressions like \$\{MCP_GATEWAY_DOMAIN}.
Actual Behavior: The validation code in internal/config/validation_schema.go (line 443-453) also allows variable expressions matching ^\$\{[A-Z_][A-Z0-9_]*\}$ pattern.
Impact: Users who want to configure domain dynamically via environment variable may not know this syntax is supported.
Suggested Fix: Update README.md line 204:

-  - Allowed values: `"localhost"`, `"host.docker.internal"`
+  - Allowed values: `"localhost"`, `"host.docker.internal"`, or a variable expression (e.g., `"\$\{MCP_GATEWAY_DOMAIN}"`)

Code Reference: internal/config/validation_schema.go:443-453

5. Missing MCP_GATEWAY_HOST and MCP_GATEWAY_MODE env vars in README

Location: README.md, Environment Variables section
Problem: run_containerized.sh reads two environment variables that are not documented in README's Environment Variables section:

  • MCP_GATEWAY_HOST (line 298): Sets the bind host address (default: 0.0.0.0)
  • MCP_GATEWAY_MODE (line 300): Sets the routing mode flag (default: --routed)

Actual Behavior: These variables control the bind address and mode when using the containerized deployment script.
**Imp...


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

- config.example.toml: Remove 'not implemented yet' from HTTP server example
- README.md: Replace broken SERENA_TEST_RESULTS.md link with make target reference
- CONTRIBUTING.md: Update DOCKER_API_VERSION note (falls back to 1.44 for all archs)
- README.md: Document variable expression support for gateway.domain field
- README.md: Add MCP_GATEWAY_HOST and MCP_GATEWAY_MODE env vars table

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix incorrect documentation for HTTP server implementation docs: fix 5 discrepancies from nightly documentation reconciliation Feb 19, 2026
@lpcox lpcox marked this pull request as ready for review February 19, 2026 16:10
Copilot AI review requested due to automatic review settings February 19, 2026 16:10
@lpcox lpcox merged commit b6d0990 into main Feb 19, 2026
2 checks passed
@lpcox lpcox deleted the copilot/fix-http-server-documentation branch February 19, 2026 16:10
Copy link
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

This PR addresses five documentation mismatches reported by the nightly reconciliation workflow, aligning user-facing docs and examples with the gateway’s current implemented behavior (HTTP transport support, config validation capabilities, env vars, and testing guidance).

Changes:

  • Updates the example config to reflect that HTTP-based MCP servers are implemented and supported.
  • Fixes/clarifies README documentation: removes a broken Serena results link, documents gateway.domain ${VAR} syntax, and adds containerized-only env vars.
  • Updates CONTRIBUTING guidance around DOCKER_API_VERSION fallback behavior.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
config.example.toml Removes outdated “not implemented” wording for the HTTP server example.
README.md Fixes broken Serena results reference, documents gateway.domain variable-expression syntax, and adds missing containerized env var documentation.
CONTRIBUTING.md Updates DOCKER_API_VERSION note to match current script behavior.

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

Comment on lines +334 to +342
### Containerized Deployment Variables

When using `run_containerized.sh`, these additional variables are available:

| Variable | Description | Default |
|----------|-------------|---------|
| `MCP_GATEWAY_HOST` | Bind address for the gateway | `0.0.0.0` |
| `MCP_GATEWAY_MODE` | Routing mode flag passed to `awmg` (e.g., `--routed`, `--unified`) | `--routed` |

Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

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

The Docker Configuration table just below this new section still says DOCKER_API_VERSION is "Set by run.sh based on architecture", but run.sh/run_containerized.sh now prefer the Docker daemon's current API version and only fall back to 1.44 if detection fails. Please update that table row to match current script behavior so the README stays consistent within this section.

Copilot uses AI. Check for mistakes.
- `MODE` - Server mode flag (default: `--routed`, can be `--unified`)

**Note:** Set `DOCKER_API_VERSION=1.43` for arm64 (Mac) or `1.44` for amd64 (Linux).
**Note:** The `DOCKER_API_VERSION` is set automatically by `run.sh` using the Docker daemon's current API version (falls back to `1.44` for all architectures if detection fails).
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

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

This note is now correct, but the earlier bullets in this same section still claim run.sh sets DOCKER_API_VERSION to 1.43 on arm64 (see the paragraph describing what run.sh does just above). Please update/remove that older statement so CONTRIBUTING has a single, consistent explanation of the current DOCKER_API_VERSION logic.

Suggested change
**Note:** The `DOCKER_API_VERSION` is set automatically by `run.sh` using the Docker daemon's current API version (falls back to `1.44` for all architectures if detection fails).
**Note:** The `DOCKER_API_VERSION` is set automatically by `run.sh` based on the Docker daemon's current API version, so you typically don't need to configure it manually.

Copilot uses AI. Check for mistakes.
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.

📚 Documentation Reconciliation Report - 2026-02-19

3 participants