fix: #9 MCP-Tools http_get und http_request bereitstellen #28

Merged
frank merged 4 commits from agent/issue-9-mcp-tools-http-get-und-http-request-bere into main 2026-07-17 14:03:36 +02:00
Owner

Änderungen

  • http_get und http_request mit MCP-2025-11-25-konformen Schemas und Annotationen
  • Structured Content plus kompatibler TextContent
  • HTTP-Ausführung über MCP → Tunnel → Private Proxy
  • Validierungs-, Policy-, Timeout-, Truncation- und Disconnect-Fehler als Tool Execution Errors
  • End-to-End-Test mit lokalem Zielserver
  • Konfiguration und README aktualisiert

Verifikation

  • go test ./...
  • go test -race ./...
  • go vet ./...

Alle drei Commits wurden gepusht; Branch und Remote sind synchron.
Ich prüfe Tool-Registrierung, Schemas, Fehlersemantik und Tests gegen #9 und ergänze nur nachweisbare Lücken.Die vorhandene Implementierung deckt die Kernpfade ab; ich prüfe nun Konfiguration und Fehlerweitergabe auf Schema-/Redaktionslücken.Die Prüfung hat zwei Lücken ergeben: fehlerhafte Ziel-URLs werden erst im Proxy validiert, und untypische Executor-Fehler können Headerwerte durchreichen. Beides wird am MCP-Rand gezielt abgefangen und getestet.Die reinen Paketprüfungen kompilieren; die vollständige Suite benötigt lokale Test-Listener und wird außerhalb der Sandbox erneut ausgeführt.URL-Validierung und Redaction sind getestet; der Commit benötigt Zugriff auf die gemeinsame Git-Worktree-Metadatenbank.Commit aebe959 ist gepusht. Die vollständige Suite wird nochmals gegen den finalen Stand ausgeführt.PR_TITLE: feat(mcp): expose private HTTP tools

PR_BODY:
Implements http_get and http_request over the private proxy, including MCP schemas, structured results, execution errors, E2E coverage, URL validation, and sensitive-header redaction.

Alles Implementiert

## Änderungen - `http_get` und `http_request` mit MCP-2025-11-25-konformen Schemas und Annotationen - Structured Content plus kompatibler TextContent - HTTP-Ausführung über MCP → Tunnel → Private Proxy - Validierungs-, Policy-, Timeout-, Truncation- und Disconnect-Fehler als Tool Execution Errors - End-to-End-Test mit lokalem Zielserver - Konfiguration und README aktualisiert ## Verifikation - `go test ./...` - `go test -race ./...` - `go vet ./...` Alle drei Commits wurden gepusht; Branch und Remote sind synchron. Ich prüfe Tool-Registrierung, Schemas, Fehlersemantik und Tests gegen #9 und ergänze nur nachweisbare Lücken.Die vorhandene Implementierung deckt die Kernpfade ab; ich prüfe nun Konfiguration und Fehlerweitergabe auf Schema-/Redaktionslücken.Die Prüfung hat zwei Lücken ergeben: fehlerhafte Ziel-URLs werden erst im Proxy validiert, und untypische Executor-Fehler können Headerwerte durchreichen. Beides wird am MCP-Rand gezielt abgefangen und getestet.Die reinen Paketprüfungen kompilieren; die vollständige Suite benötigt lokale Test-Listener und wird außerhalb der Sandbox erneut ausgeführt.URL-Validierung und Redaction sind getestet; der Commit benötigt Zugriff auf die gemeinsame Git-Worktree-Metadatenbank.Commit `aebe959` ist gepusht. Die vollständige Suite wird nochmals gegen den finalen Stand ausgeführt.PR_TITLE: feat(mcp): expose private HTTP tools PR_BODY: Implements `http_get` and `http_request` over the private proxy, including MCP schemas, structured results, execution errors, E2E coverage, URL validation, and sensitive-header redaction. Alles Implementiert
Author
Owner

🚧 WIP pull request opened — linked to issue #9. Agent is working…

🚧 **WIP pull request opened** — linked to issue #9. Agent is working…
Author
Owner

💭 Agent progress

Planning concise technical commentary
Ich prüfe zuerst Architektur, bestehende MCP-/Tunnel-HTTP-Komponenten und Tests. Danach implementiere ich die Tools in kleinen, jeweils getesteten Commits und pushe jeden Commit direkt.

💭 **Agent progress** **Planning concise technical commentary** Ich prüfe zuerst Architektur, bestehende MCP-/Tunnel-HTTP-Komponenten und Tests. Danach implementiere ich die Tools in kleinen, jeweils getesteten Commits und pushe jeden Commit direkt.
Author
Owner

💭 Agent progress

Inspecting files without agents

💭 **Agent progress** **Inspecting files without agents**
Author
Owner

💭 Agent progress

Searching for connector listener implementation

💭 **Agent progress** **Searching for connector listener implementation**
Author
Owner

💭 Agent progress

