Add NuGet to the MCP Registry, similar to npm and Python
This commit is contained in:
parent
81e5174a59
commit
68ee3b9af9
7 changed files with 49 additions and 9 deletions
|
|
@ -31,6 +31,7 @@ graph TB
|
|||
NPM[npm Registry]
|
||||
PYPI[PyPI Registry]
|
||||
DOCKER[Docker Hub]
|
||||
NUGET[NuGet Gallery]
|
||||
DNS[DNS Services]
|
||||
GH[GitHub OAuth]
|
||||
end
|
||||
|
|
@ -46,6 +47,7 @@ graph TB
|
|||
API -.-> |Verify| DNS
|
||||
API -.-> |Reference| NPM
|
||||
API -.-> |Reference| PYPI
|
||||
API -.-> |Reference| NUGET
|
||||
API -.-> |Reference| DOCKER
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ The registry serves as the authoritative metadata repository for publicly-availa
|
|||
## 2. Minimal Operational Burden
|
||||
|
||||
- Design for low maintenance and operational overhead
|
||||
- Delegate complexity to existing services where possible (GitHub for auth, npm/PyPI for packages)
|
||||
- Delegate complexity to existing services where possible (GitHub for auth, npm/PyPI/NuGet for packages)
|
||||
- Avoid features that require constant human intervention or moderation
|
||||
- Build for reasonable downtime tolerance (24h acceptable) by having consumers cache data for their end-users
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ The registry serves as the authoritative metadata repository for publicly-availa
|
|||
|
||||
## 4. Meets Industry Security Standards
|
||||
|
||||
- Leverage existing package registries (npm, PyPI, Docker Hub, etc.) for source code distribution, obviating the need to reinvent source code security
|
||||
- Leverage existing package registries (npm, PyPI, NuGet, Docker Hub, etc.) for source code distribution, obviating the need to reinvent source code security
|
||||
- Use mechanisms like DNS verification, OAuth to provide base layer of authentication and trust
|
||||
- Implement rate limiting, field validation, and blacklisting to prevent abuse
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ The MCP Registry is the official centralized metadata repository for publicly-ac
|
|||
|
||||
### Is the MCP Registry a package registry?
|
||||
|
||||
No. The MCP Registry stores metadata about MCP servers and references to where they're hosted (npm, PyPI, Docker Hub, etc.), but does not host the actual source code or packages.
|
||||
No. The MCP Registry stores metadata about MCP servers and references to where they're hosted (npm, PyPI, NuGet, Docker Hub, etc.), but does not host the actual source code or packages.
|
||||
|
||||
### Who should use the MCP Registry directly?
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ Servers are published by submitting a `server.json` file through our CLI tool. T
|
|||
|
||||
1. GitHub authentication
|
||||
2. A public GitHub repository (even for closed-source servers - just for the metadata)
|
||||
3. Your server package published to a supported registry (npm, PyPI, Docker Hub, etc.)
|
||||
3. Your server package published to a supported registry (npm, PyPI, NuGet, Docker Hub, etc.)
|
||||
4. Optional: DNS verification for custom namespacing
|
||||
|
||||
### What namespaces are available?
|
||||
|
|
@ -54,6 +54,7 @@ No. While open source code is encouraged, it is not required for either locally
|
|||
|
||||
- npm (Node.js packages)
|
||||
- PyPI (Python packages)
|
||||
- NuGet.org (.NET packages)
|
||||
- GitHub Container Registry (GHCR)
|
||||
|
||||
More can be added as the community desires; feel free to open an issue if you are interested in building support for another registry.
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ components:
|
|||
properties:
|
||||
registry_name:
|
||||
type: string
|
||||
enum: [npm, docker, pypi, homebrew]
|
||||
enum: [npm, docker, pypi, homebrew, nuget]
|
||||
example: "npm"
|
||||
name:
|
||||
type: string
|
||||
|
|
|
|||
|
|
@ -179,6 +179,41 @@
|
|||
}
|
||||
```
|
||||
|
||||
## NuGet (.NET) Package Example
|
||||
|
||||
The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Knapcode.SampleMcpServer",
|
||||
"description": "Sample NuGet MCP server for a random number and random weather",
|
||||
"repository": {
|
||||
"url": "https://github.com/joelverhagen/Knapcode.SampleMcpServer",
|
||||
"source": "github"
|
||||
},
|
||||
"version_detail": {
|
||||
"version": "0.3.0",
|
||||
"release_date": "2025-07-02T18:54:28.00Z"
|
||||
},
|
||||
"packages": [
|
||||
{
|
||||
"registry_name": "nuget",
|
||||
"name": "Knapcode.SampleMcpServer",
|
||||
"version": "0.3.0-beta",
|
||||
"runtime_hint": "dnx",
|
||||
"environment_variables": [
|
||||
{
|
||||
"name": "WEATHER_CHOICES",
|
||||
"description": "Comma separated list of weather descriptions to randomly select.",
|
||||
"is_required": true,
|
||||
"is_secret": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Complex Docker Server with Multiple Arguments
|
||||
|
||||
```json
|
||||
|
|
|
|||
|
|
@ -88,7 +88,8 @@
|
|||
"npm",
|
||||
"docker",
|
||||
"pypi",
|
||||
"homebrew"
|
||||
"homebrew",
|
||||
"nuget"
|
||||
],
|
||||
"description": "Package registry type",
|
||||
"example": "npm"
|
||||
|
|
@ -105,10 +106,11 @@
|
|||
},
|
||||
"runtime_hint": {
|
||||
"type": "string",
|
||||
"description": "Hint for appropriate runtime (e.g., npx, uvx)",
|
||||
"description": "Hint for appropriate runtime (e.g., npx, uvx, dnx)",
|
||||
"examples": [
|
||||
"npx",
|
||||
"uvx"
|
||||
"uvx",
|
||||
"dnx"
|
||||
]
|
||||
},
|
||||
"runtime_arguments": {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
}
|
||||
]
|
||||
},{
|
||||
"registry_name": "docker>",
|
||||
"registry_name": "docker",
|
||||
"name": "io.github.<owner>/<server-name>-cli",
|
||||
"version": "0.123.223",
|
||||
"runtime_hint": "docker",
|
||||
|
|
|
|||
Loading…
Reference in a new issue