Skip to content

Commit 68ee3b9

Browse files
joelverhagentoby
authored andcommitted
Add NuGet to the MCP Registry, similar to npm and Python
1 parent 81e5174 commit 68ee3b9

File tree

7 files changed

+49
-9
lines changed

7 files changed

+49
-9
lines changed

docs/architecture.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ graph TB
3131
NPM[npm Registry]
3232
PYPI[PyPI Registry]
3333
DOCKER[Docker Hub]
34+
NUGET[NuGet Gallery]
3435
DNS[DNS Services]
3536
GH[GitHub OAuth]
3637
end
@@ -46,6 +47,7 @@ graph TB
4647
API -.-> |Verify| DNS
4748
API -.-> |Reference| NPM
4849
API -.-> |Reference| PYPI
50+
API -.-> |Reference| NUGET
4951
API -.-> |Reference| DOCKER
5052
```
5153

docs/design_principles.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ The registry serves as the authoritative metadata repository for publicly-availa
99
## 2. Minimal Operational Burden
1010

1111
- Design for low maintenance and operational overhead
12-
- Delegate complexity to existing services where possible (GitHub for auth, npm/PyPI for packages)
12+
- Delegate complexity to existing services where possible (GitHub for auth, npm/PyPI/NuGet for packages)
1313
- Avoid features that require constant human intervention or moderation
1414
- Build for reasonable downtime tolerance (24h acceptable) by having consumers cache data for their end-users
1515

@@ -21,7 +21,7 @@ The registry serves as the authoritative metadata repository for publicly-availa
2121

2222
## 4. Meets Industry Security Standards
2323

24-
- Leverage existing package registries (npm, PyPI, Docker Hub, etc.) for source code distribution, obviating the need to reinvent source code security
24+
- Leverage existing package registries (npm, PyPI, NuGet, Docker Hub, etc.) for source code distribution, obviating the need to reinvent source code security
2525
- Use mechanisms like DNS verification, OAuth to provide base layer of authentication and trust
2626
- Implement rate limiting, field validation, and blacklisting to prevent abuse
2727

docs/faq.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The MCP Registry is the official centralized metadata repository for publicly-ac
1515

1616
### Is the MCP Registry a package registry?
1717

18-
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.
18+
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.
1919

2020
### Who should use the MCP Registry directly?
2121

@@ -37,7 +37,7 @@ Servers are published by submitting a `server.json` file through our CLI tool. T
3737

3838
1. GitHub authentication
3939
2. A public GitHub repository (even for closed-source servers - just for the metadata)
40-
3. Your server package published to a supported registry (npm, PyPI, Docker Hub, etc.)
40+
3. Your server package published to a supported registry (npm, PyPI, NuGet, Docker Hub, etc.)
4141
4. Optional: DNS verification for custom namespacing
4242

4343
### What namespaces are available?
@@ -54,6 +54,7 @@ No. While open source code is encouraged, it is not required for either locally
5454

5555
- npm (Node.js packages)
5656
- PyPI (Python packages)
57+
- NuGet.org (.NET packages)
5758
- GitHub Container Registry (GHCR)
5859

5960
More can be added as the community desires; feel free to open an issue if you are interested in building support for another registry.

docs/openapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ components:
171171
properties:
172172
registry_name:
173173
type: string
174-
enum: [npm, docker, pypi, homebrew]
174+
enum: [npm, docker, pypi, homebrew, nuget]
175175
example: "npm"
176176
name:
177177
type: string

docs/server-json/examples.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,41 @@
179179
}
180180
```
181181

182+
## NuGet (.NET) Package Example
183+
184+
The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6.
185+
186+
```json
187+
{
188+
"name": "Knapcode.SampleMcpServer",
189+
"description": "Sample NuGet MCP server for a random number and random weather",
190+
"repository": {
191+
"url": "https://github.com/joelverhagen/Knapcode.SampleMcpServer",
192+
"source": "github"
193+
},
194+
"version_detail": {
195+
"version": "0.3.0",
196+
"release_date": "2025-07-02T18:54:28.00Z"
197+
},
198+
"packages": [
199+
{
200+
"registry_name": "nuget",
201+
"name": "Knapcode.SampleMcpServer",
202+
"version": "0.3.0-beta",
203+
"runtime_hint": "dnx",
204+
"environment_variables": [
205+
{
206+
"name": "WEATHER_CHOICES",
207+
"description": "Comma separated list of weather descriptions to randomly select.",
208+
"is_required": true,
209+
"is_secret": false
210+
}
211+
]
212+
}
213+
]
214+
}
215+
```
216+
182217
## Complex Docker Server with Multiple Arguments
183218

184219
```json

docs/server-json/schema.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@
8888
"npm",
8989
"docker",
9090
"pypi",
91-
"homebrew"
91+
"homebrew",
92+
"nuget"
9293
],
9394
"description": "Package registry type",
9495
"example": "npm"
@@ -105,10 +106,11 @@
105106
},
106107
"runtime_hint": {
107108
"type": "string",
108-
"description": "Hint for appropriate runtime (e.g., npx, uvx)",
109+
"description": "Hint for appropriate runtime (e.g., npx, uvx, dnx)",
109110
"examples": [
110111
"npx",
111-
"uvx"
112+
"uvx",
113+
"dnx"
112114
]
113115
},
114116
"runtime_arguments": {

tools/publisher/server.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
}
2525
]
2626
},{
27-
"registry_name": "docker>",
27+
"registry_name": "docker",
2828
"name": "io.github.<owner>/<server-name>-cli",
2929
"version": "0.123.223",
3030
"runtime_hint": "docker",

0 commit comments

Comments
 (0)