@@ -8,23 +8,23 @@ and using an example chatbot client to communicate with those Lambda-based MCP s
8
8
9
9
The example chatbot client will communicate with seven servers:
10
10
11
- 1 . ** time ** : Ask "What is the current time?".
12
- 2 . ** weather-alerts ** : Ask "Are there any weather alerts right now? ".
11
+ 1 . ** dad-jokes ** : Ask "Tell me a good dad joke."
12
+ 2 . ** dog-facts ** : Ask "Tell me something about dogs ".
13
13
3 . ** mcpdoc** : Ask "What is Strands Agents?".
14
14
4 . ** cat-facts** : Ask "Tell me something about cats".
15
- 5 . ** dad-jokes ** : Ask "Tell me a good dad joke."
16
- 6 . ** dog-facts ** : Ask "Tell me something about dogs ".
15
+ 5 . ** time ** : Ask "What is the current time?".
16
+ 6 . ** weather-alerts ** : Ask "Are there any weather alerts right now? ".
17
17
7 . ** fetch** : Ask "Who is Tom Cruise?".
18
18
19
- | MCP server | Language | Runtime | MCP transport | Authentication | Endpoint |
20
- | -------------- | ---------- | ------------- | --------------------------------------------------- | -------------- | ------------------- |
21
- | time | Python | Lambda | Custom Lambda Invoke transport | AWS IAM | Lambda Invoke API |
22
- | weather-alerts | Typescript | Lambda | Custom Lambda Invoke transport | AWS IAM | Lambda Invoke API |
23
- | mcpdoc | Python | Lambda | Custom Streamable HTTP transport with SigV4 support | AWS IAM | Lambda Function URL |
24
- | cat-facts | Typescript | Lambda | Custom Streamable HTTP transport with SigV4 support | AWS IAM | Lambda Function URL |
25
- | dad-jokes | Python | Lambda | Streamable HTTP transport | OAuth | API Gateway |
26
- | dog-facts | Typescript | Lambda | Streamable HTTP transport | OAuth | API Gateway |
27
- | fetch | Python | Local process | stdio | N/A | N/A |
19
+ | MCP server | Language | Runtime | MCP transport | Authentication | Endpoint |
20
+ | --------------------------------------------------- | ---------- | ------------- | --------------------------------------------------- | -------------- | ------------------- |
21
+ | [ dad-jokes ] ( /examples/servers/dad-jokes/ ) | Python | Lambda | Streamable HTTP transport | OAuth | API Gateway |
22
+ | [ dog-facts ] ( /examples/servers/dog-facts/ ) | Typescript | Lambda | Streamable HTTP transport | OAuth | API Gateway |
23
+ | [ mcpdoc ] ( /examples/servers/mcpdoc/ ) | Python | Lambda | Custom Streamable HTTP transport with SigV4 support | AWS IAM | Lambda Function URL |
24
+ | [ cat-facts] ( /examples/servers/cat-facts/ ) | Typescript | Lambda | Custom Streamable HTTP transport with SigV4 support | AWS IAM | Lambda Function URL |
25
+ | [ time ] ( /examples/servers/time/ ) | Python | Lambda | Custom Lambda Invoke transport | AWS IAM | Lambda Invoke API |
26
+ | [ weather-alerts ] ( /examples/servers/weather-alerts/ ) | Typescript | Lambda | Custom Lambda Invoke transport | AWS IAM | Lambda Invoke API |
27
+ | [ fetch] ( https://pypi.org/project/mcp-server-fetch/ ) | Python | Local process | stdio | N/A | N/A |
28
28
29
29
### Setup
30
30
@@ -74,7 +74,9 @@ Test the OAuth configuration with [oauth2c](https://github.com/cloudentity/oauth
74
74
./test-automated-oauth.sh
75
75
```
76
76
77
- ### Build the Python module
77
+ ### Build the run-mcp-servers-with-aws-lambda library
78
+
79
+ #### Build the Python module
78
80
79
81
Install the run-mcp-servers-with-aws-lambda Python module from source:
80
82
@@ -92,7 +94,7 @@ uv run pyright
92
94
uv run pytest # coverage report will be in htmlcov/index.html
93
95
```
94
96
95
- ### Build the Typescript package
97
+ #### Build the Typescript package
96
98
97
99
Build the @aws/run-mcp-servers-with-aws-lambda Typescript module:
98
100
@@ -110,83 +112,95 @@ npm test # coverage report will be in coverage/index.html
110
112
npm run lint
111
113
```
112
114
113
- ### Deploy the example Python servers
115
+ ### Deploy the example remote MCP servers
114
116
115
- Deploy the Lambda 'time' function - the deployed function will be named "mcp-server-time".
117
+ #### Deploy dad-jokes MCP server
118
+
119
+ Deploy the Lambda 'dad-jokes' function - the deployed function will be named "mcp-server-dad-jokes".
116
120
117
121
``` bash
118
- cd examples/servers/time /
122
+ cd examples/servers/dad-jokes /
119
123
120
124
uv pip install -r requirements.txt
121
125
122
126
cdk deploy --app ' python3 cdk_stack.py'
123
127
```
124
128
125
- Deploy the Lambda 'mcpdoc' function - the deployed function will be named "mcp-server-mcpdoc".
129
+ #### Deploy dog-facts MCP server
130
+
131
+ Deploy the Lambda 'dog-facts' function - the deployed function will be named "mcp-server-dog-facts".
126
132
127
133
``` bash
128
- cd examples/servers/mcpdoc /
134
+ cd examples/servers/dog-facts /
129
135
130
- uv pip install -r requirements.txt
136
+ npm install
131
137
132
- cdk deploy --app ' python3 cdk_stack.py'
138
+ npm link @aws/run-mcp-servers-with-aws-lambda
139
+
140
+ npm run build
141
+
142
+ cdk deploy --app ' node lib/dog-facts-mcp-server.js'
133
143
```
134
144
135
- Deploy the Lambda 'dad-jokes' function - the deployed function will be named "mcp-server-dad-jokes".
145
+ #### Deploy the mcpdoc MCP server
146
+
147
+ Deploy the Lambda 'mcpdoc' function - the deployed function will be named "mcp-server-mcpdoc".
136
148
137
149
``` bash
138
- cd examples/servers/dad-jokes /
150
+ cd examples/servers/mcpdoc /
139
151
140
152
uv pip install -r requirements.txt
141
153
142
154
cdk deploy --app ' python3 cdk_stack.py'
143
155
```
144
156
145
- ### Deploy the example Typescript servers
157
+ #### Deploy the cat-facts MCP server
146
158
147
- Deploy the Lambda 'weather-alerts ' function - the deployed function will be named "mcp-server-weather-alerts ".
159
+ Deploy the Lambda 'cat-facts ' function - the deployed function will be named "mcp-server-cat-facts ".
148
160
149
161
``` bash
150
- cd examples/servers/weather-alerts /
162
+ cd examples/servers/cat-facts /
151
163
152
164
npm install
153
165
154
166
npm link @aws/run-mcp-servers-with-aws-lambda
155
167
156
168
npm run build
157
169
158
- cdk deploy --app ' node lib/weather-alerts -mcp-server.js'
170
+ cdk deploy --app ' node lib/cat-facts -mcp-server.js'
159
171
```
160
172
161
- Deploy the Lambda 'cat-facts' function - the deployed function will be named "mcp- server-cat-facts".
173
+ #### Deploy the time MCP server
162
174
163
- ``` bash
164
- cd examples/servers/cat-facts/
165
-
166
- npm install
175
+ Deploy the Lambda 'time' function - the deployed function will be named "mcp-server-time".
167
176
168
- npm link @aws/run-mcp-servers-with-aws-lambda
177
+ ``` bash
178
+ cd examples/servers/time/
169
179
170
- npm run build
180
+ uv pip install -r requirements.txt
171
181
172
- cdk deploy --app ' node lib/cat-facts-mcp-server.js '
182
+ cdk deploy --app ' python3 cdk_stack.py '
173
183
```
174
184
175
- Deploy the Lambda 'dog-facts' function - the deployed function will be named "mcp-server-dog-facts".
185
+ #### Deploy the weather-alerts MCP server
186
+
187
+ Deploy the Lambda 'weather-alerts' function - the deployed function will be named "mcp-server-weather-alerts".
176
188
177
189
``` bash
178
- cd examples/servers/dog-facts /
190
+ cd examples/servers/weather-alerts /
179
191
180
192
npm install
181
193
182
194
npm link @aws/run-mcp-servers-with-aws-lambda
183
195
184
196
npm run build
185
197
186
- cdk deploy --app ' node lib/dog-facts -mcp-server.js'
198
+ cdk deploy --app ' node lib/weather-alerts -mcp-server.js'
187
199
```
188
200
189
- ### Run the example Python client
201
+ ### Run the chatbot
202
+
203
+ #### Run the example Python chatbot
190
204
191
205
Run the Python-based chatbot client:
192
206
@@ -198,7 +212,7 @@ uv pip install -r requirements.txt
198
212
python main.py
199
213
```
200
214
201
- ### Run the example Typescript client
215
+ #### Run the example Typescript chatbot
202
216
203
217
Run the Typescript-based chatbot client:
204
218
0 commit comments