Assessing connector listener architecture mismatch

💭 **Agent progress** **Assessing connector listener architecture mismatch**
Author
Owner

💭 Agent progress

Planning Streamable HTTP build
Die bestehende Tunnel-Ausführung liegt derzeit auf der Connector-Seite; der ausgehende private-proxy beantwortet Requests noch mit „unavailable“. Ich ergänze daher zuerst eine serverseitige Tunnel-Client-Abstraktion und verlagere die HTTP-Ausführung an den privaten Proxy, bevor der MCP-Handler darauf aufsetzt.

💭 **Agent progress** **Planning Streamable HTTP build** Die bestehende Tunnel-Ausführung liegt derzeit auf der Connector-Seite; der ausgehende `private-proxy` beantwortet Requests noch mit „unavailable“. Ich ergänze daher zuerst eine serverseitige Tunnel-Client-Abstraktion und verlagere die HTTP-Ausführung an den privaten Proxy, bevor der MCP-Handler darauf aufsetzt.
Author
Owner

💭 Agent progress

Investigating MCP connector listener implementation

💭 **Agent progress** **Investigating MCP connector listener implementation**
Author
Owner

💭 Agent progress

Designing Connector Broker with concurrent listeners

Designing Gateway and MCP server schemas

Defining MCP response encoding and timeout handling

Designing HTTP connector patch

💭 **Agent progress** **Designing Connector Broker with concurrent listeners** **Designing Gateway and MCP server schemas** **Defining MCP response encoding and timeout handling** **Designing HTTP connector patch**
Author
Owner

💭 Agent progress

Refactoring listener and proxy components

💭 **Agent progress** **Refactoring listener and proxy components**
Author
Owner

💭 Agent progress

Refactoring event context handling

💭 **Agent progress** **Refactoring event context handling**
Author
Owner

💭 Agent progress

Refactoring connector tests for e2e gateway

Setting GOCACHE temporary directory

💭 **Agent progress** **Refactoring connector tests for e2e gateway** **Setting GOCACHE temporary directory**
Author
Owner

💭 Agent progress

Planning test replacement and cleanup

💭 **Agent progress** **Planning test replacement and cleanup**
Author
Owner

💭 Agent progress

Applying patch to remove code from line 107 onward

💭 **Agent progress** **Applying patch to remove code from line 107 onward**
Author
Owner

💭 Agent progress

Planning MCP connector configuration

Designing MCP server schema and validation

💭 **Agent progress** **Planning MCP connector configuration** **Designing MCP server schema and validation**
Author
Owner

💭 Agent progress

Designing MCP server and config validation

Implementing MCP timeouts and listener config

💭 **Agent progress** **Designing MCP server and config validation** **Implementing MCP timeouts and listener config**
Author
Owner

💭 Agent progress

Adding missing http import and verifying config

💭 **Agent progress** **Adding missing http import and verifying config**
Author
Owner

💭 Agent progress

Adding net/http package

💭 **Agent progress** **Adding net/http package**
Author
Owner

💭 Agent progress

Adding cancel event handling and enhancing proxy tests

Planning end-to-end MCP and privateproxy tests
Der Tunnelpfad ist jetzt korrekt gerichtet: Der MCP-Prozess erzeugt Requests, der verbundene private Proxy führt sie mit seiner Policy-Engine aus und liefert Responses/Toolfehler zurück. Als Nächstes härte ich MCP-Eingabe, Timeout/Disconnect-Verhalten und die geforderten Schema-/Ergebnisfälle mit Tests ab.

💭 **Agent progress** **Adding cancel event handling and enhancing proxy tests** **Planning end-to-end MCP and privateproxy tests** Der Tunnelpfad ist jetzt korrekt gerichtet: Der MCP-Prozess erzeugt Requests, der verbundene private Proxy führt sie mit seiner Policy-Engine aus und liefert Responses/Toolfehler zurück. Als Nächstes härte ich MCP-Eingabe, Timeout/Disconnect-Verhalten und die geforderten Schema-/Ergebnisfälle mit Tests ab.
Author
Owner

💭 Agent progress

Adjusting error comparison with reflect.DeepEqual

💭 **Agent progress** **Adjusting error comparison with reflect.DeepEqual**
Author
Owner

💭 Agent progress

Preparing incremental commits for tunnel and privateproxy

💭 **Agent progress** **Preparing incremental commits for tunnel and privateproxy**
Author
Owner

💭 Agent progress

Adding gateway connection tests

💭 **Agent progress** **Adding gateway connection tests**
Author
Owner

💭 Agent progress

Planning gateway test addition

💭 **Agent progress** **Planning gateway test addition**
Author
Owner

💭 Agent progress

Investigating session release issues

💭 **Agent progress** **Investigating session release issues**
Author
Owner

💭 Agent progress

Adjusting goroutine defer close for serveTunnel

💭 **Agent progress** **Adjusting goroutine defer close for serveTunnel**
Author
Owner

💭 Agent progress

