Releases: longevitycoach/StrunzKnowledge
v0.9.8: Fix Claude.ai POST SSE Initialization
What's Fixed
Based on Railway logs analysis, this release fixes Claude.ai's specific SSE initialization protocol.
Issue Identified
Railway logs showed Claude.ai sends:
POST /sse with initialization data:
{'method': 'initialize', 'params': {'protocolVersion': '2025-03-26', 'capabilities': {}, 'clientInfo': {'name': 'Anthropic/ClaudeAI', 'version': '1.0.0'}}, 'jsonrpc': '2.0', 'id': 0}
But our v0.9.7 was treating all requests the same way.
Key Changes
- Dual SSE Protocol: Different behavior for Claude.ai POST vs browser GET
- POST requests: Handle JSON-RPC initialization, return structured responses
- GET requests: Simple endpoint/ping format for browsers
- Claude.ai Protocol: Returns proper initialization response to POST /sse
- Initialization Response: Proper JSON-RPC format with capabilities and server info
- Ping Format: JSON format for Claude.ai, simple timestamp for browsers
Technical Details
// For Claude.ai POST requests:
event: message
data: {"jsonrpc": "2.0", "result": {...}, "id": 0}
event: ping
data: {"timestamp": "2025-07-26T17:00:00.000Z"}
// For browser GET requests:
event: endpoint
data: /messages/?session_id=...
event: ping
data: 2025-07-26 17:00:00.000000+00:00This should finally resolve the Claude.ai MCP connector issue by properly handling its specific initialization protocol!
v0.9.7: Implement Exact SSE Format from Working Server
What's Fixed
This release implements the exact SSE (Server-Sent Events) format used by the working bloodtest-mcp-server, based on careful analysis of its output.
Key Changes
- SSE Format Aligned: Matches the proven working format exactly
- Initial event:
event: endpointwithdata: /messages/?session_id=... - Ping events: Simple timestamp format
data: 2025-07-26 16:24:21.278229+00:00
- Initial event:
- Messages Endpoint: Now accepts session_id as query parameter
- Route Flexibility: Added /messages/ with trailing slash support
- Ping Interval: Reduced to 15 seconds to match working server
Technical Details
The working server sends a much simpler SSE format:
event: endpoint
data: /messages/?session_id=2f4f0dc386ec484881b35b993833864f
: ping - 2025-07-26 16:24:21.278229+00:00
Our previous implementation was sending JSON-RPC formatted messages, which Claude.ai wasn't expecting.
Combined with v0.9.6
This release includes all changes from v0.9.6:
- Removed MCP resource discovery endpoint
- OAuth endpoints return 404 when disabled
- SSE endpoint returns proper headers for HEAD requests
This should finally resolve the Claude.ai MCP connector issue by matching the exact protocol of a known working server!
v0.9.6: Remove MCP Resource Discovery for Claude.ai Compatibility
What's Fixed
Based on investigation of a working MCP server (bloodtest-mcp-server), this release removes the MCP resource discovery endpoint that was causing Claude.ai connection issues.
Key Changes
- Removed MCP Resource Discovery: Commented out the endpoint entirely
- Discovery: Working MCP servers don't have resource discovery endpoints at all
- OAuth Simplified: Reverted to configuration
- SSE Headers Fixed: HEAD requests now return proper SSE content-type headers
Technical Details
The investigation revealed that the working bloodtest-mcp-server at https://supplement-therapy.up.railway.app/sse:
- Returns 404 for endpoint
- Returns 404 for all OAuth endpoints
- Returns proper SSE headers for endpoint
- Works perfectly with Claude.ai
This release aligns our server with this working pattern.
Testing
- Removed MCP resource discovery endpoint
- OAuth endpoints return 404 when disabled
- SSE endpoint returns proper headers
- All 20 tools remain exposed and functional
This should finally resolve the Claude.ai MCP connector disabled issue!
v0.9.5: Minimal OAuth Implementation for Claude.ai
🔐 Minimal OAuth for Claude.ai Compatibility
This release implements a minimal OAuth flow that auto-approves Claude.ai connections without requiring actual authentication.
Why This Change?
Claude.ai continues to attempt OAuth authentication even when we tell it OAuth is not enabled. This minimal implementation satisfies Claude.ai's OAuth requirements while not requiring any actual authentication.
What's New
- Minimal OAuth implementation that auto-approves Claude.ai
- OAuth flow returns proper 302 redirects with authorization codes
- Token endpoint returns dummy bearer tokens
- All without requiring actual authentication
Configuration
Set these environment variables in Railway:
- CLAUDE_AI_SKIP_OAUTH=false
- CLAUDE_AI_MINIMAL_OAUTH=true
How It Works
- Claude.ai requests /authorize → Server auto-approves and redirects with auth code
- Claude.ai exchanges code for token → Server returns dummy bearer token
- Claude.ai can now connect to the MCP server
Testing
Check the OAuth mode:
curl https://strunz.up.railway.app/debug/env
# Should show: oauth_mode: minimalTest authorize endpoint:
curl -I 'https://strunz.up.railway.app/authorize?client_id=claude_test&redirect_uri=https://claude.ai/callback'
# Should return: 302 redirect🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
v0.9.4: Claude.ai OAuth URL Pattern Fix
🔧 URL Pattern Fix for Claude.ai
This release adds support for Claude.ai's OAuth URL pattern where it uses instead of .
What's Fixed
- Added route that returns 404 when OAuth is disabled
- This prevents Claude.ai from getting confused by missing routes
- The route properly respects the CLAUDE_AI_SKIP_OAUTH=true setting
Current OAuth Status
When CLAUDE_AI_SKIP_OAUTH=true (default):
- All OAuth endpoints return 404 'OAuth not enabled'
- MCP resource discovery has no authentication field
- Server operates without any authentication
Testing
Test the new route:
curl https://strunz.up.railway.app/authorize
# Should return: {"detail":"OAuth not enabled"}Previous Fixes (v0.9.3)
- Added CLAUDE_AI_SKIP_OAUTH to railway.toml
- OAuth discovery endpoints return 404 when disabled
- Debug endpoint at /debug/env
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
v0.9.3: Railway Configuration Fix for Claude.ai
🔧 Configuration Fix for Claude.ai OAuth Bypass
This release ensures the CLAUDE_AI_SKIP_OAUTH environment variable is properly configured in Railway deployments.
What's Fixed
- Added CLAUDE_AI_SKIP_OAUTH=true to railway.toml configuration
- This ensures OAuth endpoints return 404 for Claude.ai compatibility
- Added debug endpoint (/debug/env) to verify environment variables
Alternative Solution
- Created railway_claude_ai_noauth.py as a backup solution that completely removes OAuth endpoints
How to Verify
- After deployment, check https://strunz.up.railway.app/debug/env
- Verify CLAUDE_AI_SKIP_OAUTH is set to 'true'
- Test OAuth endpoints return 404:
Next Steps
If the environment variable approach doesn't work:
- Manually set CLAUDE_AI_SKIP_OAUTH=true in Railway dashboard
- Or use the no-auth deployment script as alternative
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
v0.9.2: Debug Release for Claude.ai OAuth Issue
🐛 Debug Release
This release adds a debug endpoint to verify environment variable settings on Railway.
What's New
- Added endpoint to check CLAUDE_AI_SKIP_OAUTH environment variable status
- This helps diagnose why OAuth endpoints are still responding even with the skip flag set
Debug Steps
- Check https://strunz.up.railway.app/debug/env
- Verify CLAUDE_AI_SKIP_OAUTH is set to 'true'
- If not set, configure it in Railway environment variables
Previous Fix (v0.9.1)
- OAuth endpoints return 404 when CLAUDE_AI_SKIP_OAUTH=true
- MCP resource discovery excludes authentication field
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
v0.9.1: Claude.ai Connector Fix
🐛 Bug Fix Release
What's Fixed
- Claude.ai MCP connector disabled issue - Fixed authentication conflict that prevented Claude.ai from connecting to the MCP server
Changes
- Modified
/.well-known/mcp/resourceendpoint to conditionally exclude OAuth authentication whenCLAUDE_AI_SKIP_OAUTH=true - Added Claude.ai specific endpoints:
/api/organizations/{org_id}/mcp/start-auth/{auth_id}/api/mcp/auth_callback/api/callback
- Added environment variable
CLAUDE_AI_SKIP_OAUTH=true(default) to skip OAuth for Claude.ai - Updated .env.example with new configuration
Root Cause
Claude.ai doesn't support OAuth authentication for remote MCP servers, but our resource discovery endpoint was advertising OAuth2 as required. This caused Claude.ai to disable the connector.
User Instructions
After this release is deployed:
- Set the Railway environment variable:
CLAUDE_AI_SKIP_OAUTH=true - Remove the existing MCP server from Claude.ai if present
- Re-add the MCP server URL:
https://strunz.up.railway.app - The connector should now be enabled automatically without authentication
Technical Details
- Based on research showing widespread Claude.ai OAuth issues with remote MCP servers
- Aligns with community reports from GitHub issues #1178, #2267, #1611 in anthropics/claude-code
- OAuth is now optional and only shown when explicitly enabled
Commits
- 764a674 - fix: Claude.ai MCP connector authentication issue
- 4973080 - chore: Update version to 0.9.1 for Claude.ai bugfix release
Full Changelog: v0.9.0...v0.9.1
v0.9.0: Unified Architecture Implementation
Major architectural unification release that eliminates fragmentation issues.
What's New
- Unified main.py entry point with automatic transport detection
- Single requirements-unified.txt replacing 4 separate files
- Support for both stdio (Claude Desktop) and HTTP/SSE (Railway)
- Simplified deployment configuration
Fixed Issues
- Resolved v0.8.1-v0.8.5 deployment cascade failures
- Eliminated duplicate requirements files confusion
- Unified server selection logic
Technical Changes
- Consolidated 4 requirements files into 1
- Unified main.py handles transport auto-detection
- Simplified Railway deployment
- Updated all components to v0.9.0
This release addresses the root cause of recent deployment issues through architectural simplification.
v0.8.5: Fix Missing Dependencies & Health Path
🚨 CRITICAL: Fix Module Not Found & Health Check
This release fixes the remaining deployment issues.
❌ Problems Fixed
-
Missing FastAPI Dependencies
- Error:
No module named 'fastapi' - Added to requirements-prod.txt:
- fastapi==0.111.0
- uvicorn==0.30.1
- sse-starlette==2.1.0
- Error:
-
Health Check Path
- Changed from
/railway-healthto/(root) - Using standard endpoint that exists
- Simpler and more reliable
- Changed from
✅ Expected Result
Railway should now:
- Install FastAPI dependencies during build
- Start the server successfully
- Pass health checks on
/endpoint - Deploy the service
📝 Lessons Learned
This series of releases (v0.8.1 through v0.8.5) highlighted several critical oversights:
- Always test dependency changes in production environment
- Verify health check paths match actual endpoints
- Test the complete deployment pipeline, not just code
Deployment should finally succeed with this release.