mcp4openapi 0.1.0 → 0.2.1

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.
Files changed (152) hide show
  1. package/README.md +137 -95
  2. package/dist/scripts/validate-profile.js +3 -3
  3. package/dist/scripts/validate-profile.js.map +1 -1
  4. package/dist/src/composite-executor.d.ts +3 -1
  5. package/dist/src/composite-executor.d.ts.map +1 -1
  6. package/dist/src/composite-executor.js +16 -5
  7. package/dist/src/composite-executor.js.map +1 -1
  8. package/dist/src/constants.d.ts +49 -0
  9. package/dist/src/constants.d.ts.map +1 -1
  10. package/dist/src/constants.js +49 -0
  11. package/dist/src/constants.js.map +1 -1
  12. package/dist/src/errors.d.ts +6 -0
  13. package/dist/src/errors.d.ts.map +1 -1
  14. package/dist/src/errors.js +13 -0
  15. package/dist/src/errors.js.map +1 -1
  16. package/dist/src/generated-schemas.d.ts +832 -52
  17. package/dist/src/generated-schemas.d.ts.map +1 -1
  18. package/dist/src/generated-schemas.js +31 -8
  19. package/dist/src/generated-schemas.js.map +1 -1
  20. package/dist/src/http-client-factory.d.ts.map +1 -1
  21. package/dist/src/http-client-factory.js +14 -3
  22. package/dist/src/http-client-factory.js.map +1 -1
  23. package/dist/src/http-transport.d.ts +65 -0
  24. package/dist/src/http-transport.d.ts.map +1 -1
  25. package/dist/src/http-transport.js +921 -77
  26. package/dist/src/http-transport.js.map +1 -1
  27. package/dist/src/index.js +108 -8
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/interceptors.d.ts +3 -0
  30. package/dist/src/interceptors.d.ts.map +1 -1
  31. package/dist/src/interceptors.js +76 -8
  32. package/dist/src/interceptors.js.map +1 -1
  33. package/dist/src/logger.d.ts +1 -1
  34. package/dist/src/logger.js +3 -3
  35. package/dist/src/logger.js.map +1 -1
  36. package/dist/src/mcp-server.d.ts +33 -0
  37. package/dist/src/mcp-server.d.ts.map +1 -1
  38. package/dist/src/mcp-server.js +263 -54
  39. package/dist/src/mcp-server.js.map +1 -1
  40. package/dist/src/oauth-provider.d.ts +92 -0
  41. package/dist/src/oauth-provider.d.ts.map +1 -0
  42. package/dist/src/oauth-provider.js +588 -0
  43. package/dist/src/oauth-provider.js.map +1 -0
  44. package/dist/src/openapi-parser.d.ts +16 -0
  45. package/dist/src/openapi-parser.d.ts.map +1 -1
  46. package/dist/src/openapi-parser.js +141 -6
  47. package/dist/src/openapi-parser.js.map +1 -1
  48. package/dist/src/profile-loader.d.ts +2 -2
  49. package/dist/src/profile-loader.d.ts.map +1 -1
  50. package/dist/src/profile-loader.js +45 -24
  51. package/dist/src/profile-loader.js.map +1 -1
  52. package/dist/src/testing/fixtures.d.ts +189 -0
  53. package/dist/src/testing/fixtures.d.ts.map +1 -1
  54. package/dist/src/testing/fixtures.js +144 -0
  55. package/dist/src/testing/fixtures.js.map +1 -1
  56. package/dist/src/testing/mock-gitlab-server.d.ts +26 -17
  57. package/dist/src/testing/mock-gitlab-server.d.ts.map +1 -1
  58. package/dist/src/testing/mock-gitlab-server.js +567 -304
  59. package/dist/src/testing/mock-gitlab-server.js.map +1 -1
  60. package/dist/src/types/http-transport.d.ts +16 -0
  61. package/dist/src/types/http-transport.d.ts.map +1 -1
  62. package/dist/src/types/openapi.d.ts +5 -0
  63. package/dist/src/types/openapi.d.ts.map +1 -1
  64. package/dist/src/types/profile.d.ts +112 -3
  65. package/dist/src/types/profile.d.ts.map +1 -1
  66. package/dist/src/validation-utils.d.ts +12 -0
  67. package/dist/src/validation-utils.d.ts.map +1 -1
  68. package/dist/src/validation-utils.js +17 -0
  69. package/dist/src/validation-utils.js.map +1 -1
  70. package/package.json +12 -3
  71. package/profile-schema.json +169 -7
  72. package/dist/composite-executor.d.ts +0 -65
  73. package/dist/composite-executor.d.ts.map +0 -1
  74. package/dist/composite-executor.js +0 -147
  75. package/dist/composite-executor.js.map +0 -1
  76. package/dist/constants.d.ts +0 -36
  77. package/dist/constants.d.ts.map +0 -1
  78. package/dist/constants.js +0 -36
  79. package/dist/constants.js.map +0 -1
  80. package/dist/http-transport.d.ts +0 -195
  81. package/dist/http-transport.d.ts.map +0 -1
  82. package/dist/http-transport.js +0 -760
  83. package/dist/http-transport.js.map +0 -1
  84. package/dist/interceptors.d.ts +0 -74
  85. package/dist/interceptors.d.ts.map +0 -1
  86. package/dist/interceptors.js +0 -220
  87. package/dist/interceptors.js.map +0 -1
  88. package/dist/logger.d.ts +0 -81
  89. package/dist/logger.d.ts.map +0 -1
  90. package/dist/logger.js +0 -264
  91. package/dist/logger.js.map +0 -1
  92. package/dist/mcp-server.d.ts +0 -110
  93. package/dist/mcp-server.d.ts.map +0 -1
  94. package/dist/mcp-server.js +0 -568
  95. package/dist/mcp-server.js.map +0 -1
  96. package/dist/metrics.d.ts +0 -86
  97. package/dist/metrics.d.ts.map +0 -1
  98. package/dist/metrics.js +0 -229
  99. package/dist/metrics.js.map +0 -1
  100. package/dist/openapi-parser.d.ts +0 -35
  101. package/dist/openapi-parser.d.ts.map +0 -1
  102. package/dist/openapi-parser.js +0 -160
  103. package/dist/openapi-parser.js.map +0 -1
  104. package/dist/profile-loader.d.ts +0 -25
  105. package/dist/profile-loader.d.ts.map +0 -1
  106. package/dist/profile-loader.js +0 -134
  107. package/dist/profile-loader.js.map +0 -1
  108. package/dist/schema-validator.d.ts +0 -32
  109. package/dist/schema-validator.d.ts.map +0 -1
  110. package/dist/schema-validator.js +0 -126
  111. package/dist/schema-validator.js.map +0 -1
  112. package/dist/testing/fixtures.d.ts +0 -186
  113. package/dist/testing/fixtures.d.ts.map +0 -1
  114. package/dist/testing/fixtures.js +0 -135
  115. package/dist/testing/fixtures.js.map +0 -1
  116. package/dist/testing/http-integration.test.d.ts +0 -7
  117. package/dist/testing/http-integration.test.d.ts.map +0 -1
  118. package/dist/testing/http-integration.test.js +0 -383
  119. package/dist/testing/http-integration.test.js.map +0 -1
  120. package/dist/testing/http-multiuser.test.d.ts +0 -10
  121. package/dist/testing/http-multiuser.test.d.ts.map +0 -1
  122. package/dist/testing/http-multiuser.test.js +0 -255
  123. package/dist/testing/http-multiuser.test.js.map +0 -1
  124. package/dist/testing/integration.test.d.ts +0 -8
  125. package/dist/testing/integration.test.d.ts.map +0 -1
  126. package/dist/testing/integration.test.js +0 -247
  127. package/dist/testing/integration.test.js.map +0 -1
  128. package/dist/testing/mock-gitlab-server.d.ts +0 -34
  129. package/dist/testing/mock-gitlab-server.d.ts.map +0 -1
  130. package/dist/testing/mock-gitlab-server.js +0 -224
  131. package/dist/testing/mock-gitlab-server.js.map +0 -1
  132. package/dist/testing/test-types.d.ts +0 -59
  133. package/dist/testing/test-types.d.ts.map +0 -1
  134. package/dist/testing/test-types.js +0 -7
  135. package/dist/testing/test-types.js.map +0 -1
  136. package/dist/tool-generator.d.ts +0 -43
  137. package/dist/tool-generator.d.ts.map +0 -1
  138. package/dist/tool-generator.js +0 -123
  139. package/dist/tool-generator.js.map +0 -1
  140. package/dist/tsconfig.tsbuildinfo +0 -1
  141. package/dist/types/http-transport.d.ts +0 -39
  142. package/dist/types/http-transport.d.ts.map +0 -1
  143. package/dist/types/http-transport.js +0 -8
  144. package/dist/types/http-transport.js.map +0 -1
  145. package/dist/types/openapi.d.ts +0 -50
  146. package/dist/types/openapi.d.ts.map +0 -1
  147. package/dist/types/openapi.js +0 -9
  148. package/dist/types/openapi.js.map +0 -1
  149. package/dist/types/profile.d.ts +0 -76
  150. package/dist/types/profile.d.ts.map +0 -1
  151. package/dist/types/profile.js +0 -9
  152. package/dist/types/profile.js.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # MCP from OpenAPI