Assessing git add escalation requirements

💭 **Agent progress** **Assessing git add escalation requirements**
Author
Owner

💭 Agent progress

Planning commit sequence and fixes
Der erste Commit ist gepusht: b147eb4 feat(tunnel): execute requests on private proxy. Er enthält Gateway, Disconnect-Fehler und die tatsächliche HTTP-Ausführung im privaten Proxy.

💭 **Agent progress** **Planning commit sequence and fixes** Der erste Commit ist gepusht: `b147eb4 feat(tunnel): execute requests on private proxy`. Er enthält Gateway, Disconnect-Fehler und die tatsächliche HTTP-Ausführung im privaten Proxy.
Author
Owner

💭 Agent progress

Enforcing header validation and fixing decode EOF

Fixing header serialization and enforcing timeout limits

Adding config timeout validation and fixing method map bug

💭 **Agent progress** **Enforcing header validation and fixing decode EOF** **Fixing header serialization and enforcing timeout limits** **Adding config timeout validation and fixing method map bug**
Author
Owner

💭 Agent progress

Fixing JSON decode handling with io.EOF

💭 **Agent progress** **Fixing JSON decode handling with io.EOF**
Author
Owner

💭 Agent progress

Planning tests for accept failures and timeouts

💭 **Agent progress** **Planning tests for accept failures and timeouts**
Author
Owner

💭 Agent progress

Committing ignored untracked files

💭 **Agent progress** **Committing ignored untracked files**
Author
Owner

💭 Agent progress

Planning E2E test setup with local servers

Designing full-network E2E test flow

Implementing connector serveTunnel and updating docs
Der zweite Commit ist gepusht: 1e24cd8 feat(mcp): expose private HTTP tools. Er enthält Streamable HTTP, beide Tooldefinitionen, 2020-12-Schemas, strukturierte/kompakte Ergebnisse sowie Validation-, 4xx/5xx-, Timeout-, Truncation-, Policy- und Disconnect-Tests. Jetzt folgt der echte MCP→Tunnel→Proxy→Zielserver-Test und die Betriebsdokumentation.

💭 **Agent progress** **Planning E2E test setup with local servers** **Designing full-network E2E test flow** **Implementing connector serveTunnel and updating docs** Der zweite Commit ist gepusht: `1e24cd8 feat(mcp): expose private HTTP tools`. Er enthält Streamable HTTP, beide Tooldefinitionen, 2020-12-Schemas, strukturierte/kompakte Ergebnisse sowie Validation-, 4xx/5xx-, Timeout-, Truncation-, Policy- und Disconnect-Tests. Jetzt folgt der echte MCP→Tunnel→Proxy→Zielserver-Test und die Betriebsdokumentation.
Author
Owner

💭 Agent progress

Planning network sandbox escalation

💭 **Agent progress** **Planning network sandbox escalation**
Author
Owner

💭 Agent progress

Planning full test execution with socket focus

💭 **Agent progress** **Planning full test execution with socket focus**
Author
Owner

💭 Agent progress

Reviewing TLS config and schema validation

Improving gateway error handling and messaging

Assessing reverse proxy TLS compatibility

Fixing session cancellation memory leak

Reviewing privateproxy client errors and tests

💭 **Agent progress** **Reviewing TLS config and schema validation** **Improving gateway error handling and messaging** **Assessing reverse proxy TLS compatibility** **Fixing session cancellation memory leak** **Reviewing privateproxy client errors and tests**
Author
Owner

💭 Agent progress

Reviewing required imports for tests

💭 **Agent progress** **Reviewing required imports for tests**
Author
Owner

💭 Agent progress

Adding missing Go imports

💭 **Agent progress** **Adding missing Go imports**
Author
Owner

💭 Agent progress

Planning full Go test and vet

💭 **Agent progress** **Planning full Go test and vet**
Author
Owner

💭 Agent progress

Preparing to commit after successful vet check

💭 **Agent progress** **Preparing to commit after successful vet check**
Author
Owner

💭 Agent progress

Planning final audit and tests

💭 **Agent progress** **Planning final audit and tests**
Author
Owner

💭 Agent progress

Inspecting private proxy CLI configuration

Evaluating MCP client content-type requirements

Confirming MCP call validation behavior

Planning race condition tests
Der dritte Commit ist gepusht: 31c7260 test(mcp): cover private proxy end to end. Der End-to-End-Test erreicht einen lokalen Zielserver über MCP, Tunnel und privaten Proxy; die vollständige Testsuite und go vet ./... sind grün. Ich führe noch die Race-Prüfung und den finalen Branch-Audit aus.

💭 **Agent progress** **Inspecting private proxy CLI configuration** **Evaluating MCP client content-type requirements** **Confirming MCP call validation behavior** **Planning race condition tests** Der dritte Commit ist gepusht: `31c7260 test(mcp): cover private proxy end to end`. Der End-to-End-Test erreicht einen lokalen Zielserver über MCP, Tunnel und privaten Proxy; die vollständige Testsuite und `go vet ./...` sind grün. Ich führe noch die Race-Prüfung und den finalen Branch-Audit aus.
Author
Owner

