Files
java-ai-agents/mcp-sdk-plain/scripts/curl-http.sh
T

24 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Starts the fat jar in HTTP mode and drives it with curl. Usage: scripts/curl-http.sh
set -eu
cd "$(dirname "$0")/.."
PORT=18089
URL=http://127.0.0.1:$PORT/mcp
OUT=output/06-fat-jar-curl.txt
java -jar target/mcp-sdk-plain.jar http $PORT >/dev/null 2>&1 &
PID=$!
trap 'kill $PID 2>/dev/null || true' EXIT
for i in $(seq 1 40); do curl -s -o /dev/null "http://127.0.0.1:$PORT/" && break; sleep 0.5; done
H=(-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream')
{
echo "\$ curl -i -X POST $URL (initialize)"
RESP=$(curl -s -i "${H[@]}" -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}' "$URL" | tr -d '\r')
SID=$(echo "$RESP" | awk -F': ' 'tolower($1)=="mcp-session-id"{print $2}')
echo "$RESP" | sed "s/$SID/<session-id>/" | grep -iv '^date:\|^server:'
echo
echo "\$ curl -X POST $URL -H 'Mcp-Session-Id: <session-id>' (tools/call word_stats)"
curl -s "${H[@]}" -H "Mcp-Session-Id: $SID" -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"word_stats","arguments":{"text":"one two three"}}}' "$URL"
echo
} > "$OUT"
cat "$OUT"