test-session-id.js•1.98 kB
// Simple test script to verify session ID handling with the MCP server
import axios from 'axios';
const MCP_SERVER_URL = 'http://localhost:5002/mcp';
async function testSessionHandling() {
try {
// 1. Initialize the session
console.log('1. Initializing session...');
const initResponse = await axios.post(MCP_SERVER_URL, {
jsonrpc: '2.0',
method: 'initialize',
params: {
protocolVersion: '1.0',
clientInfo: { name: 'test-session', version: '1.0.0' },
capabilities: {}
},
id: 1
});
// 2. Extract session ID from response headers (case-insensitive)
const headers = initResponse.headers || {};
const sessionHeader = Object.entries(headers).find(
([key]) => key.toLowerCase() === 'mcp-session-id'
);
if (!sessionHeader) {
console.error('No session ID in response headers');
console.log('Response headers:', headers);
return;
}
const sessionId = sessionHeader[1];
console.log('Session ID:', sessionId);
// 3. Make a request with the session ID
console.log('\n2. Making request with session ID...');
const toolsResponse = await axios.post(MCP_SERVER_URL, {
jsonrpc: '2.0',
method: 'mcp.list_tools',
params: {},
id: 2
}, {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json, text/event-stream',
'mcp-session-id': sessionId
}
});
console.log('Response status:', toolsResponse.status);
console.log('Response headers:', toolsResponse.headers);
console.log('Response data:', toolsResponse.data);
} catch (error) {
console.error('Test failed:', error.message);
if (error.response) {
console.error('Response status:', error.response.status);
console.error('Response headers:', error.response.headers);
console.error('Response data:', error.response.data);
}
}
}
testSessionHandling();