🔍 Verifying implementation (attempt 1/3)

🔍 **Verifying implementation** (attempt 1/3)
Author
Owner

💭 Agent progress

Drafting concise PR summary with test mention

Änderungen

  • http_get und http_request mit MCP-2025-11-25-konformen Schemas und Annotationen
  • Structured Content plus kompatibler TextContent
  • HTTP-Ausführung über MCP → Tunnel → Private Proxy
  • Validierungs-, Policy-, Timeout-, Truncation- und Disconnect-Fehler als Tool Execution Errors
  • End-to-End-Test mit lokalem Zielserver
  • Konfiguration und README aktualisiert

Verifikation

  • go test ./...
  • go test -race ./...
  • go vet ./...
    Alle drei Commits wurden gepusht; Branch und Remote sind synchron.

Planning PR commentary and commits
Ich prüfe Tool-Registrierung, Schemas, Fehlersemantik und Tests gegen #9 und ergänze nur nachweisbare Lücken.

💭 **Agent progress** **Drafting concise PR summary with test mention** ## Änderungen - `http_get` und `http_request` mit MCP-2025-11-25-konformen Schemas und Annotationen - Structured Content plus kompatibler TextContent - HTTP-Ausführung über MCP → Tunnel → Private Proxy - Validierungs-, Policy-, Timeout-, Truncation- und Disconnect-Fehler als Tool Execution Errors - End-to-End-Test mit lokalem Zielserver - Konfiguration und README aktualisiert ## Verifikation - `go test ./...` - `go test -race ./...` - `go vet ./...` Alle drei Commits wurden gepusht; Branch und Remote sind synchron. **Planning PR commentary and commits** Ich prüfe Tool-Registrierung, Schemas, Fehlersemantik und Tests gegen #9 und ergänze nur nachweisbare Lücken.
Author
Owner

💭 Agent progress

Assessing URL validation and error sanitization

Planning API issue inspection
Die vorhandene Implementierung deckt die Kernpfade ab; ich prüfe nun Konfiguration und Fehlerweitergabe auf Schema-/Redaktionslücken.

💭 **Agent progress** **Assessing URL validation and error sanitization** **Planning API issue inspection** Die vorhandene Implementierung deckt die Kernpfade ab; ich prüfe nun Konfiguration und Fehlerweitergabe auf Schema-/Redaktionslücken.
Author
Owner

💭 Agent progress

Assessing response header sensitivity risks

💭 **Agent progress** **Assessing response header sensitivity risks**
Author
Owner

💭 Agent progress

Checking Forge API issue and approval prefix

💭 **Agent progress** **Checking Forge API issue and approval prefix**
Author
Owner

💭 Agent progress

Analyzing MCP spec and JSON schema nuances

Planning sensitive data redaction in errors

Enhancing URL validation and timeout handling

Planning error sanitization for sensitive headers

Designing regex and URL validation for redaction

Implementing URL and error sanitization tests
Die Prüfung hat zwei Lücken ergeben: fehlerhafte Ziel-URLs werden erst im Proxy validiert, und untypische Executor-Fehler können Headerwerte durchreichen. Beides wird am MCP-Rand gezielt abgefangen und getestet.

💭 **Agent progress** **Analyzing MCP spec and JSON schema nuances** **Planning sensitive data redaction in errors** **Enhancing URL validation and timeout handling** **Planning error sanitization for sensitive headers** **Designing regex and URL validation for redaction** **Implementing URL and error sanitization tests** Die Prüfung hat zwei Lücken ergeben: fehlerhafte Ziel-URLs werden erst im Proxy validiert, und untypische Executor-Fehler können Headerwerte durchreichen. Beides wird am MCP-Rand gezielt abgefangen und getestet.
Author
Owner

💭 Agent progress

Ensuring URL executor validation and formatting tests

💭 **Agent progress** **Ensuring URL executor validation and formatting tests**
Author
Owner

💭 Agent progress

Planning targeted unit test rerun excluding e2e
Die reinen Paketprüfungen kompilieren; die vollständige Suite benötigt lokale Test-Listener und wird außerhalb der Sandbox erneut ausgeführt.

💭 **Agent progress** **Planning targeted unit test rerun excluding e2e** Die reinen Paketprüfungen kompilieren; die vollständige Suite benötigt lokale Test-Listener und wird außerhalb der Sandbox erneut ausgeführt.
Author
Owner

💭 Agent progress

Committing and pushing changes

💭 **Agent progress** **Committing and pushing changes**
Author
Owner

💭 Agent progress

Implementing error message sanitization

💭 **Agent progress** **Implementing error message sanitization**
Author
Owner

💭 Agent progress

Testing full functionality after commit

💭 **Agent progress** **Testing full functionality after commit**
Author
Owner

💭 Agent progress

