You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update the docs with info for remote MCP servers (#444)
<!-- Provide a brief summary of your changes -->
## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->
The following PR updates the publishing docs with information about
remote MCP servers.
Motivated by
#438
## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->
## Breaking Changes
<!-- Will users need to update their code or configurations? -->
No
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
---------
Signed-off-by: Radoslav Dimitrov <[email protected]>
"description": "Cloud-hosted MCP server for API operations",
325
+
"version": "2.0.0",
326
+
"remotes": [
327
+
{
328
+
"type": "sse",
329
+
"url": "https://mcp.yourcompany.com/sse"
330
+
}
331
+
]
332
+
}
333
+
```
334
+
335
+
### Multiple Transport Options
336
+
337
+
You can offer multiple connection methods:
338
+
339
+
```json
340
+
{
341
+
"remotes": [
342
+
{
343
+
"type": "sse",
344
+
"url": "https://mcp.yourcompany.com/sse"
345
+
},
346
+
{
347
+
"type": "streamable-http",
348
+
"url": "https://mcp.yourcompany.com/http"
349
+
}
350
+
]
351
+
}
352
+
```
353
+
354
+
### URL Validation Requirements
355
+
356
+
- For `com.yourcompany/*` namespaces: URLs must be on `yourcompany.com` or its subdomains
357
+
- For `io.github.username/*` namespaces: No URL restrictions (but you must authenticate via GitHub)
358
+
359
+
### Authentication Headers (Optional)
360
+
361
+
Configure headers that clients should send when connecting:
362
+
363
+
```json
364
+
{
365
+
"remotes": [
366
+
{
367
+
"type": "sse",
368
+
"url": "https://mcp.yourcompany.com/sse",
369
+
"headers": [
370
+
{
371
+
"name": "X-API-Key",
372
+
"description": "API key for authentication",
373
+
"is_required": true,
374
+
"is_secret": true
375
+
}
376
+
]
377
+
}
378
+
]
379
+
}
380
+
```
381
+
382
+
</details>
383
+
292
384
## Step 4: Authenticate
293
385
294
386
Choose your authentication method based on your namespace:
@@ -357,6 +449,7 @@ See these real-world examples of published servers:
357
449
-**Update your server**: Publish new versions with updated server.json files
358
450
-**Set up CI/CD**: Automate publishing with [GitHub Actions](github-actions.md)
359
451
-**Learn more**: Understand [server.json format](../../reference/server-json/generic-server-json.md) in depth
452
+
-**More examples**: See [remote server configurations](../../reference/server-json/generic-server-json.md#remote-server-example) and [hybrid deployments](../../reference/server-json/generic-server-json.md#server-with-remote-and-package-options) in the schema documentation
0 commit comments