Merge pull request #71 from sambostock/curl-headers
Include response headers in `curl` examples
This commit is contained in:
commit
40e8b47334
3 changed files with 11 additions and 11 deletions
|
|
@ -110,18 +110,18 @@ You can also test SSE functionality manually using cURL:
|
|||
```bash
|
||||
SESSION_ID=$(curl -D - -s -o /dev/null -X POST http://localhost:9393 \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl-test","version":"1.0"}}}' |grep -i "Mcp-Session-Id:" | cut -d' ' -f2- | tr -d '\r')
|
||||
-d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl-test","version":"1.0"}}}' | grep -i "Mcp-Session-Id:" | cut -d' ' -f2- | tr -d '\r')
|
||||
```
|
||||
|
||||
2. Connect to SSE stream (in one terminal):
|
||||
```bash
|
||||
curl -N -H "Mcp-Session-Id: $SESSION_ID" http://localhost:9393
|
||||
curl -i -N -H "Mcp-Session-Id: $SESSION_ID" http://localhost:9393
|
||||
```
|
||||
|
||||
3. Trigger notifications (in another terminal):
|
||||
```bash
|
||||
# Send immediate notification
|
||||
curl -X POST http://localhost:9393 \
|
||||
curl -i -X POST http://localhost:9393 \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Mcp-Session-Id: $SESSION_ID" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"notification_tool","arguments":{"message":"Hello from cURL!"}}}'
|
||||
|
|
@ -152,14 +152,14 @@ The HTTP server implements the MCP Streamable HTTP transport protocol:
|
|||
|
||||
Initialize a session:
|
||||
```bash
|
||||
curl -X POST http://localhost:9292 \
|
||||
curl -i -X POST http://localhost:9292 \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
|
||||
```
|
||||
|
||||
List tools (using the session ID from initialization):
|
||||
```bash
|
||||
curl -X POST http://localhost:9292 \
|
||||
curl -i -X POST http://localhost:9292 \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Mcp-Session-Id: YOUR_SESSION_ID" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/list","id":2}'
|
||||
|
|
@ -167,7 +167,7 @@ curl -X POST http://localhost:9292 \
|
|||
|
||||
Call a tool:
|
||||
```bash
|
||||
curl -X POST http://localhost:9292 \
|
||||
curl -i -X POST http://localhost:9292 \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Mcp-Session-Id: YOUR_SESSION_ID" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"ExampleTool","arguments":{"a":5,"b":3}}}'
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ end
|
|||
puts "Starting MCP HTTP server on http://localhost:9292"
|
||||
puts "Use POST requests to initialize and send JSON-RPC commands"
|
||||
puts "Example initialization:"
|
||||
puts ' curl -X POST http://localhost:9292 -H "Content-Type: application/json" -d \'{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\''
|
||||
puts ' curl -i -X POST http://localhost:9292 -H "Content-Type: application/json" -d \'{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\''
|
||||
puts ""
|
||||
puts "The server will return a session ID in the Mcp-Session-Id header."
|
||||
puts "Use this session ID for subsequent requests."
|
||||
|
|
|
|||
|
|
@ -147,20 +147,20 @@ puts ""
|
|||
puts "Testing SSE:"
|
||||
puts ""
|
||||
puts "1. Initialize session:"
|
||||
puts ' curl -X POST http://localhost:9393 -H "Content-Type: application/json" \\'
|
||||
puts ' curl -i -X POST http://localhost:9393 -H "Content-Type: application/json" \\'
|
||||
puts ' -d \'{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"sse-test","version":"1.0"}}}\''
|
||||
puts ""
|
||||
puts "2. Connect SSE stream (use the session ID from step 1):"
|
||||
puts ' curl -N -H "Mcp-Session-Id: YOUR_SESSION_ID" http://localhost:9393'
|
||||
puts ' curl -i -N -H "Mcp-Session-Id: YOUR_SESSION_ID" http://localhost:9393'
|
||||
puts ""
|
||||
puts "3. In another terminal, test tools (responses will be sent via SSE if stream is active):"
|
||||
puts ""
|
||||
puts " Echo tool:"
|
||||
puts ' curl -X POST http://localhost:9393 -H "Content-Type: application/json" -H "Mcp-Session-Id: YOUR_SESSION_ID" \\'
|
||||
puts ' curl -i -X POST http://localhost:9393 -H "Content-Type: application/json" -H "Mcp-Session-Id: YOUR_SESSION_ID" \\'
|
||||
puts ' -d \'{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"echo","arguments":{"message":"Hello SSE!"}}}\''
|
||||
puts ""
|
||||
puts " Notification tool (with 2 second delay):"
|
||||
puts ' curl -X POST http://localhost:9393 -H "Content-Type: application/json" -H "Mcp-Session-Id: YOUR_SESSION_ID" \\'
|
||||
puts ' curl -i -X POST http://localhost:9393 -H "Content-Type: application/json" -H "Mcp-Session-Id: YOUR_SESSION_ID" \\'
|
||||
puts ' -d \'{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"notification_tool","arguments":{"message":"Hello SSE!", "delay": 2}}}\''
|
||||
puts ""
|
||||
puts "Note: When an SSE stream is active, tool responses will appear in the SSE stream and the POST request will return {\"accepted\": true}"
|
||||
|
|
|
|||
Loading…
Reference in a new issue