From 81b5f1dde92382cd654dad06b937d41f49d2d6d7 Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Wed, 17 Jun 2026 14:19:19 +0200 Subject: [PATCH] mcp --- api/src/mcp/mcp-server.service.ts | 6 ++++-- docker/nginx.conf | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/src/mcp/mcp-server.service.ts b/api/src/mcp/mcp-server.service.ts index 4a529ff..cb24be5 100644 --- a/api/src/mcp/mcp-server.service.ts +++ b/api/src/mcp/mcp-server.service.ts @@ -65,13 +65,15 @@ export class McpServerService { return; } - const pathname = new URL(request.url ?? '/', 'http://localhost').pathname; - if (pathname !== '/mcp') { + const url = new URL(request.url ?? '/', 'http://localhost'); + if (!['/mcp', '/mcp/', '/api/mcp', '/api/mcp/'].includes(url.pathname)) { response.writeHead(404, { 'content-type': 'application/json' }); response.end(JSON.stringify({ error: 'Not found' })); return; } + request.url = `/mcp${url.search}`; + if (!this.isAuthorized(request)) { response.writeHead(401, { 'content-type': 'application/json' }); response.end(JSON.stringify({ error: 'Unauthorized' })); diff --git a/docker/nginx.conf b/docker/nginx.conf index 886b994..419abfa 100644 --- a/docker/nginx.conf +++ b/docker/nginx.conf @@ -33,7 +33,7 @@ server { proxy_pass http://127.0.0.1:3000; } - location = /mcp { + location ~ ^/(api/)?mcp/?$ { proxy_http_version 1.1; proxy_buffering off; proxy_cache off; @@ -43,6 +43,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Prefix /mcp; proxy_pass http://127.0.0.1:3001; }