3939
4040# Server configuration
4141SERVER_NAME = "Dr. Strunz Knowledge MCP Server"
42- SERVER_VERSION = "0.9.8 "
42+ SERVER_VERSION = "0.9.9 "
4343PROTOCOL_VERSION = "2025-03-26"
4444
4545# Track server start time for uptime calculation
@@ -295,7 +295,7 @@ async def health_check():
295295 return JSONResponse ({
296296 "status" : "healthy" ,
297297 "server" : "Dr. Strunz Knowledge MCP Server" ,
298- "version" : "0.9.8 " ,
298+ "version" : "0.9.9 " ,
299299 "timestamp" : datetime .now ().isoformat ()
300300 }, status_code = 200 )
301301
@@ -309,7 +309,7 @@ async def health_check():
309309 response_data = {
310310 "status" : health_status ["overall" ],
311311 "server" : "Dr. Strunz Knowledge MCP Server" ,
312- "version" : "0.9.8 " ,
312+ "version" : "0.9.9 " ,
313313 "protocol_version" : PROTOCOL_VERSION ,
314314 "transport" : "sse" ,
315315 "timestamp" : datetime .now ().isoformat (),
@@ -353,7 +353,7 @@ async def health_check():
353353 return JSONResponse ({
354354 "status" : "healthy" ,
355355 "server" : "Dr. Strunz Knowledge MCP Server" ,
356- "version" : "0.9.8 " ,
356+ "version" : "0.9.9 " ,
357357 "timestamp" : datetime .now ().isoformat (),
358358 "error" : str (e ),
359359 "railway" : {
@@ -376,7 +376,7 @@ async def detailed_health_check():
376376 diagnostics = {
377377 "server_info" : {
378378 "name" : "Dr. Strunz Knowledge MCP Server" ,
379- "version" : "0.9.8 " ,
379+ "version" : "0.9.9 " ,
380380 "protocol_version" : PROTOCOL_VERSION ,
381381 "transport" : "sse" ,
382382 "start_time" : datetime .fromtimestamp (start_time ).isoformat (),
@@ -443,7 +443,7 @@ async def railway_status():
443443 "health_status" : health_status ["overall" ],
444444 "deployment_timestamp" : datetime .now ().isoformat (),
445445 "uptime_seconds" : round (time .time () - start_time , 2 ),
446- "version" : "0.9.8 " ,
446+ "version" : "0.9.9 " ,
447447 "ready_for_traffic" : health_status ["overall" ] in ["healthy" , "degraded" ],
448448 "critical_services" : {
449449 "vector_store" : health_status ["checks" ].get ("vector_store" , {}).get ("status" , "unknown" ),
@@ -477,7 +477,7 @@ async def debug_env():
477477 "CLAUDE_AI_SKIP_OAUTH" : os .environ .get ("CLAUDE_AI_SKIP_OAUTH" , "not_set" ),
478478 "CLAUDE_AI_MINIMAL_OAUTH" : os .environ .get ("CLAUDE_AI_MINIMAL_OAUTH" , "not_set" ),
479479 "RAILWAY_ENVIRONMENT" : os .environ .get ("RAILWAY_ENVIRONMENT" , "not_set" ),
480- "version" : "0.9.8 " ,
480+ "version" : "0.9.9 " ,
481481 "oauth_mode" : "minimal" if os .environ .get ("CLAUDE_AI_MINIMAL_OAUTH" , "false" ).lower () == "true" else ("disabled" if os .environ .get ("CLAUDE_AI_SKIP_OAUTH" , "true" ).lower () == "true" else "full" )
482482 })
483483
@@ -542,7 +542,7 @@ async def event_generator():
542542 },
543543 "serverInfo" : {
544544 "name" : "Dr. Strunz Knowledge MCP Server" ,
545- "version" : "0.9.8 "
545+ "version" : "0.9.9 "
546546 }
547547 },
548548 "id" : init_data .get ("id" )
@@ -594,6 +594,7 @@ async def event_generator():
594594
595595@app .post ("/messages" )
596596@app .post ("/messages/" )
597+ @app .post ("/mcp" ) # Claude.ai sometimes uses /mcp instead of /messages
597598async def messages_endpoint (request : Request , session_id : Optional [str ] = Query (None ), user = Depends (get_current_user )):
598599 """
599600 Messages endpoint for MCP requests.
@@ -675,7 +676,7 @@ def handle_initialize(params: Dict) -> Dict:
675676 },
676677 "serverInfo" : {
677678 "name" : "Dr. Strunz Knowledge MCP Server" ,
678- "version" : "0.9.8 "
679+ "version" : "0.9.9 "
679680 }
680681 }
681682 }
@@ -825,6 +826,7 @@ async def oauth_protected_resource():
825826 }
826827
827828@app .post ("/oauth/register" )
829+ @app .post ("/register" ) # Claude.ai uses /register instead of /oauth/register
828830async def register_client (request : Request ):
829831 """Dynamic Client Registration (RFC 7591)"""
830832 # If minimal OAuth is enabled, let minimal_oauth handle this
0 commit comments