test_step3.shโข4.85 kB
#!/bin/bash
# Test script for Step 3: MCP Tools and Prompts
echo "๐งช Testing Step 3: MCP Tools and Prompts"
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
# Start the server in background
echo "๐ Starting Step 3 server..."
uv run step3 &
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"
else
echo "โ Health endpoint test failed!"
exit 1
fi
# Test MCP ping method
echo "๐ Testing MCP ping method..."
PING_RESPONSE=$(curl -s -X POST http://localhost:9000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "ping"}')
if [ $? -eq 0 ]; then
echo "โ
MCP ping test passed!"
echo "๐ Response: $PING_RESPONSE"
else
echo "โ MCP ping 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 error (expected since dispatching not implemented)
if echo "$TOOLS_RESPONSE" | grep -q '"error"' && echo "$TOOLS_RESPONSE" | grep -q '"code":-32601'; then
echo "โ
Correctly returns 'Method not found' (dispatching not implemented yet)"
else
echo "โ Unexpected response format!"
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 error (expected since dispatching not implemented)
if echo "$CALL_TOOL_RESPONSE" | grep -q '"error"' && echo "$CALL_TOOL_RESPONSE" | grep -q '"code":-32601'; then
echo "โ
Correctly returns 'Method not found' (dispatching not implemented yet)"
else
echo "โ Unexpected response format!"
exit 1
fi
else
echo "โ call_tool test failed!"
exit 1
fi
# Test list_prompts method
echo "๐ Testing list_prompts method..."
PROMPTS_RESPONSE=$(curl -s -X POST http://localhost:9000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 4, "method": "prompts/list"}')
if [ $? -eq 0 ]; then
echo "โ
list_prompts test passed!"
echo "๐ Response: $PROMPTS_RESPONSE"
# Check if response contains error (expected since dispatching not implemented)
if echo "$PROMPTS_RESPONSE" | grep -q '"error"' && echo "$PROMPTS_RESPONSE" | grep -q '"code":-32601'; then
echo "โ
Correctly returns 'Method not found' (dispatching not implemented yet)"
else
echo "โ Unexpected response format!"
exit 1
fi
else
echo "โ list_prompts test failed!"
exit 1
fi
# Test get_prompt method
echo "๐ Testing get_prompt method..."
GET_PROMPT_RESPONSE=$(curl -s -X POST http://localhost:9000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 5, "method": "prompts/get", "params": {"name": "echo_prompt", "arguments": {"message": "Test Message"}}}')
if [ $? -eq 0 ]; then
echo "โ
get_prompt test passed!"
echo "๐ Response: $GET_PROMPT_RESPONSE"
# Check if response contains error (expected since dispatching not implemented)
if echo "$GET_PROMPT_RESPONSE" | grep -q '"error"' && echo "$GET_PROMPT_RESPONSE" | grep -q '"code":-32601'; then
echo "โ
Correctly returns 'Method not found' (dispatching not implemented yet)"
else
echo "โ Unexpected response format!"
exit 1
fi
else
echo "โ get_prompt test failed!"
exit 1
fi
echo ""
echo "๐ Step 3 tests completed successfully!"
echo "โ
MCP tools and prompts are defined (but not dispatched yet)"
echo "โ
Server correctly returns 'Method not found' for unimplemented methods"
echo "โ
JSON-RPC 2.0 error format is maintained"
echo "โ
Ready for next step: implementing method dispatching"