2
2
 
3
+ [![CI](https://github.com/davidruzicka/mcp4openapi/actions/workflows/ci.yml/badge.svg)](https://github.com/davidruzicka/mcp4openapi/actions/workflows/ci.yml)
4
+ [![codecov](https://codecov.io/gh/davidruzicka/mcp4openapi/graph/badge.svg)](https://codecov.io/gh/davidruzicka/mcp4openapi)
5
+
3
6
  Universal MCP server that generates tools from any OpenAPI specification.
4
7
 
5
8
  ## Why This Project?
@@ -48,6 +51,8 @@ More about profiles: [docs/PROFILE-GUIDE.md](https://github.com/davidruzicka/mcp
48
51
  - **Profiles**: Create JSON configuration transforming API to MCP tools LLM friendly in profiles
49
52
  - **Tool Aggregation**: Reduce tool clutter - group related operations in profiles
50
53
  - **Composite Actions**: Chain API calls into workflows in profiles
54
+ - **OAuth 2.0**: Browser-based authentication flow for HTTP transport (see [docs/OAUTH.md](./docs/OAUTH.md))
55
+ - **Multi-Auth**: Support multiple auth methods (OAuth + Bearer) with priority-based fallback (see [docs/MULTI-AUTH.md](./docs/MULTI-AUTH.md))
51
56
  - **Observability**: Structured logging (console/JSON) with profile-aware token redaction, Prometheus metrics
52
57
 
53
58
  Check example profiles in [profiles/](https://github.com/davidruzicka/mcp4openapi/tree/main/profiles).
@@ -58,7 +63,7 @@ Check example profiles in [profiles/](https://github.com/davidruzicka/mcp4openap
58
63
 
59
64
  **Cursor:**
60
65
  - **Project-Specific:** `.cursor/mcp.json` in your project root
61
- - **Global:** `~/.cursor/mcp.json` in your home directory (platform-dependent; use `⚙` → `Tools & MCP` → `New MCP Server`)
66
+ - **Global:** default `~/.cursor/mcp.json` in your home directory (various, platform-dependent location based on current Cursor profile; use `⚙` → `Tools & MCP` → `New MCP Server`)
62
67
 
63
68
  **VS Code + Copilot:**
64
69
  - **Project-Specific:** `.vscode/mcp.json` in your project root
@@ -76,11 +81,11 @@ Check example profiles in [profiles/](https://github.com/davidruzicka/mcp4openap
76
81
 
77
82
  No installation required.
78
83
 
79
- **VS Code + Copilot example:**
80
-
84
+ #### VS Code + Copilot example:
81
85
 
82
86
  Use VS Code dialog to enter access token (recommended for security):
83
87
 
88
+ Access Token (Bearer) example:
84
89
  ```json
85
90
  {
86
91
  "servers": {
@@ -88,16 +93,16 @@ Use VS Code dialog to enter access token (recommended for security):
88
93
  "command": "npx",
89
94
  "args": ["mcp4openapi"],
90
95
  "env": {
91
- "OPENAPI_SPEC_PATH": "path/to/openapi.yaml",
92
- "API_TOKEN": "${input:api_token}",
93
- "API_BASE_URL": "https://api.example.com",
94
- "MCP_PROFILE_PATH": "path/to/mcp-profile.json" //optional
96
+ "MCP4_OPENAPI_SPEC_PATH": "path/to/openapi.yaml",
97
+ "MCP4_API_TOKEN": "${input:MCP4_API_TOKEN}",
98
+ "MCP4_API_BASE_URL": "https://api.example.com",
99
+ "MCP4_PROFILE_PATH": "path/to/mcp-profile.json" //optional
95
100
  }
96
101
  },
97
102
  "inputs": [
98
103
  {
99
104
  "type": "promptString",
100
- "id": "api_token",
105
+ "id": "MCP4_API_TOKEN",
101
106
  "description": "API Authorization Token",
102
107
  "password": true
103
108
  }
@@ -108,7 +113,7 @@ Use VS Code dialog to enter access token (recommended for security):
108
113
 
109
114
  _`inputs` section prompts you for the token when the server starts, so environment variables are not needed._
110
115
 
111
- **Cursor example:**
116
+ #### Cursor example:
112
117
 
113
118
  ```json
114
119
  {
@@ -117,31 +122,36 @@ _`inputs` section prompts you for the token when the server starts, so environme
117
122
  "command": "npx",
118
123
  "args": ["mcp4openapi"],
119
124
  "env": {
120
- "OPENAPI_SPEC_PATH": "path/to/openapi.yaml",
121
- "API_TOKEN": "${env:API_TOKEN}", // uses environment variable
122
- "API_BASE_URL": "https://api.example.com",
123
- "MCP_PROFILE_PATH": "path/to/mcp-profile.json" //optional
125
+ "MCP4_OPENAPI_SPEC_PATH": "path/to/openapi.yaml",
126
+ "MCP4_API_TOKEN": "${env:MCP4_API_TOKEN}",
127
+ "MCP4_API_BASE_URL": "https://api.example.com",
128
+ "MCP4_PROFILE_PATH": "path/to/mcp-profile.json" //optional
124
129
  }
125
130
  }
126
131
  }
127
132
  }
128
133
  ```
129
134
 
130
- _Environment variables are used to pass tokens to the server when it starts, so you don't need to pass them as plain text._
135
+ ##### ⚠️ Prerequisites
131
136
 
132
- **Claude Code example:**
137
+ - `MCP4_API_TOKEN` with access token (Bearer) must be set.
138
+
139
+ #### Claude Code example:
133
140
 
134
141
  ```bash
135
142
  claude mcp add --transport stdio mcp4openapi \
136
- --env API_TOKEN="${API_TOKEN}" \
137
- --env OPENAPI_SPEC_PATH=path/to/openapi.yaml \
138
- --env API_BASE_URL=https://api.example.com \
139
- --env MCP_PROFILE_PATH=path/to/mcp-profile.json \
143
+ --env MCP4_API_TOKEN="${MCP4_API_TOKEN}" \
144
+ --env MCP4_OPENAPI_SPEC_PATH=path/to/openapi.yaml \
145
+ --env MCP4_API_BASE_URL=https://api.example.com \
146
+ --env MCP4_PROFILE_PATH=path/to/mcp-profile.json \
140
147
  -- npx mcp4openapi
141
- # expects API_TOKEN environment variable to be set
142
148
  ```
143
149
 
144
- **JetBrains IDEs + Copilot example:**
150
+ ##### ⚠️ Prerequisites
151
+
152
+ - `MCP4_API_TOKEN` with access token (Bearer) must be set.
153
+
154
+ #### JetBrains IDEs + Copilot example:
145
155
 
146
156
  ```json
147
157
  {
@@ -150,16 +160,20 @@ claude mcp add --transport stdio mcp4openapi \
150
160
  "command": "npx",
151
161
  "args": ["mcp4openapi"],
152
162
  "env": {
153
- "OPENAPI_SPEC_PATH": "path/to/openapi.yaml",
154
- "API_TOKEN": "<api_token>", // doesn't accept ${API_TOKEN} environment variable
155
- "API_BASE_URL": "https://api.example.com",
156
- "MCP_PROFILE_PATH": "path/to/mcp-profile.json" //optional
163
+ "MCP4_OPENAPI_SPEC_PATH": "path/to/openapi.yaml",
164
+ "MCP4_API_TOKEN": "${input:api_token}",
165
+ "MCP4_API_BASE_URL": "https://api.example.com",
166
+ "MCP4_PROFILE_PATH": "path/to/mcp-profile.json" //optional
157
167
  }
158
168
  }
159
169
  }
160
170
  }
161
171
  ```
162
172
 
173
+ ##### Note
174
+
175
+ - JetBrains IDEs show ⚠️ right next to `${input:api_token}` to indicate that you need to enter the token manually in the IDE dialog.
176
+
163
177
  ### Option B: Docker
164
178
 
165
179
  See [docs/DOCKER.md](./docs/DOCKER.md) for build, run, authentication modes, production deployment, and security.
@@ -180,7 +194,7 @@ npm run build
180
194
 
181
195
  **3. Configure:**
182
196
  ```bash
183
- cp .env.example .env
197
+ cp env.example .env
184
198
  # Edit .env with your settings
185
199
  ```
186
200
 
@@ -260,60 +274,61 @@ echo 'export NODE_EXTRA_CA_CERTS="$HOME/ca-bundle.pem"' >> $HOME/.bash_profile
260
274
  ## Environment Variables
261
275
 
262
276
  ### Required
263
- - `OPENAPI_SPEC_PATH`: Path to OpenAPI spec (YAML/JSON)
264
- - `API_TOKEN`: API token (default env var name; customizable via `AUTH_ENV_VAR`)
277
+ - `MCP4_OPENAPI_SPEC_PATH`: Path to OpenAPI spec (YAML/JSON)
278
+ - `MCP4_API_TOKEN`: API token (default env var name; customizable via `MCP4_AUTH_ENV_VAR`)
265
279
  - **Required for stdio** mode with authenticated APIs
266
- - **Optional for HTTP** mode with per-session tokens
267
- - When using no profile mode, auth type is auto-detected from OpenAPI `security` schemes
280
+ - **Optional for HTTP** mode with per-session tokens sent in HTTP headers
281
+ - When using no profile mode, auth type is auto-detected from OpenAPI `security` schemes if present
268
282
 
269
283
  ### Optional - Core
270
- - `MCP_PROFILE_PATH`: Profile JSON path (default: auto-generate tools from OpenAPI spec; warning logged if tool exceeds 60 parameters)
271
- - `MCP_TRANSPORT`: `stdio` (default) or `http`
272
- - `API_BASE_URL`: Override OpenAPI server URL
284
+ - `MCP4_PROFILE_PATH`: Profile JSON path (default: auto-generate tools from OpenAPI spec; warning logged if tool exceeds 60 parameters)
285
+ - `MCP4_TRANSPORT`: `stdio` (default) or `http`
286
+ - `MCP4_API_BASE_URL`: Override OpenAPI server URL
273
287
 
274
288
  ### Optional - Authentication (No-Profile Mode)
275
289
  When running without a profile, authentication is automatically configured from OpenAPI spec's `security` schemes:
276
290
 
277
- - `AUTH_ENV_VAR`: Environment variable name for auth token (default: `API_TOKEN`)
291
+ - `MCP4_AUTH_ENV_VAR`: Environment variable name for auth token (default: `MCP4_API_TOKEN`)
278
292
 
279
293
  **Supported OpenAPI Security Types:**
280
294
  - **Bearer Token** (`http` with `scheme: bearer`): Uses `Authorization: Bearer <token>` header
281
295
  - **API Key in Header** (`apiKey` with `in: header`): Uses custom header (e.g., `X-API-Key: <token>`)
282
296
  - **API Key in Query** (`apiKey` with `in: query`): Adds token to query string (e.g., `?api_key=<token>`)
283
- - **OAuth2/OpenID Connect**: Mapped to bearer token authentication
297
+ - **OAuth2/OpenID Connect**: Mapped to bearer token authentication (profile mode only)
284
298
  - **Public APIs**: No authentication if OpenAPI spec has no `security` defined
285
299
 
286
- **Example**: Use custom env var for GitLab token:
300
+ **Example**: Use custom env var for GitLab own instance token:
287
301
  ```bash
288
- export AUTH_ENV_VAR=GITLAB_TOKEN
289
- export GITLAB_TOKEN=glpat-xxxxxxxxxxxx
290
- export OPENAPI_SPEC_PATH=path/to/openapi.yaml
302
+ export MCP4_API_TOKEN=glpat-xxxxxxxxxxxx
303
+ export MCP4_API_BASE_URL=https://gitlab.example.com/api/v4
304
+ export MCP4_OPENAPI_SPEC_PATH=profiles/gitlab/openapi.yaml
305
+ export MCP4_PROFILE_PATH=profiles/gitlab/developer-profile.json
291
306
  npm start
292
307
  ```
293
308
 
294
309
  #### Force Authentication Override
295
310
  For APIs with incomplete OpenAPI specs (missing `security` definition but requiring authentication):
296
311
 
297
- - `AUTH_FORCE`: Enable force auth override (`true|false`, default: `false`)
298
- - `AUTH_TYPE`: Authentication type: `bearer|query|custom-header` (default: `bearer`)
299
- - `AUTH_HEADER_NAME`: Custom header name (required when `AUTH_TYPE=custom-header`)
300
- - `AUTH_QUERY_PARAM`: Query parameter name (required when `AUTH_TYPE=query`)
312
+ - `MCP4_AUTH_FORCE`: Enable force auth override (`true|false`, default: `false`)
313
+ - `MCP4_AUTH_TYPE`: Authentication type: `bearer|query|custom-header` (default: `bearer`)
314
+ - `MCP4_AUTH_HEADER_NAME`: Custom header name (required when `MCP4_AUTH_TYPE=custom-header`)
315
+ - `MCP4_AUTH_QUERY_PARAM`: Query parameter name (required when `MCP4_AUTH_TYPE=query`)
301
316
 
302
317
  **Example**: Force bearer authentication for incomplete spec:
303
318
  ```bash
304
- export AUTH_FORCE=true
305
- export AUTH_TYPE=bearer
306
- export API_TOKEN=your_token_here
307
- export OPENAPI_SPEC_PATH=./incomplete-spec.yaml
319
+ export MCP4_AUTH_FORCE=true
320
+ export MCP4_AUTH_TYPE=bearer
321
+ export MCP4_API_TOKEN=your_token_here
322
+ export MCP4_OPENAPI_SPEC_PATH=./incomplete-spec.yaml
308
323
  npm start
309
324
  ```
310
325
 
311
326
  **Example**: Force custom header authentication:
312
327
  ```bash
313
- export AUTH_FORCE=true
314
- export AUTH_TYPE=custom-header
315
- export AUTH_HEADER_NAME=X-API-Key
316
- export API_TOKEN=your_api_key_here
328
+ export MCP4_AUTH_FORCE=true
329
+ export MCP4_AUTH_TYPE=custom-header
330
+ export MCP4_AUTH_HEADER_NAME=X-API-Key
331
+ export MCP4_API_TOKEN=your_api_key_here
317
332
  npm start
318
333
  ```
319
334
 
@@ -322,21 +337,21 @@ npm start
322
337
  ### Optional - Tool Name Shortening
323
338
  When generating tools from OpenAPI without a profile, long operation IDs may exceed limits. Configure automatic shortening:
324
339
 
325
- - `MCP_TOOLNAME_MAX`: Maximum tool name length (default: `45`)
326
- - `MCP_TOOLNAME_STRATEGY`: Shortening strategy: `none|balanced|iterative|hash|auto` (default: `none`)
340
+ - `MCP4_TOOLNAME_MAX`: Maximum tool name length (default: `45`)
341
+ - `MCP4_TOOLNAME_STRATEGY`: Shortening strategy: `none|balanced|iterative|hash|auto` (default: `none`)
327
342
  - `none`: No shortening, only warnings
328
343
  - `balanced`: Add parts by importance until unique & meaningful (recommended)
329
344
  - `iterative`: Progressively remove noise until under limit (conservative)
330
345
  - `hash`: Use verb + resource + hash for guaranteed uniqueness
331
346
  - `auto`: Try strategies in order: balanced → iterative → hash
332
- - `MCP_TOOLNAME_WARN_ONLY`: Only warn, don't shorten: `true|false` (default: `true`)
333
- - `MCP_TOOLNAME_MIN_PARTS`: Minimum parts for balanced strategy (default: `3`)
334
- - `MCP_TOOLNAME_MIN_LENGTH`: Minimum length in chars for balanced strategy (default: `20`)
347
+ - `MCP4_TOOLNAME_WARN_ONLY`: Only warn, don't shorten: `true|false` (default: `true`)
348
+ - `MCP4_TOOLNAME_MIN_PARTS`: Minimum parts for balanced strategy (default: `3`)
349
+ - `MCP4_TOOLNAME_MIN_LENGTH`: Minimum length in chars for balanced strategy (default: `20`)
335
350
 
336
351
  **Example**: Apply balanced shortening (recommended):
337
352
  ```bash
338
- export MCP_TOOLNAME_STRATEGY=balanced
339
- export MCP_TOOLNAME_WARN_ONLY=false
353
+ export MCP4_TOOLNAME_STRATEGY=balanced
354
+ export MCP4_TOOLNAME_WARN_ONLY=false
340
355
  ```
341
356
 
342
357
  **Result** for balanced strategy:
@@ -347,56 +362,80 @@ deleteApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId
347
362
  → delete_alert_management_image (26 chars)
348
363
  ```
349
364
 
350
- **Example**: Apply iterative shortening with 30 char limit:
365
+ **Example 2**: Apply iterative shortening with 30 char limit:
351
366
  ```bash
352
- export MCP_TOOLNAME_STRATEGY=iterative
353
- export MCP_TOOLNAME_WARN_ONLY=false
354
- export MCP_TOOLNAME_MAX=30
367
+ export MCP4_TOOLNAME_STRATEGY=iterative
368
+ export MCP4_TOOLNAME_WARN_ONLY=false
369
+ export MCP4_TOOLNAME_MAX=30
355
370
  ```
356
371
 
357
372
  ### Optional - HTTP Transport
358
- - `MCP_HOST`: Bind address (default: `127.0.0.1`; warning logged if non-localhost with empty `ALLOWED_ORIGINS`)
359
- - `MCP_PORT`: Port (default: `3003`)
360
- - `ALLOWED_ORIGINS`: Comma-separated origins (default: empty; supports exact, wildcard `*.domain.com`, CIDR `192.168.1.0/24`)
361
- - `SESSION_TIMEOUT_MS`: Session timeout (default: `1800000` = 30min)
362
- - `HEARTBEAT_ENABLED`: SSE heartbeat (default: `false`)
363
- - `HEARTBEAT_INTERVAL_MS`: Heartbeat interval (default: `30000` = 30s)
364
- - `TOKEN_MAX_LENGTH`: Maximum token length in characters (default: `1000`)
373
+ - `MCP4_HOST`: Bind address (default: `127.0.0.1`)
374
+ - `MCP4_PORT`: Port (default: `3003`)
375
+ - `MCP4_ALLOWED_ORIGINS`: Comma-separated origins (supports exact, wildcard `*.domain.com`, CIDR `192.168.1.0/24`)
376
+ - `MCP4_SESSION_TIMEOUT_MS`: Session timeout (default: `1800000` = 30min)
377
+ - `MCP4_HEARTBEAT_ENABLED`, `MCP4_HEARTBEAT_INTERVAL_MS`: SSE heartbeat settings
378
+ - `MCP4_TOKEN_MAX_LENGTH`: Maximum token length in characters (default: `1000`)
365
379
 
366
- #### HTTP Rate Limiting (Security)
367
- Protect against DoS attacks by limiting request rates per endpoint:
380
+ See [docs/HTTP-TRANSPORT.md](./docs/HTTP-TRANSPORT.md) for detailed HTTP transport configuration.
368
381
 
369
- - `HTTP_RATE_LIMIT_ENABLED`: Enable rate limiting (`true|false`, default: `true`)
370
- - `HTTP_RATE_LIMIT_WINDOW_MS`: Rate limit window in milliseconds (default: `60000` = 1 minute)
371
- - `HTTP_RATE_LIMIT_MAX_REQUESTS`: Max requests per window for `/mcp`, `/sse`, `/health` (default: `100`)
372
- - `HTTP_RATE_LIMIT_METRICS_MAX`: Max requests per window for `/metrics` (default: `10`)
382
+ #### SSL/TLS Configuration
373
383
 
374
- **Example**: Enable rate limiting with custom limits:
375
- ```bash
376
- export HTTP_RATE_LIMIT_ENABLED=true
377
- export HTTP_RATE_LIMIT_MAX_REQUESTS=200 # 200 req/min for MCP endpoints
378
- export HTTP_RATE_LIMIT_METRICS_MAX=20 # 20 req/min for metrics
379
- ```
384
+ - `MCP4_SSL_CERT_FILE`, `MCP4_SSL_KEY_FILE`: SSL certificate and key (PEM format)
385
+
386
+ **When both are set, server automatically starts in HTTPS mode.**
387
+
388
+ See [docs/OAUTH.md](./docs/OAUTH.md#ssltls-support) for SSL configuration with OAuth.
389
+
390
+ #### OAuth 2.0 Configuration
380
391
 
381
- **Example**: Disable rate limiting (not recommended for production):
392
+ **Autodiscovery** - Just provide DCR (Dynamic Client Registration) credentials, API base URL and OAuth callback:
382
393
  ```bash
383
- export HTTP_RATE_LIMIT_ENABLED=false
394
+ export MCP4_API_BASE_URL=https://www.gitlab.com/api/v4
395
+ export MCP4_OAUTH_CLIENT_ID=your_dcr_client_id
396
+ export MCP4_OAUTH_CLIENT_SECRET=your_dcr_client_secret
397
+ export MCP4_OAUTH_REDIRECT_URI=http://mcp.local:3003/oauth/callback
398
+ # OAuth endpoints are automatically discovered from API base URL
384
399
  ```
400
+ **Note**: DCR and OAuth callback must be registered with the OAuth provider.
385
401
 
386
- **Response when rate limit exceeded**:
387
- ```json
388
- {
389
- "error": "Too Many Requests",
390
- "message": "Rate limit exceeded. Max 100 requests per 60 seconds."
391
- }
392
- ```
393
- HTTP status: `429 Too Many Requests` with `RateLimit-*` headers.
402
+ **Configuration priority:**
403
+ 1. **Explicit URLs**: `MCP4_OAUTH_AUTHORIZATION_URL`, `MCP4_OAUTH_TOKEN_URL` (highest priority)
404
+ 2. **Explicit issuer**: `MCP4_OAUTH_ISSUER` (auto-derives standard OAuth paths)
405
+ 3. **Autodiscovery**: From `MCP4_API_BASE_URL` (fetches RFC 8414 metadata or uses standard paths)
406
+
407
+ **Environment variables:**
408
+ - `MCP4_OAUTH_CLIENT_ID`, `MCP4_OAUTH_CLIENT_SECRET`: OAuth client credentials (required)
409
+ - `MCP4_OAUTH_REDIRECT_URI`: OAuth redirect URI (required, must match registered URI)
410
+ - `MCP4_OAUTH_ISSUER`: OAuth provider issuer URL (optional, auto-derives endpoints)
411
+ - `MCP4_OAUTH_AUTHORIZATION_URL`, `MCP4_OAUTH_TOKEN_URL`: OAuth endpoints (optional, for non-standard paths)
412
+
413
+ See [docs/OAUTH.md](./docs/OAUTH.md) for complete setup guide including OAuth application registration, SSL configuration, and troubleshooting.
414
+
415
+ #### HTTP Rate Limiting (Security)
416
+
417
+ - `MCP4_HTTP_RATE_LIMIT_ENABLED`: Enable rate limiting (default: `true`)
418
+ - `MCP4_HTTP_RATE_LIMIT_WINDOW_MS`: Rate limit window (default: `60000` = 1 minute)
419
+ - `MCP4_HTTP_RATE_LIMIT_MAX_REQUESTS`: Max requests for MCP endpoints (default: `100`)
420
+ - `MCP4_HTTP_RATE_LIMIT_METRICS_MAX`: Max requests for `/metrics` (default: `10`)
421
+
422
+ **OAuth Rate Limiting** (stricter limits for OAuth endpoints):
423
+ - `MCP4_OAUTH_RATE_LIMIT_MAX`: Max OAuth requests per window (default: `10`)
424
+ - `MCP4_OAUTH_RATE_LIMIT_WINDOW_MS`: OAuth rate limit window (default: `600000` = 10 minutes)
425
+
426
+ **Configuration Priority**: Profile > Environment variables > Defaults
427
+
428
+ **Defaults**:
429
+ - 100 requests/minute for MCP endpoints, 10 requests/minute for metrics
430
+ - 10 requests/10 minutes for OAuth endpoints (`/oauth/authorize`, `/oauth/token`, `/oauth/callback`)
431
+
432
+ Returns `429 Too Many Requests` when exceeded.
394
433
 
395
434
  ### Optional - Observability
396
- - `LOG_LEVEL`: `debug`, `info` (default), `warn`, `error`
397
- - `LOG_FORMAT`: `console` (default) or `json`
398
- - `METRICS_ENABLED`: Enable Prometheus metrics (default: `false`)
399
- - `METRICS_PATH`: Metrics endpoint (default: `/metrics`)
435
+ - `MCP4_LOG_LEVEL`: `debug`, `info` (default), `warn`, `error`
436
+ - `MCP4_LOG_FORMAT`: `console` (default) or `json`
437
+ - `MCP4_METRICS_ENABLED`: Enable Prometheus metrics (default: `false`)
438
+ - `MCP4_METRICS_PATH`: Metrics endpoint (default: `/metrics`)
400
439
 
401
440
  **Security Note**:
402
441
  - Sensitive auth tokens are automatically redacted from logs based on your profile's auth configuration (bearer, query, or custom-header)
@@ -467,6 +506,9 @@ npm test
467
506
  - **[docs/EXAMPLE-GITLAB.md](./docs/EXAMPLE-GITLAB.md)** - Complete GitLab API example with curl commands
468
507
  - **[docs/PROFILE-GUIDE.md](./docs/PROFILE-GUIDE.md)** - Guide for creating custom profiles
469
508
  - **[docs/HTTP-TRANSPORT.md](./docs/HTTP-TRANSPORT.md)** - HTTP transport setup and usage
509
+ - **[docs/OAUTH.md](./docs/OAUTH.md)** - OAuth 2.0 authentication setup guide
510
+ - **[docs/MULTI-AUTH.md](./docs/MULTI-AUTH.md)** - Multi-auth support: OAuth + Bearer tokens
511
+ - **[docs/DEPLOYMENT-K8S-OAUTH.md](./docs/DEPLOYMENT-K8S-OAUTH.md)** - Production deployment: Kubernetes + OAuth
470
512
  - **[docs/DOCKER.md](./docs/DOCKER.md)** - Docker deployment guide
471
513
  - **`profiles/`** - Example profiles for OpenAPI specs
472
514
  - **`profile-schema.json`** - JSON Schema for IDE autocomplete
@@ -8,9 +8,9 @@
8
8
  import fs from 'fs/promises';
9
9
  import path from 'path';
10
10
  import { fileURLToPath } from 'url';
11
- import { ProfileLoader } from '../dist/profile-loader.js';
12
- import { OpenAPIParser } from '../dist/openapi-parser.js';
13
- import { ToolGenerator } from '../dist/tool-generator.js';
11
+ import { ProfileLoader } from '../src/profile-loader.js';
12
+ import { OpenAPIParser } from '../src/openapi-parser.js';
13
+ import { ToolGenerator } from '../src/tool-generator.js';
14
14
  const __filename = fileURLToPath(import.meta.url);
15
15
  const __dirname = path.dirname(__filename);
16
16
  async function validateProfile(profilePath, specPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-profile.js","sourceRoot":"","sources":["../../scripts/validate-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-profile.js","sourceRoot":"","sources":["../../scripts/validate-profile.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,8 @@ export interface StepError {
22
22
  export declare class CompositeExecutor {
23
23
  private parser;
24
24
  private httpClient?;
25
- constructor(parser: OpenAPIParser, httpClient?: HttpClient | undefined);
25
+ private parameterAliases;
26
+ constructor(parser: OpenAPIParser, httpClient?: HttpClient | undefined, parameterAliases?: Record<string, string[]>);
26
27
  /**
27
28
  * Execute a series of API calls and merge results
28
29
  *
@@ -53,6 +54,7 @@ export declare class CompositeExecutor {
53
54
  * Resolve path template with actual values
54
55
  *
55
56
  * Example: "/projects/{id}" + {id: "123"} => "/projects/123"
57
+ * Supports parameter_aliases: {project_id: "123"} can map to {id} if configured
56
58
  */
57
59
  private resolvePath;
58
60
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"composite-executor.d.ts","sourceRoot":"","sources":["../../src/composite-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;gBADX,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,UAAU,YAAA;IAGjC;;;;;;;;OAQG;IACG,OAAO,CACX,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,GAAE,OAAe,EAC7B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;OAQG;YACW,WAAW;IA6BzB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW;CAwBpB"}
1
+ {"version":3,"file":"composite-executor.d.ts","sourceRoot":"","sources":["../../src/composite-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,gBAAgB;gBAFhB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,UAAU,YAAA,EACvB,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAGzD;;;;;;;;OAQG;IACG,OAAO,CACX,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,GAAE,OAAe,EAC7B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;OAQG;YACW,WAAW;IA6BzB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW;CAwBpB"}
@@ -8,9 +8,11 @@ import { DAGExecutor } from './dag-executor.js';
8
8
  export class CompositeExecutor {
9
9
  parser;
10
10
  httpClient;
11
- constructor(parser, httpClient) {
11
+ parameterAliases;
12
+ constructor(parser, httpClient, parameterAliases = {}) {
12
13
  this.parser = parser;
13
14
  this.httpClient = httpClient;
15
+ this.parameterAliases = parameterAliases;
14
16
  }
15
17
  /**
16
18
  * Execute a series of API calls and merge results
@@ -113,14 +115,23 @@ export class CompositeExecutor {
113
115
  * Resolve path template with actual values
114
116
  *
115
117
  * Example: "/projects/{id}" + {id: "123"} => "/projects/123"
118
+ * Supports parameter_aliases: {project_id: "123"} can map to {id} if configured
116
119
  */
117
120
  resolvePath(template, args) {
118
121
  return template.replace(/\{(\w+)\}/g, (_, key) => {
119
- const value = args[key];
120
- if (value === undefined) {
121
- throw new Error(`Missing path parameter: ${key}`);
122
+ // Try direct match first
123
+ if (args[key] !== undefined) {
124
+ return String(args[key]);
122
125
  }
123
- return String(value);
126
+ // Try aliases from profile
127
+ const possibleAliases = this.parameterAliases[key] || [];
128
+ for (const alias of possibleAliases) {
129
+ if (args[alias] !== undefined) {
130
+ return String(args[alias]);
131
+ }
132
+ }
133
+ throw new Error(`Missing path parameter: ${key}` +
134
+ (possibleAliases.length > 0 ? `. Tried aliases: ${possibleAliases.join(', ')}` : ''));
124
135
  });
125
136
  }
126
137
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"composite-executor.js","sourceRoot":"","sources":["../../src/composite-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composite-executor.js","sourceRoot":"","sources":["../../src/composite-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,WAAW,EAAuB,MAAM,mBAAmB,CAAC;AAgBrE,MAAM,OAAO,iBAAiB;IAElB;IACA;IACA;IAHV,YACU,MAAqB,EACrB,UAAuB,EACvB,mBAA6C,EAAE;QAF/C,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAa;QACvB,qBAAgB,GAAhB,gBAAgB,CAA+B;IACtD,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CACX,KAAsB,EACtB,IAA6B,EAC7B,eAAwB,KAAK,EAC7B,UAAuB;QAEvB,uCAAuC;QACvC,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,0DAA0D;QAC1D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,kDAAkD;YAClD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CACzD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CACxE,CAAC;YAEF,+CAA+C;YAC/C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAE7D,kBAAkB;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAE/C,IAAI,aAAa,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACzC,8BAA8B;oBAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;oBACrC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACvD,cAAc,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,cAAc;oBACd,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;oBACnC,MAAM,SAAS,GAAc;wBAC3B,UAAU,EAAE,iBAAiB;wBAC7B,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC7D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAEvB,sCAAsC;oBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAE9D,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,MAAM,IAAI,KAAK,CACb,kBAAkB,iBAAiB,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,YAAY,SAAS,CAAC,KAAK,IAAI;4BACtF,oBAAoB,cAAc,IAAI;4BACtC,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAC5B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,eAAe,EAAE,cAAc;YAC/B,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/C,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,WAAW,CACvB,IAAmB,EACnB,SAAiB,EACjB,IAA6B,EAC7B,UAAuB;QAEvB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAElD,kBAAkB;QAClB,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE;YAC1D,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;YAChD,WAAW,EAAE,SAAS,CAAC,WAAW;SACnC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,IAAY;QAC5B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAE7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,QAAgB,EAAE,IAA6B;QACjE,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC/C,yBAAyB;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC;YAED,2BAA2B;YAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,EAAE;gBAChC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAAwB,EAAE,IAA6B;QAChF,MAAM,MAAM,GAAsC,EAAE,CAAC;QAErD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,iDAAiD;gBACjD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACK,WAAW,CAAC,MAA+B,EAAE,IAAY,EAAE,KAAc;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,MAAiC,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/B,6CAA6C;YAC7C,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;gBAClF,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,KAAK;oBAClC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,OAAO,QAAQ,iBAAiB,CAC5E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3C,CAAC;CACF"}
@@ -22,15 +22,64 @@ export declare const TIME: {
22
22
  */
23
23
  export declare const HTTP_STATUS: {
24
24
  readonly OK: 200;
25
+ readonly CREATED: 201;
26
+ readonly ACCEPTED: 202;
27
+ readonly FOUND: 302;
25
28
  readonly MULTIPLE_CHOICES: 300;
26
29
  readonly BAD_REQUEST: 400;
27
30
  readonly UNAUTHORIZED: 401;
28
31
  readonly FORBIDDEN: 403;
29
32
  readonly NOT_FOUND: 404;
33
+ readonly METHOD_NOT_ALLOWED: 405;
34
+ readonly NOT_ACCEPTABLE: 406;
30
35
  readonly TOO_MANY_REQUESTS: 429;
31
36
  readonly INTERNAL_SERVER_ERROR: 500;
32
37
  readonly BAD_GATEWAY: 502;
33
38
  readonly SERVICE_UNAVAILABLE: 503;
34
39
  readonly GATEWAY_TIMEOUT: 504;
35
40
  };
41
+ /**
42
+ * MIME type constants
43
+ *
44
+ * Why: Prevents typos in content-type headers and ensures consistency.
45
+ */
46
+ export declare const MIME_TYPES: {
47
+ readonly JSON: "application/json";
48
+ readonly EVENT_STREAM: "text/event-stream";
49
+ readonly FORM_URLENCODED: "application/x-www-form-urlencoded";
50
+ };
51
+ /**
52
+ * OAuth and Well-Known URL paths
53
+ *
54
+ * Why: Centralized OAuth-related paths for consistency and easy updates.
55
+ */
56
+ export declare const OAUTH_PATHS: {
57
+ readonly AUTHORIZE: "/oauth/authorize";
58
+ readonly TOKEN: "/oauth/token";
59
+ readonly CALLBACK: "/oauth/callback";
60
+ readonly REGISTER: "/oauth/register";
61
+ readonly WELL_KNOWN_AUTHORIZATION_SERVER: "/.well-known/oauth-authorization-server";
62
+ readonly WELL_KNOWN_PROTECTED_RESOURCE: "/.well-known/oauth-protected-resource/mcp";
63
+ };
64
+ /**
65
+ * Default timeout and interval values (in milliseconds)
66
+ *
67
+ * Why: Centralized timing configuration for sessions, heartbeats, and cleanup.
68
+ */
69
+ export declare const TIMEOUTS: {
70
+ readonly SESSION_TIMEOUT_MS: number;
71
+ readonly HEARTBEAT_INTERVAL_MS: number;
72
+ readonly RATE_LIMIT_WINDOW_MS: 60000;
73
+ readonly CLEANUP_INTERVAL_MS: 60000;
74
+ };
75
+ /**
76
+ * OAuth rate limiting defaults
77
+ *
78
+ * Why: Centralized OAuth rate limiting configuration to prevent duplication
79
+ * and ensure consistency across mcp-server.ts and http-transport.ts
80
+ */
81
+ export declare const OAUTH_RATE_LIMIT: {
82
+ readonly MAX_REQUESTS: 10;
83
+ readonly WINDOW_MS: number;
84
+ };
36
85
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;CAMP,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;CAYd,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;CAMP,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAiBd,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC"}