Skip to main content
Glama

MCP Auth Server

test_step5.shโ€ข4.25 kB
#!/bin/bash # Test script for Step 5: Basic JWT Infrastructure echo "๐Ÿงช Testing Step 5: Basic JWT Infrastructure" echo "============================================" # Function to cleanup background processes cleanup() { echo "๐Ÿงน Cleaning up..." if [ ! -z "$SERVER_PID" ]; then kill $SERVER_PID 2>/dev/null wait $SERVER_PID 2>/dev/null fi exit 0 } # Set trap to cleanup on script exit trap cleanup EXIT INT TERM # Check if public key exists, if not generate one if [ ! -f "mcp_public_key.pem" ]; then echo "๐Ÿ”‘ No public key found, generating key pair..." uv run python generate_token.py --generate-keys if [ $? -ne 0 ]; then echo "โŒ Failed to generate key pair" exit 1 fi fi # Start the server in background echo "๐Ÿš€ Starting Step 5 server..." uv run step5 & SERVER_PID=$! # Wait for server to start echo "โณ Waiting for server to start..." sleep 3 # Test health endpoint echo "๐Ÿ” Testing health endpoint..." HEALTH_RESPONSE=$(curl -s http://localhost:9000/health) if [ $? -eq 0 ]; then echo "โœ… Health endpoint test passed!" echo "๐Ÿ“„ Response: $HEALTH_RESPONSE" # Check if JWT is enabled if echo "$HEALTH_RESPONSE" | grep -q '"jwt_enabled":true'; then echo "โœ… JWT infrastructure is enabled!" else echo "โš ๏ธ JWT infrastructure is not enabled" fi else echo "โŒ Health endpoint test failed!" exit 1 fi # Test JWKS endpoint echo "๐Ÿ” Testing JWKS endpoint..." JWKS_RESPONSE=$(curl -s http://localhost:9000/.well-known/jwks.json) if [ $? -eq 0 ]; then echo "โœ… JWKS endpoint test passed!" echo "๐Ÿ“„ Response: $JWKS_RESPONSE" # Check if JWKS contains keys if echo "$JWKS_RESPONSE" | grep -q '"keys"'; then echo "โœ… JWKS contains public key!" else echo "โŒ JWKS does not contain keys" exit 1 fi else echo "โŒ JWKS endpoint test failed!" exit 1 fi # Test MCP initialize method echo "๐Ÿ” Testing MCP initialize method..." INIT_RESPONSE=$(curl -s -X POST http://localhost:9000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "initialize"}') if [ $? -eq 0 ]; then echo "โœ… MCP initialize test passed!" echo "๐Ÿ“„ Response: $INIT_RESPONSE" # Check if response contains JWT info if echo "$INIT_RESPONSE" | grep -q '"jwt_enabled"'; then echo "โœ… Initialize response includes JWT status!" else echo "โŒ Initialize response missing JWT status" exit 1 fi else echo "โŒ MCP initialize test failed!" exit 1 fi # Test list_tools method echo "๐Ÿ” Testing list_tools method..." TOOLS_RESPONSE=$(curl -s -X POST http://localhost:9000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}') if [ $? -eq 0 ]; then echo "โœ… list_tools test passed!" echo "๐Ÿ“„ Response: $TOOLS_RESPONSE" # Check if response contains tools if echo "$TOOLS_RESPONSE" | grep -q '"name":"echo"'; then echo "โœ… Echo tool is listed correctly!" else echo "โŒ Echo tool not found in response!" exit 1 fi else echo "โŒ list_tools test failed!" exit 1 fi # Test call_tool method echo "๐Ÿ” Testing call_tool method..." CALL_TOOL_RESPONSE=$(curl -s -X POST http://localhost:9000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "echo", "arguments": {"message": "Hello World", "repeat_count": 3}}}') if [ $? -eq 0 ]; then echo "โœ… call_tool test passed!" echo "๐Ÿ“„ Response: $CALL_TOOL_RESPONSE" # Check if response contains the echoed message if echo "$CALL_TOOL_RESPONSE" | grep -q 'Hello WorldHello WorldHello World'; then echo "โœ… Echo tool works correctly!" else echo "โŒ Echo tool response is incorrect!" exit 1 fi else echo "โŒ call_tool test failed!" exit 1 fi echo "" echo "๐ŸŽ‰ Step 5 tests completed successfully!" echo "โœ… JWT infrastructure is in place" echo "โœ… JWKS endpoint is working" echo "โœ… All existing MCP functionality still works" echo "โœ… Ready for next step: JWT token validation"

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/christian-posta/mcp-auth-step-by-step'

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