mcpField
N
NOC.McpServer

NOC.McpServer

本地服务
github.com/nice-one-code开发工具117 周前更新

关于 NOC.McpServer

NOC.McpServer 是面向需要将 JSON 样例转换为 C# 类定义的 AI 助手的 .NET MCP 服务。它通过单个工具提供 NiceOneCode 转换器,并处理账户认证与令牌续期。

主要功能

  1. 01将 JSON 样例转换为 C# 类
  2. 02通过单个 MCP 工具提供转换
  3. 03缓存 JWT 凭据
  4. 04JWT 过期时重新认证

适用场景

  1. 01根据 JSON 样例生成 C# 类
  2. 02在兼容 MCP 的助手中调用转换器

MCP 相关

服务通过 stdio 运行,并向 MCP 客户端提供 `json_to_c_sharp` 工具。它使用 NiceOneCode 账户认证,并在需要时续期 JWT。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
nugetNOC.McpServer1.0.7

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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有效的电子邮件地址
GenderID1 = 男,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 面板中设置凭据。

项目结构

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。