inspect-schema.js•1.64 kB
// Script to inspect the MCP SDK's InitializeRequestSchema
import { InitializeRequestSchema } from '@modelcontextprotocol/sdk/types.js';
console.log('Inspecting InitializeRequestSchema...\n');
// Log the schema structure
try {
console.log('Schema structure:');
console.log(JSON.stringify(InitializeRequestSchema, null, 2));
// If it's a Zod schema, we can inspect its shape
if (typeof InitializeRequestSchema === 'object' && '_def' in InitializeRequestSchema) {
console.log('\nSchema shape:');
console.log(JSON.stringify(InitializeRequestSchema._def, null, 2));
// Try to get the shape if it's a Zod object
if (typeof InitializeRequestSchema.shape === 'function') {
console.log('\nShape:');
console.log(InitializeRequestSchema.shape());
}
}
// Try to get the type if possible
if (typeof InitializeRequestSchema._type === 'function') {
console.log('\nType:');
console.log(InitializeRequestSchema._type());
}
// Try to parse a valid request
const testRequest = {
jsonrpc: '2.0',
method: 'mcp.initialize',
params: {
// Try different variations
client_name: 'test-client',
client_version: '1.0.0',
capabilities: {}
},
id: 1
};
console.log('\nTesting with request:', JSON.stringify(testRequest, null, 2));
const result = InitializeRequestSchema.safeParse(testRequest);
console.log('Parse result:', result);
if (!result.success) {
console.log('\nValidation errors:');
console.log(JSON.stringify(result.error.issues, null, 2));
}
} catch (error) {
console.error('Error inspecting schema:', error);
}