Planning explicit commit escalation
URL-Validierung und Redaction sind getestet; der Commit benötigt Zugriff auf die gemeinsame Git-Worktree-Metadatenbank.

💭 **Agent progress** **Planning explicit commit escalation** URL-Validierung und Redaction sind getestet; der Commit benötigt Zugriff auf die gemeinsame Git-Worktree-Metadatenbank.
Author
Owner

💭 Agent progress

Planning full verification test
Commit aebe959 ist gepusht. Die vollständige Suite wird nochmals gegen den finalen Stand ausgeführt.

💭 **Agent progress** **Planning full verification test** Commit `aebe959` ist gepusht. Die vollständige Suite wird nochmals gegen den finalen Stand ausgeführt.
Author
Owner

💭 Agent progress

Planning PR content inspection

💭 **Agent progress** **Planning PR content inspection**
Author
Owner

Verify OK — agent reported Alles Implementiert

✅ **Verify OK** — agent reported Alles Implementiert
frank changed title from WIP: #9 MCP-Tools http_get und http_request bereitstellen to fix: #9 MCP-Tools http_get und http_request bereitstellen 2026-07-17 13:53:57 +02:00
Author
Owner

forge agent finished implementation

  • Commit: fix(mcp): validate tool URLs and redact execution errors
  • Pull request: #28
  • Next: waiting for CI / babysitting fixes if needed
internal/mcpserver/server.go      | 19 +++++++++++++++++--
 internal/mcpserver/server_test.go | 20 ++++++++++++++++++++
 2 files changed, 37 insertions(+), 2 deletions(-)
