Skip to content

Releases: longevitycoach/StrunzKnowledge

v0.9.8: Fix Claude.ai POST SSE Initialization

26 Jul 17:03

Choose a tag to compare

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:00

This 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

26 Jul 16:48

Choose a tag to compare

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: endpoint with data: /messages/?session_id=...
    • Ping events: Simple timestamp format data: 2025-07-26 16:24:21.278229+00:00
  • 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

26 Jul 16:30

Choose a tag to compare

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

26 Jul 16:11

Choose a tag to compare

🔐 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

  1. Claude.ai requests /authorize → Server auto-approves and redirects with auth code
  2. Claude.ai exchanges code for token → Server returns dummy bearer token
  3. 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: minimal

Test 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

26 Jul 11:09

Choose a tag to compare

🔧 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

26 Jul 10:56

Choose a tag to compare

🔧 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

  1. After deployment, check https://strunz.up.railway.app/debug/env
  2. Verify CLAUDE_AI_SKIP_OAUTH is set to 'true'
  3. Test OAuth endpoints return 404:

Next Steps

If the environment variable approach doesn't work:

  1. Manually set CLAUDE_AI_SKIP_OAUTH=true in Railway dashboard
  2. 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

26 Jul 10:51

Choose a tag to compare

🐛 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

  1. Check https://strunz.up.railway.app/debug/env
  2. Verify CLAUDE_AI_SKIP_OAUTH is set to 'true'
  3. 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

26 Jul 09:18

Choose a tag to compare

🐛 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/resource endpoint to conditionally exclude OAuth authentication when CLAUDE_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:

  1. Set the Railway environment variable: CLAUDE_AI_SKIP_OAUTH=true
  2. Remove the existing MCP server from Claude.ai if present
  3. Re-add the MCP server URL: https://strunz.up.railway.app
  4. 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

24 Jul 16:28

Choose a tag to compare

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

24 Jul 10:59

Choose a tag to compare

🚨 CRITICAL: Fix Module Not Found & Health Check

This release fixes the remaining deployment issues.

❌ Problems Fixed

  1. 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
  2. Health Check Path

    • Changed from /railway-health to / (root)
    • Using standard endpoint that exists
    • Simpler and more reliable

✅ Expected Result

Railway should now:

  1. Install FastAPI dependencies during build
  2. Start the server successfully
  3. Pass health checks on / endpoint
  4. 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.