Skip to content

Commit 6c6df5e

Browse files
committed
improve readme
1 parent c645ec9 commit 6c6df5e

File tree

1 file changed

+14
-78
lines changed

1 file changed

+14
-78
lines changed

src/examples/README.md

Lines changed: 14 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -2,81 +2,9 @@
22

33
This directory contains example implementations of MCP clients and servers using the TypeScript SDK.
44

5-
## Streamable HTTP Examples
5+
## Streamable HTTP - single node deployment with basic session state management
66

7-
### List Tool Request Example
8-
9-
Using `curl` to list available tools:
10-
11-
```bash
12-
# First initialize the server and save the session ID to a variable
13-
SESSION_ID=$(curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
14-
-d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{}},"id":"1"}' \
15-
-i http://localhost:3000/mcp 2>&1 | grep -i "mcp-session-id" | cut -d' ' -f2 | tr -d '\r')
16-
echo "Session ID: $SESSION_ID"
17-
18-
# Then list tools using the saved session ID
19-
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
20-
-H "mcp-session-id: $SESSION_ID" \
21-
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":"2"}' \
22-
http://localhost:3000/mcp
23-
```
24-
25-
Using the TypeScript client (session management is handled automatically):
26-
27-
```typescript
28-
const toolsRequest = { method: 'tools/list', params: {} };
29-
const toolsResult = await client.request(toolsRequest, ListToolsResultSchema);
30-
console.log('Available tools:', toolsResult.tools);
31-
```
32-
33-
### Call Tool Request Example
34-
35-
Using `curl` to call a tool:
36-
37-
```bash
38-
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
39-
-H "mcp-session-id: $SESSION_ID" \
40-
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"greet","arguments":{"name":"User"}},"id":"3"}' \
41-
http://localhost:3000/mcp
42-
```
43-
44-
Using the TypeScript client:
45-
46-
```typescript
47-
const greetRequest = {
48-
method: 'tools/call',
49-
params: {
50-
name: 'greet',
51-
arguments: { name: 'MCP User' }
52-
}
53-
};
54-
const greetResult = await client.request(greetRequest, CallToolResultSchema);
55-
```
56-
57-
### Get Prompt Request Example
58-
59-
Using `curl` to get a prompt:
60-
61-
```bash
62-
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
63-
-H "mcp-session-id: $SESSION_ID" \
64-
-d '{"jsonrpc":"2.0","method":"prompts/get","params":{"name":"greeting-template","arguments":{"name":"User"}},"id":"4"}' \
65-
http://localhost:3000/mcp
66-
```
67-
68-
Using the TypeScript client:
69-
70-
```typescript
71-
const promptRequest = {
72-
method: 'prompts/get',
73-
params: {
74-
name: 'greeting-template',
75-
arguments: { name: 'MCP User' }
76-
}
77-
};
78-
const promptResult = await client.request(promptRequest, GetPromptResultSchema);
79-
```
7+
Multi node with stete management example will be added soon after we add support.
808

819
### Server (`server/simpleStreamableHttp.ts`)
8210

@@ -92,11 +20,19 @@ A simple MCP server that uses the Streamable HTTP transport, implemented with Ex
9220
npx tsx src/examples/server/simpleStreamableHttp.ts
9321
```
9422

95-
The server will start on port 3000. You can test the initialization with:
23+
The server will start on port 3000. You can test the initialization and tool listing:
9624

9725
```bash
98-
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
26+
# First initialize the server and save the session ID to a variable
27+
SESSION_ID=$(curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
9928
-d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{}},"id":"1"}' \
29+
-i http://localhost:3000/mcp 2>&1 | grep -i "mcp-session-id" | cut -d' ' -f2 | tr -d '\r')
30+
echo "Session ID: $SESSION_ID"
31+
32+
# Then list tools using the saved session ID
33+
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
34+
-H "mcp-session-id: $SESSION_ID" \
35+
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":"2"}' \
10036
http://localhost:3000/mcp
10137
```
10238

@@ -119,5 +55,5 @@ Make sure the server is running before starting the client.
11955
## Notes
12056

12157
- These examples demonstrate the basic usage of the Streamable HTTP transport
122-
- The server manages sessions for stateful connections
123-
- The client handles both direct HTTP responses and SSE streaming responses
58+
- The server manages sessions between the calls
59+
- The client handles both direct HTTP responses and SSE streaming responses

0 commit comments

Comments
 (0)