Agent output (tail)
Ich prüfe zuerst Architektur, bestehende MCP-/Tunnel-HTTP-Komponenten und Tests. Danach implementiere ich die Tools in kleinen, jeweils getesteten Commits und pushe jeden Commit direkt.Die bestehende Tunnel-Ausführung liegt derzeit auf der Connector-Seite; der ausgehende `private-proxy` beantwortet Requests noch mit „unavailable“. Ich ergänze daher zuerst eine serverseitige Tunnel-Client-Abstraktion und verlagere die HTTP-Ausführung an den privaten Proxy, bevor der MCP-Handler darauf aufsetzt.Der Tunnelpfad ist jetzt korrekt gerichtet: Der MCP-Prozess erzeugt Requests, der verbundene private Proxy führt sie mit seiner Policy-Engine aus und liefert Responses/Toolfehler zurück. Als Nächstes härte ich MCP-Eingabe, Timeout/Disconnect-Verhalten und die geforderten Schema-/Ergebnisfälle mit Tests ab.Der erste Commit ist gepusht: `b147eb4 feat(tunnel): execute requests on private proxy`. Er enthält Gateway, Disconnect-Fehler und die tatsächliche HTTP-Ausführung im privaten Proxy.Der zweite Commit ist gepusht: `1e24cd8 feat(mcp): expose private HTTP tools`. Er enthält Streamable HTTP, beide Tooldefinitionen, 2020-12-Schemas, strukturierte/kompakte Ergebnisse sowie Validation-, 4xx/5xx-, Timeout-, Truncation-, Policy- und Disconnect-Tests. Jetzt folgt der echte MCP→Tunnel→Proxy→Zielserver-Test und die Betriebsdokumentation.Der dritte Commit ist gepusht: `31c7260 test(mcp): cover private proxy end to end`. Der End-to-End-Test erreicht einen lokalen Zielserver über MCP, Tunnel und privaten Proxy; die vollständige Testsuite und `go vet ./...` sind grün. Ich führe noch die Race-Prüfung und den finalen Branch-Audit aus.PR_TITLE: MCP-Tools für sichere HTTP-Zugriffe bereitstellen
PR_BODY:
## Änderungen
- `http_get` und `http_request` mit MCP-2025-11-25-konformen Schemas und Annotationen
- Structured Content plus kompatibler TextContent
- HTTP-Ausführung über MCP → Tunnel → Private Proxy
- Validierungs-, Policy-, Timeout-, Truncation- und Disconnect-Fehler als Tool Execution Errors
- End-to-End-Test mit lokalem Zielserver
- Konfiguration und README aktualisiert
## Verifikation
- `go test ./...`
- `go test -race ./...`
- `go vet ./...`
Alle drei Commits wurden gepusht; Branch und Remote sind synchron.
Ich prüfe Tool-Registrierung, Schemas, Fehlersemantik und Tests gegen #9 und ergänze nur nachweisbare Lücken.Die vorhandene Implementierung deckt die Kernpfade ab; ich prüfe nun Konfiguration und Fehlerweitergabe auf Schema-/Redaktionslücken.Die Prüfung hat zwei Lücken ergeben: fehlerhafte Ziel-URLs werden erst im Proxy validiert, und untypische Executor-Fehler können Headerwerte durchreichen. Beides wird am MCP-Rand gezielt abgefangen und getestet.Die reinen Paketprüfungen kompilieren; die vollständige Suite benötigt lokale Test-Listener und wird außerhalb der Sandbox erneut ausgeführt.URL-Validierung und Redaction sind getestet; der Commit benötigt Zugriff auf die gemeinsame Git-Worktree-Metadatenbank.Commit `aebe959` ist gepusht. Die vollständige Suite wird nochmals gegen den finalen Stand ausgeführt.PR_TITLE: feat(mcp): expose private HTTP tools
PR_BODY:
Implements `http_get` and `http_request` over the private proxy, including MCP schemas, structured results, execution errors, E2E coverage, URL validation, and sensitive-header redaction.
Alles Implementiert
✅ **forge agent finished implementation** - Commit: `fix(mcp): validate tool URLs and redact execution errors` - Pull request: https://repository.hildebrandt.io/ai-tools/private-proxy-mcp/pulls/28 - Next: waiting for CI / babysitting fixes if needed ``` internal/mcpserver/server.go | 19 +++++++++++++++++-- internal/mcpserver/server_test.go | 20 ++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) ``` <details><summary>Agent output (tail)</summary> ``` Ich prüfe zuerst Architektur, bestehende MCP-/Tunnel-HTTP-Komponenten und Tests. Danach implementiere ich die Tools in kleinen, jeweils getesteten Commits und pushe jeden Commit direkt.Die bestehende Tunnel-Ausführung liegt derzeit auf der Connector-Seite; der ausgehende `private-proxy` beantwortet Requests noch mit „unavailable“. Ich ergänze daher zuerst eine serverseitige Tunnel-Client-Abstraktion und verlagere die HTTP-Ausführung an den privaten Proxy, bevor der MCP-Handler darauf aufsetzt.Der Tunnelpfad ist jetzt korrekt gerichtet: Der MCP-Prozess erzeugt Requests, der verbundene private Proxy führt sie mit seiner Policy-Engine aus und liefert Responses/Toolfehler zurück. Als Nächstes härte ich MCP-Eingabe, Timeout/Disconnect-Verhalten und die geforderten Schema-/Ergebnisfälle mit Tests ab.Der erste Commit ist gepusht: `b147eb4 feat(tunnel): execute requests on private proxy`. Er enthält Gateway, Disconnect-Fehler und die tatsächliche HTTP-Ausführung im privaten Proxy.Der zweite Commit ist gepusht: `1e24cd8 feat(mcp): expose private HTTP tools`. Er enthält Streamable HTTP, beide Tooldefinitionen, 2020-12-Schemas, strukturierte/kompakte Ergebnisse sowie Validation-, 4xx/5xx-, Timeout-, Truncation-, Policy- und Disconnect-Tests. Jetzt folgt der echte MCP→Tunnel→Proxy→Zielserver-Test und die Betriebsdokumentation.Der dritte Commit ist gepusht: `31c7260 test(mcp): cover private proxy end to end`. Der End-to-End-Test erreicht einen lokalen Zielserver über MCP, Tunnel und privaten Proxy; die vollständige Testsuite und `go vet ./...` sind grün. Ich führe noch die Race-Prüfung und den finalen Branch-Audit aus.PR_TITLE: MCP-Tools für sichere HTTP-Zugriffe bereitstellen PR_BODY: ## Änderungen - `http_get` und `http_request` mit MCP-2025-11-25-konformen Schemas und Annotationen - Structured Content plus kompatibler TextContent - HTTP-Ausführung über MCP → Tunnel → Private Proxy - Validierungs-, Policy-, Timeout-, Truncation- und Disconnect-Fehler als Tool Execution Errors - End-to-End-Test mit lokalem Zielserver - Konfiguration und README aktualisiert ## Verifikation - `go test ./...` - `go test -race ./...` - `go vet ./...` Alle drei Commits wurden gepusht; Branch und Remote sind synchron. Ich prüfe Tool-Registrierung, Schemas, Fehlersemantik und Tests gegen #9 und ergänze nur nachweisbare Lücken.Die vorhandene Implementierung deckt die Kernpfade ab; ich prüfe nun Konfiguration und Fehlerweitergabe auf Schema-/Redaktionslücken.Die Prüfung hat zwei Lücken ergeben: fehlerhafte Ziel-URLs werden erst im Proxy validiert, und untypische Executor-Fehler können Headerwerte durchreichen. Beides wird am MCP-Rand gezielt abgefangen und getestet.Die reinen Paketprüfungen kompilieren; die vollständige Suite benötigt lokale Test-Listener und wird außerhalb der Sandbox erneut ausgeführt.URL-Validierung und Redaction sind getestet; der Commit benötigt Zugriff auf die gemeinsame Git-Worktree-Metadatenbank.Commit `aebe959` ist gepusht. Die vollständige Suite wird nochmals gegen den finalen Stand ausgeführt.PR_TITLE: feat(mcp): expose private HTTP tools PR_BODY: Implements `http_get` and `http_request` over the private proxy, including MCP schemas, structured results, execution errors, E2E coverage, URL validation, and sensitive-header redaction. Alles Implementiert ``` </details>
Author
Owner

