关于 NOC.McpServer
NOC.McpServer 是一个 .NET MCP 服务,可调用 NiceOneCode 的转换器,将 JSON 示例转换为 C# 类定义。它提供一个工具,并处理账户认证和令牌续期。
主要功能
- 01将 JSON 示例转换为 C# 类
- 02使用 NiceOneCode 转换器
- 03缓存并续期认证令牌
- 04作为 .NET 工具安装
适用场景
- 01根据 JSON 示例生成 C# 类
- 02无需使用网页表单转换 JSON
MCP 相关
该 stdio MCP 服务向 MCP 客户端提供 `json_to_c_sharp` 工具,根据 JSON 示例返回生成的类定义。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
NOC.McpServer
一个 MCP(Model Context Protocol)服务,可将 NiceOneCode 的 JSON → C# 类转换器作为工具提供给 AI 助手直接调用——再也不用把 JSON 粘贴到网页表单中了。
使用官方的 ModelContextProtocol C# SDK 构建,通过 stdio 传输运行。以 McpServer 包类型发布在 NuGet.org 上。
功能
提供一个名为 json_to_c_sharp 的工具,接收 JSON 示例,并返回由 NiceOneCode 转换器生成的等效 C# 类定义。
身份验证会透明处理:服务首次使用时会登录你的 NiceOneCode 账号,缓存 JWT,并在其过期时自动重新验证。
前置条件
- 一个 NiceOneCode 账号(userid + password)
- .NET 9 SDK 或更高版本,用于安装/运行该工具
- 如果要使用
dnx(VS Code、一次性执行)而非持久安装,则需要 .NET 10 SDK - 如果从源代码构建,则必须使用 .NET 9 SDK
创建账号
如果你还没有 NiceOneCode 账号,可以通过 API 注册:
curl -X POST \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
-d '{
"UserName": "your-username",
"Password": "your-password",
"Email": "[email protected]",
"GenderID": 1
}' \
'https://www.niceonecode.com/api/nc-register'
| 字段 | 说明 |
|---|---|
UserName | 希望使用的用户名 |
Password | 希望使用的密码——将其用作 NOC_PASSWORD |
Email | 有效的电子邮件地址 |
GenderID | 1 = 男,2 = 女 |
重要: 响应正文是一个纯字符串,而不是 JSON 对象——例如:
"your-userid"
将此返回值用作 NOC_USERID(不要假定它始终与提交的 UserName 相同——请始终使用 API 实际返回的值,而不是你发送的值)。
安装
dotnet tool install -g NOC.McpServer
此操作会提供 noc-mcp 命令,以下各客户端配置都会用到它。
配置
服务会读取两个必需的环境变量:
| 变量 | 说明 |
|---|---|
NOC_USERID | 你的 NiceOneCode userid |
NOC_PASSWORD | 你的 NiceOneCode 密码 |
切勿提交真实凭据。请通过 MCP 客户端的配置(见下文)或本地 shell 环境设置它们。
连接到 MCP 客户端
Claude Desktop
编辑 claude_desktop_config.json(Windows:%APPDATA%\Claude\claude_desktop_config.json,macOS:~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
编辑后,完全退出并重新打开 Claude Desktop。
Claude Code
claude mcp add-json niceonecode '{"command":"noc-mcp","env":{"NOC_USERID":"your-userid","NOC_PASSWORD":"your-password"}}'
使用 claude mcp list 验证。
Codex
codex mcp add niceonecode --env NOC_USERID=your-userid --env NOC_PASSWORD=your-password -- noc-mcp
在会话中使用 /mcp 验证。
VS Code
将以下内容添加到工作区中的 .vscode/mcp.json,或添加到 VS Code 全局 MCP 设置中:
{
"inputs": [
{
"type": "promptString",
"id": "NOC_USERID",
"description": "Your NiceOneCode account userid"
},
{
"type": "promptString",
"id": "NOC_PASSWORD",
"description": "Your NiceOneCode account password",
"password": true
}
],
"servers": {
"NOC.McpServer": {
"type": "stdio",
"command": "dnx",
"args": ["NOC.McpServer", "--yes"],
"env": {
"NOC_USERID": "${input:NOC_USERID}",
"NOC_PASSWORD": "${input:NOC_PASSWORD}"
}
}
}
}
服务首次启动时,VS Code 会提示你输入 userid 和密码。dnx 需要 .NET 10 SDK;它会按需下载并运行最新发布版本,无需单独安装。如果你希望行为可复现,而不是始终使用最新版本,可将 "NOC.McpServer" 替换为 "[email protected]",以固定特定版本。
**注意:**如果工作目录中的 global.json 将 SDK 固定在低于 .NET 10 的版本,dnx 会报令人困惑的“unrecognized argument”错误,而不是明确提示版本不匹配——如果遇到此问题,请检查是否存在该文件。
Gemini CLI
编辑 ~/.gemini/settings.json(全局)或 .gemini/settings.json(项目专用):
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
重启 Gemini CLI,然后运行 /mcp 确认连接成功。
**Windows 注意事项:**如果服务无法直接启动,请通过 cmd 封装运行:
{
"mcpServers": {
"niceonecode": {
"command": "cmd",
"args": ["/c", "noc-mcp"],
"env": { "NOC_USERID": "your-userid", "NOC_PASSWORD": "your-password" }
}
}
}
Windsurf
编辑 ~/.codeium/windsurf/mcp_config.json(macOS/Linux)或 %USERPROFILE%\.codeium\windsurf\mcp_config.json(Windows),也可以通过 Cascade 面板中的 MCPs 图标 → Configure 打开:
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
保存后,完全退出并重新打开 Windsurf。
Devin
Devin(云端): Settings → Connections → MCP servers → Add a custom MCP:
{
"transport": "STDIO",
"command": "noc-mcp",
"args": [],
"env_variables": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
Devin for Terminal: 添加到 .devin/config.json:
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
Devin Desktop 与 Windsurf 共用 mcp_config.json — 如果已按上述说明完成配置,则无需单独设置。
从源代码构建
如果你更愿意在本地构建,而不是从 NuGet 安装:
git clone https://github.com/nice-one-code/NOC.McpServer.git
cd NOC.McpServer
dotnet build
然后将上述任意客户端指向编译后的 DLL,而不是 noc-mcp,例如 Claude Desktop 的配置:
{
"mcpServers": {
"niceonecode": {
"command": "dotnet",
"args": ["/absolute/path/to/NOC.McpServer/bin/Debug/net9.0/NOC.McpServer.dll"],
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
即使在 Windows 上,路径中也要使用正斜杠。同样的替换方式(用 dotnet + DLL 路径代替 noc-mcp)适用于本 README 中的任何客户端配置。
使用 MCP Inspector 在本地测试
npx @modelcontextprotocol/inspector dotnet bin/Debug/net9.0/NOC.McpServer.dll
这会打开一个浏览器界面,你可以在其中手动调用 json_to_c_sharp 并检查原始请求/响应。连接前,请在 Inspector 的 Environment Variables 面板中设置凭据。
项目结构
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。