Skip to content

Commit f2d5d5e

Browse files
Robbie1977claude
andcommitted
chore: add IP diagnostic dump on tools/list for proxy header debugging
Dumps all IP-related headers (x-forwarded-for, x-real-ip, cf-connecting-ip, true-client-ip, x-client-ip, forwarded, x-original-forwarded-for) plus req.ip, req.ips, and full headers on tools/list requests to diagnose whether HA proxy is forwarding client IP. Bump version to 1.6.1. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b9a841f commit f2d5d5e

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vfb3-mcp",
3-
"version": "1.6.0",
3+
"version": "1.6.1",
44
"description": "MCP server for VirtualFlyBrain API integration",
55
"main": "index.js",
66
"scripts": {

src/index.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import cors from 'cors';
1212
import express from 'express';
1313
import { randomUUID } from 'node:crypto';
1414

15-
const VERSION = '1.6.0';
15+
const VERSION = '1.6.1';
1616

1717
// GA4 Analytics configuration
1818
const GA_MEASUREMENT_ID = process.env.GA_MEASUREMENT_ID || 'G-K7DDZVVXM7';
@@ -799,6 +799,26 @@ async function runHttpMode() {
799799
const requestLine = requestJson.replace(/\s+/g, ' ').trim();
800800
console.error(`MCP Debug: HTTP request: POST / client_ip=${clientIp} - body: ${requestLine}`);
801801

802+
// Diagnostic: dump all IP-related info on tools/list to help debug proxy headers
803+
if (requestBody.method === 'tools/list') {
804+
console.error('MCP Debug: === IP diagnostic dump for tools/list ===');
805+
console.error(` req.ip: ${req.ip}`);
806+
console.error(` req.ips: ${JSON.stringify(req.ips)}`);
807+
console.error(` req.socket.remoteAddress: ${req.socket?.remoteAddress}`);
808+
console.error(` req.connection.remoteAddress: ${req.connection?.remoteAddress}`);
809+
console.error(` x-forwarded-for: ${req.headers['x-forwarded-for'] || '(not set)'}`);
810+
console.error(` x-real-ip: ${req.headers['x-real-ip'] || '(not set)'}`);
811+
console.error(` x-forwarded-host: ${req.headers['x-forwarded-host'] || '(not set)'}`);
812+
console.error(` x-forwarded-proto: ${req.headers['x-forwarded-proto'] || '(not set)'}`);
813+
console.error(` forwarded: ${req.headers['forwarded'] || '(not set)'}`);
814+
console.error(` cf-connecting-ip: ${req.headers['cf-connecting-ip'] || '(not set)'}`);
815+
console.error(` true-client-ip: ${req.headers['true-client-ip'] || '(not set)'}`);
816+
console.error(` x-client-ip: ${req.headers['x-client-ip'] || '(not set)'}`);
817+
console.error(` x-original-forwarded-for: ${req.headers['x-original-forwarded-for'] || '(not set)'}`);
818+
console.error(` All headers: ${JSON.stringify(req.headers)}`);
819+
console.error('MCP Debug: === end IP diagnostic dump ===');
820+
}
821+
802822
// Create a fresh server and transport for every request.
803823
// sessionIdGenerator: undefined = stateless mode — no session ID is
804824
// generated, returned, or validated. Any replica can handle any request.

0 commit comments

Comments
 (0)