⚠️ Merge conflict detected (attempt 1/3)

Re-running coding agent to merge/rebase and resolve conflicts…

⚠️ **Merge conflict detected** (attempt 1/3) Re-running coding agent to merge/rebase and resolve conflicts…
Author
Owner

💭 Agent progress

Planning PR body update with exact markers
Implements http_get and http_request over the private proxy, including MCP schemas, structured results, execution errors, E2E coverage, URL validation, and sensitive-header redaction.

Preparing terse PR commentary
Rebasing the HTTP tools branch onto main, preserving both the proxy tool implementation and current base-branch changes.

💭 **Agent progress** **Planning PR body update with exact markers** Implements `http_get` and `http_request` over the private proxy, including MCP schemas, structured results, execution errors, E2E coverage, URL validation, and sensitive-header redaction. **Preparing terse PR commentary** Rebasing the HTTP tools branch onto `main`, preserving both the proxy tool implementation and current base-branch changes.
Author
Owner

💭 Agent progress

Executing git fetch for updates

💭 **Agent progress** **Executing git fetch for updates**
Author
Owner

💭 Agent progress

Starting codebase rebase
main adds the Streamable HTTP MCP transport and SDK update; resolving the overlap while retaining the new http_get/http_request tools.

💭 **Agent progress** **Starting codebase rebase** `main` adds the Streamable HTTP MCP transport and SDK update; resolving the overlap while retaining the new `http_get`/`http_request` tools.
Author
Owner

💭 Agent progress

Inspecting files and diffs

💭 **Agent progress** **Inspecting files and diffs**
Author
Owner

💭 Agent progress

Investigating SDK version handling

💭 **Agent progress** **Investigating SDK version handling**
Author
Owner

💭 Agent progress

Planning MCP types inspection

💭 **Agent progress** **Planning MCP types inspection**
Author
Owner

💭 Agent progress

Planning MCP server implementation with SDK

💭 **Agent progress** **Planning MCP server implementation with SDK**
Author
Owner

💭 Agent progress

Identifying remaining IsError cases

💭 **Agent progress** **Identifying remaining IsError cases**
Author
Owner

💭 Agent progress

Planning patch application and test adaptation

Planning manual patching and test preservation

💭 **Agent progress** **Planning patch application and test adaptation** **Planning manual patching and test preservation**
Author
Owner

💭 Agent progress

Checking root for markers context

💭 **Agent progress** **Checking root for markers context**
Author
Owner

💭 Agent progress

Removing leftover patch markers

💭 **Agent progress** **Removing leftover patch markers**
Author
Owner

💭 Agent progress

Planning server implementation with SDK handler

💭 **Agent progress** **Planning server implementation with SDK handler**
Author
Owner

💭 Agent progress

Identifying probable type alias

💭 **Agent progress** **Identifying probable type alias**
Author
Owner

💭 Agent progress

Investigating type generation in mcp.go

💭 **Agent progress** **Investigating type generation in mcp.go**
Author
Owner

💭 Agent progress

Considering type alias for Request

💭 **Agent progress** **Considering type alias for Request**
Author
Owner

💭 Agent progress

Planning full server delete implementation

💭 **Agent progress** **Planning full server delete implementation**
Author
Owner

💭 Agent progress

Planning test conflict resolution

💭 **Agent progress** **Planning test conflict resolution**
Author
Owner

💭 Agent progress

Skipping markers and formatting
Resolved the transport/tool integration around the SDK Streamable HTTP handler; validating the rebased implementation and compatibility tests now.

💭 **Agent progress** **Skipping markers and formatting** Resolved the transport/tool integration around the SDK Streamable HTTP handler; validating the rebased implementation and compatibility tests now.
Author
Owner

💭 Agent progress

Verifying git rebase editor status

💭 **Agent progress** **Verifying git rebase editor status**
Author
Owner

💭 Agent progress

Preparing git rebase with editor override

💭 **Agent progress** **Preparing git rebase with editor override**
Author
Owner

💭 Agent progress

Inspecting conflict details

💭 **Agent progress** **Inspecting conflict details**
Author
Owner

💭 Agent progress

Updating executionMessage with cancellation info

💭 **Agent progress** **Updating executionMessage with cancellation info**
Author
Owner

💭 Agent progress

Adding gofmt enforcement

💭 **Agent progress** **Adding gofmt enforcement**
Author
Owner

💭 Agent progress

Investigating malformed commit and conflicts

💭 **Agent progress** **Investigating malformed commit and conflicts**
Author
Owner

💭 Agent progress

Planning clean source retrieval and patching

Planning marker removal and patch application

💭 **Agent progress** **Planning clean source retrieval and patching** **Planning marker removal and patch application**
Author
Owner

💭 Agent progress

Planning test cleanup and patch application

💭 **Agent progress** **Planning test cleanup and patch application**
Author
Owner

