Skip to main content
Glama
intecrel

Industrial MCP Server

by intecrel
route.tsβ€’2.94 kB
/** * Debug endpoint to capture and log Claude.ai root endpoint attempts */ import { NextRequest, NextResponse } from 'next/server'; import { applyCORSHeaders } from '../../../lib/security/cors-config'; export async function POST(request: NextRequest) { console.log('🚨 === ROOT DEBUG ENDPOINT - CLAUDE.AI POST DETECTED ==='); const userAgent = request.headers.get('user-agent') || ''; const clientIP = request.headers.get('x-forwarded-for') || 'unknown'; const contentType = request.headers.get('content-type') || ''; const acceptHeader = request.headers.get('accept') || ''; const authHeader = request.headers.get('authorization') || ''; console.log(`πŸ” Root Debug Request Details:`); console.log(` πŸ“‹ User-Agent: ${userAgent}`); console.log(` πŸ“‹ Client IP: ${clientIP}`); console.log(` πŸ“‹ Content-Type: ${contentType}`); console.log(` πŸ“‹ Accept: ${acceptHeader}`); console.log(` πŸ“‹ Authorization: ${authHeader ? 'Bearer token present' : 'No auth header'}`); console.log(` πŸ“‹ URL: ${request.url}`); console.log(` πŸ“‹ Method: ${request.method}`); // Check if this looks like a Claude.ai request const isClaudeAI = userAgent.toLowerCase().includes('claude') || userAgent.toLowerCase().includes('anthropic') || userAgent.includes('Claude-User'); if (isClaudeAI) { console.log('πŸ€– CLAUDE.AI REQUEST CONFIRMED!'); } // Try to parse the request body let requestBody: any = null; try { const body = await request.text(); console.log(`πŸ“ Request Body: ${body.substring(0, 500)}${body.length > 500 ? '...' : ''}`); if (body) { requestBody = JSON.parse(body); console.log(`πŸ“‘ Parsed JSON: ${JSON.stringify(requestBody, null, 2)}`); } } catch (error) { console.log(`❌ Error parsing request body: ${error instanceof Error ? error.message : String(error)}`); } // Always redirect to the correct MCP endpoint const baseUrl = request.nextUrl.origin; console.log(`πŸ”„ Redirecting to correct MCP endpoint: ${baseUrl}/api`); const response = NextResponse.json({ message: "Claude.ai request detected and logged", redirect_to: `${baseUrl}/api`, discovered_claude_ai: isClaudeAI, user_agent: userAgent, timestamp: new Date().toISOString() }, { status: 200, headers: { 'Content-Type': 'application/json', 'Location': `${baseUrl}/api` } }); applyCORSHeaders(request, response, process.env.NODE_ENV as any); console.log('🚨 === END ROOT DEBUG ENDPOINT ==='); return response; } export async function GET(request: NextRequest) { console.log('πŸ”„ GET request to root debug endpoint'); const response = NextResponse.json({ message: "Root debug endpoint - monitoring Claude.ai connection attempts" }); applyCORSHeaders(request, response, process.env.NODE_ENV as any); return response; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/intecrel/industrial-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server