awslabs.openapi-mcp-server 0.2.1__py3-none-any.whl → 0.2.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@
15
15
  OpenAPI MCP Server - A server that dynamically creates MCP tools and resources from OpenAPI specifications.
16
16
  """
17
17
 
18
- __version__ = '0.2.1'
18
+ __version__ = '0.2.5'
19
19
 
20
20
 
21
21
  import inspect
@@ -552,6 +552,17 @@ def create_operation_prompt(
552
552
  named_args = dict(zip(param_names, args))
553
553
  named_args.update(kwargs)
554
554
 
555
+ # Validate required parameters
556
+ missing_required = []
557
+ for arg in prompt_arguments:
558
+ if arg.required and (
559
+ arg.name not in named_args or named_args[arg.name] is None
560
+ ):
561
+ missing_required.append(arg.name)
562
+
563
+ if missing_required:
564
+ raise TypeError(f'Missing required argument(s): {", ".join(missing_required)}')
565
+
555
566
  # Extract the values in the correct order for handler_with_fixed_args
556
567
  arg_values = []
557
568
  for arg in prompt_arguments:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: awslabs.openapi-mcp-server
3
- Version: 0.2.1
3
+ Version: 0.2.5
4
4
  Summary: An AWS Labs Model Context Protocol (MCP) server for OpenAPI
5
5
  Project-URL: Homepage, https://awslabs.github.io/mcp/
6
6
  Project-URL: Documentation, https://awslabs.github.io/mcp/servers/openapi-mcp-server/
@@ -149,6 +149,40 @@ Here are some ways you can work with MCP across AWS (e.g. for Amazon Q Developer
149
149
  }
150
150
  ```
151
151
 
152
+ ### Windows Installation
153
+
154
+ For Windows users, the MCP server configuration format is slightly different:
155
+
156
+ ```json
157
+ {
158
+ "mcpServers": {
159
+ "awslabs.openapi-mcp-server": {
160
+ "disabled": false,
161
+ "timeout": 60,
162
+ "type": "stdio",
163
+ "command": "uv",
164
+ "args": [
165
+ "tool",
166
+ "run",
167
+ "--from",
168
+ "awslabs.openapi-mcp-server@latest",
169
+ "awslabs.openapi-mcp-server.exe"
170
+ ],
171
+ "env": {
172
+ "API_NAME": "your-api-name",
173
+ "API_BASE_URL": "https://api.example.com",
174
+ "API_SPEC_URL": "https://api.example.com/openapi.json",
175
+ "LOG_LEVEL": "ERROR",
176
+ "ENABLE_PROMETHEUS": "false",
177
+ "ENABLE_OPERATION_PROMPTS": "true",
178
+ "UVICORN_TIMEOUT_GRACEFUL_SHUTDOWN": "5.0",
179
+ "UVICORN_GRACEFUL_SHUTDOWN": "true"
180
+ },
181
+ }
182
+ }
183
+ }
184
+ ```
185
+
152
186
  ## Usage
153
187
 
154
188
  ### Basic Usage
@@ -1,5 +1,5 @@
1
1
  awslabs/__init__.py,sha256=WuqxdDgUZylWNmVoPKiK7qGsTB_G4UmuXIrJ-VBwDew,731
2
- awslabs/openapi_mcp_server/__init__.py,sha256=0aJ0v_y0NpVNNAL-lNWFXzVQjlGi8q9HrvyU4GsoG30,2060
2
+ awslabs/openapi_mcp_server/__init__.py,sha256=78kjixmvEhGN-CZ1YSPikztcGQtb0OTQkkqzcZsDsok,2060
3
3
  awslabs/openapi_mcp_server/server.py,sha256=C_uJoyhCwxe6ohCZZL04HqDCOzUDbJHtPc-dBuX8U18,21746
4
4
  awslabs/openapi_mcp_server/api/__init__.py,sha256=KWcmd1bH1vact1QJBfR0zFX7knWhFrBgaMEe9Tu9qi0,774
5
5
  awslabs/openapi_mcp_server/api/config.py,sha256=WT9ELzBOtZkd_DrzrkL_uuVoDibw2k94tU28CvHL32Q,9503
@@ -20,7 +20,7 @@ awslabs/openapi_mcp_server/prompts/__init__.py,sha256=exMV01HgSORPPbkPC7AZE2Uqfr
20
20
  awslabs/openapi_mcp_server/prompts/models.py,sha256=rExqLJWMJSYwzgXXilXZCJCHA8inrddOoW4591X2SEo,2748
21
21
  awslabs/openapi_mcp_server/prompts/prompt_manager.py,sha256=Vmbv9nkzkAFD7y-ZIhN8WKZDHOA9ljU1mpZdflwLEYg,5700
22
22
  awslabs/openapi_mcp_server/prompts/generators/__init__.py,sha256=rd7gP2YOqE0OFgTqlSyS9AFABh_xsT33KdbSwQ5RuMM,968
23
- awslabs/openapi_mcp_server/prompts/generators/operation_prompts.py,sha256=M3UdyN3PlzGXeby-e8VwEA3H4rRLks0-OaOdn9nsyh4,25291
23
+ awslabs/openapi_mcp_server/prompts/generators/operation_prompts.py,sha256=rv_FM1SwrIEmyZZUeJXIjxtkp1lTxIZZSf-CZ-fPVRk,25766
24
24
  awslabs/openapi_mcp_server/prompts/generators/workflow_prompts.py,sha256=IfexW1eQseeW2SBqTPKq3GgqMKTKPtvMXQ4JR-2YdXk,10138
25
25
  awslabs/openapi_mcp_server/utils/__init__.py,sha256=6ATm6O_0iCswDeBA2LZKwRdZVePcXrG4VxDo2YW-sK0,728
26
26
  awslabs/openapi_mcp_server/utils/cache_provider.py,sha256=gyPOnfrc0RGf-w3e6FbinZFHPTjWmVm66FHi-TjL0Uo,8252
@@ -30,9 +30,9 @@ awslabs/openapi_mcp_server/utils/http_client.py,sha256=a2wu7lfyuq1O_6ilaFQ9geFJy
30
30
  awslabs/openapi_mcp_server/utils/metrics_provider.py,sha256=1R__ZUxUrrB5KoKx4q6WYWHhaDTpFnr0UWTgZO28HVI,17731
31
31
  awslabs/openapi_mcp_server/utils/openapi.py,sha256=eRQUC5AidkyR1ALQNsR0kLXlr0Mq8ZXCduLVWUXXhuA,8802
32
32
  awslabs/openapi_mcp_server/utils/openapi_validator.py,sha256=MVJj84a8vw0BUn21pfkav6oJagDF1dSotcLK9otXzE4,9614
33
- awslabs_openapi_mcp_server-0.2.1.dist-info/METADATA,sha256=d45aQj7DUXGL6-Yz8i8lxjqOPJiJpZ17Nr_bqmm4is4,18552
34
- awslabs_openapi_mcp_server-0.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
- awslabs_openapi_mcp_server-0.2.1.dist-info/entry_points.txt,sha256=0BwvRNOdGm62ExFDks-9tSTWgtOdI3qmg-aemCMXQkM,86
36
- awslabs_openapi_mcp_server-0.2.1.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
37
- awslabs_openapi_mcp_server-0.2.1.dist-info/licenses/NOTICE,sha256=fG29aqEG3L4KHNXheKdyD5TdsgFh7eaaFlXu-okbf5o,94
38
- awslabs_openapi_mcp_server-0.2.1.dist-info/RECORD,,
33
+ awslabs_openapi_mcp_server-0.2.5.dist-info/METADATA,sha256=zKjBeMQWRJllxPDtDR408tKobzBAzE7Wf3MWvUh23co,19390
34
+ awslabs_openapi_mcp_server-0.2.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
+ awslabs_openapi_mcp_server-0.2.5.dist-info/entry_points.txt,sha256=0BwvRNOdGm62ExFDks-9tSTWgtOdI3qmg-aemCMXQkM,86
36
+ awslabs_openapi_mcp_server-0.2.5.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
37
+ awslabs_openapi_mcp_server-0.2.5.dist-info/licenses/NOTICE,sha256=fG29aqEG3L4KHNXheKdyD5TdsgFh7eaaFlXu-okbf5o,94
38
+ awslabs_openapi_mcp_server-0.2.5.dist-info/RECORD,,