💭 Agent progress

Checking ending balance

💭 **Agent progress** **Checking ending balance**
Author
Owner

💭 Agent progress

Fixing missing brace in case statement

💭 **Agent progress** **Fixing missing brace in case statement**
Author
Owner

💭 Agent progress

Testing simplified conflict resolution approach

💭 **Agent progress** **Testing simplified conflict resolution approach**
Author
Owner

💭 Agent progress

Planning gofmt testing

💭 **Agent progress** **Planning gofmt testing**
Author
Owner

💭 Agent progress

Testing GOCACHE temporary permit

💭 **Agent progress** **Testing GOCACHE temporary permit**
Author
Owner

💭 Agent progress

Editing e2e test for API changes

💭 **Agent progress** **Editing e2e test for API changes**
Author
Owner

💭 Agent progress

Planning MCP endpoint patch

💭 **Agent progress** **Planning MCP endpoint patch**
Author
Owner

💭 Agent progress

Refactoring e2e tests to SDK client

Testing direct tool handler call

💭 **Agent progress** **Refactoring e2e tests to SDK client** **Testing direct tool handler call**
Author
Owner

💭 Agent progress

Testing Structured Content map compilation

💭 **Agent progress** **Testing Structured Content map compilation**
Author
Owner

💭 Agent progress

Renaming server variable to mcpHTTP

💭 **Agent progress** **Renaming server variable to mcpHTTP**
Author
Owner

💭 Agent progress

Preparing to run tests

💭 **Agent progress** **Preparing to run tests**
Author
Owner

💭 Agent progress

Staging and rebasing changes
MCP tool calls now use the base branch’s session-aware Streamable HTTP lifecycle; URL validation and sensitive-error redaction remain covered.

💭 **Agent progress** **Staging and rebasing changes** MCP tool calls now use the base branch’s session-aware Streamable HTTP lifecycle; URL validation and sensitive-error redaction remain covered.
Author
Owner

💭 Agent progress

Preparing force-with-lease push due to rebase

💭 **Agent progress** **Preparing force-with-lease push due to rebase**
frank force-pushed agent/issue-9-mcp-tools-http-get-und-http-request-bere from aebe959965 to fa592a90ff 2026-07-17 14:01:08 +02:00 Compare
Author
Owner

🛠️ Pushed merge-conflict fix (attempt 1/3). Re-checking mergeability…

Rebasing the HTTP tools branch onto main, preserving both the proxy tool implementation and current base-branch changes.main adds the Streamable HTTP MCP transport and SDK update; resolving the overlap while retaining the new http_get/http_request tools.Resolved the transport/tool integration around the SDK Streamable HTTP handler; validating the rebased implementation and compatibility tests now.MCP tool calls now use the base branch’s session-aware Streamable HTTP lifecycle; URL validation and sensitive-error redaction remain covered.Rebased onto latest main, resolved MCP transport/tool conflicts, and force-pushed the updated PR branch.
go test ./... passes.

🛠️ Pushed merge-conflict fix (attempt 1/3). Re-checking mergeability… Rebasing the HTTP tools branch onto `main`, preserving both the proxy tool implementation and current base-branch changes.`main` adds the Streamable HTTP MCP transport and SDK update; resolving the overlap while retaining the new `http_get`/`http_request` tools.Resolved the transport/tool integration around the SDK Streamable HTTP handler; validating the rebased implementation and compatibility tests now.MCP tool calls now use the base branch’s session-aware Streamable HTTP lifecycle; URL validation and sensitive-error redaction remain covered.Rebased onto latest `main`, resolved MCP transport/tool conflicts, and force-pushed the updated PR branch. `go test ./...` passes.
Author
Owner

No CI / build job — skipping babysit.

⚪ **No CI / build job** — skipping babysit.
Author
Owner

📊 Agent usage (codex / ACP)

In tokens 1 530 (cached read 214 272)
Out tokens 404 (thought 145)
Limits context 80 112 / 258 400 · quota ok
Runtime 26m 13s
📊 **Agent usage** (`codex` / ACP) | | | | --- | --- | | In tokens | 1 530 (cached read 214 272) | | Out tokens | 404 (thought 145) | | Limits | context 80 112 / 258 400 · quota ok | | Runtime | 26m 13s |
Author
Owner

💭 Agent progress

Drafting concise PR comment including test note
Rebased onto latest main, resolved MCP transport/tool conflicts, and force-pushed the updated PR branch.
go test ./... passes.

💭 **Agent progress** **Drafting concise PR comment including test note** Rebased onto latest `main`, resolved MCP transport/tool conflicts, and force-pushed the updated PR branch. `go test ./...` passes.
frank merged commit 1981a41c15 into main 2026-07-17 14:03:36 +02:00
frank deleted branch agent/issue-9-mcp-tools-http-get-und-http-request-bere 2026-07-17 14:03:36 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ai-tools/private-proxy-mcp!28
No description provided.