io.github.mr-rahulmaurya/NOC.McpServer
MCP server exposing NiceOneCode's JSON-to-C# converter as an AI-callable tool.
Open source Open in the app JSON README (API)
About
MCP server exposing NiceOneCode's JSON-to-C# converter as an AI-callable tool.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- mr-rahulmaurya
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.6
- Stars
- 1
- Last push
- 2026-07-07T06:46:35Z
- Repository state
- ativo
- Language
- C#
- License
- MIT
- Added
- 2026-08-29 04:00:51
- Updated
- 2026-08-29 04:00:51
- Origin id
io.github.mr-rahulmaurya/NOC.McpServer
README
# NOC.McpServer
An MCP (Model Context Protocol) server that exposes [NiceOneCode](https://www.niceonecode.com)'s JSON → C# class converter as a tool AI assistants can call directly — no more pasting JSON into a web form.
Built with the official [ModelContextProtocol C# SDK](https://github.com/modelcontextprotocol/csharp-sdk), running over stdio transport. Published on [NuGet.org](https://www.nuget.org/packages/NOC.McpServer) under the `McpServer` package type.
## What it does
Exposes a single tool, `json_to_c_sharp`, which takes a JSON sample and returns the equivalent C# class definitions, generated by NiceOneCode's converter.
Authentication is handled transparently: the server logs in to your NiceOneCode account on first use, caches the JWT, and automatically re-authenticates if it expires.
## Prerequisites
- A NiceOneCode account (userid + password)
- [.NET 9 SDK](https://dotnet.microsoft.com/download) or later, to install/run the tool
- [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) if you want to use `dnx` (VS Code, one-shot execution) instead of a persistent install
- [.NET 9 SDK](https://dotnet.microsoft.com/download) specifically if building from source
## Creating an Account
If you don't already have a NiceOneCode account, you can register one via API:
```bash
curl -X POST \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
-d '{
"UserName": "your-username",
"Password": "your-password",
"Email": "your-email@example.com",
"GenderID": 1
}' \
'https://www.niceonecode.com/api/nc-register'
```
| Field | Description |
|---|---|
| `UserName` | Desired username |
| `Password` | Desired password — use this as `NOC_PASSWORD` |
| `Email` | A valid email address |
| `GenderID` | `1` = Male, `2` = Female |
**Important:** the response body is a plain string, not a JSON object — for example:
```json
"your-userid"
```
Use this returned value as `NOC_USERID` (not necessarily assumed to always match the `UserName` you submitted — always use the value the API actually returns, rather than the value you sent).
## Install
```bash
dotnet tool install -g NOC.McpServer
```
This gives you the `noc-mcp` command, used in every client config below.
## Configuration
The server reads two required environment variables:
| Variable | Description |
|---|---|
| `NOC_USERID` | Your NiceOneCode userid |
| `NOC_PASSWORD` | Your NiceOneCode password |
Never commit real credentials. Set them via your MCP client's config (see below) or your local shell environment.
## Connecting to an MCP client
### Claude Desktop
Edit `claude_desktop_config.json` (Windows: `%APPDATA%\Claude\claude_desktop_config.json`, macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
```
Fully quit and reopen Claude Desktop after editing.
### Claude Code
```bash
claude mcp add-json niceonecode '{"command":"noc-mcp","env":{"NOC_USERID":"your-userid","NOC_PASSWORD":"your-password"}}'
```
Verify with `claude mcp list`.
### Codex
```bash
codex mcp add niceonecode --env NOC_USERID=your-userid --env NOC_PASSWORD=your-password -- noc-mcp
```
Verify inside a session with `/mcp`.
### VS Code
Add to `.vscode/mcp.json` in your workspace, or your global VS Code MCP settings:
```json
{
"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 will prompt for your userid and password the first time the server starts. Requires the .NET 10 SDK for `dnx`, which downloads and runs the latest published version on demand — no separate install step needed. Pin a specific version with `"NOC.McpServer@1.0.7"` instead of `"NOC.McpServer"` if you want reproducible behavior rather than always-latest.
**Note:** a `global.json` in your working directory pinning an SDK below .NET 10 will cause `dnx` to fail with a confusing "unrecognized argument" error rather than a clear version mismatch — check for one if this happens.
### Gemini CLI
Edit `~/.gemini/settings.json` (global) or `.gemini/settings.json` (project-specific):
```json
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
```
Restart Gemini CLI, then run `/mcp` to confirm it's connected.
**Windows note:** if the server fails to start directly, wrap it through `cmd`:
```json
{
"mcpServers": {
"niceonecode": {
"command": "cmd",
"args": ["/c", "noc-mcp"],
"env": { "NOC_USERID": "your-userid", "NOC_PASSWORD": "your-password" }
}
}
}
```
### Windsurf
Edit `~/.codeium/windsurf/mcp_config.json` (macOS/Linux) or `%USERPROFILE%\.codeium\windsurf\mcp_config.json` (Windows), or open it via the MCPs icon in the Cascade panel → **Configure**:
```json
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
```
Fully quit and reopen Windsurf after saving.
### Devin
**Devin (cloud):** Settings → Connections → MCP servers → **Add a custom MCP**:
```json
{
"transport": "STDIO",
"command": "noc-mcp",
"args": [],
"env_variables": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
```
**Devin for Terminal:** add to `.devin/config.json`:
```json
{
"mcpServers": {
"niceonecode": {
"command": "noc-mcp",
"env": {
"NOC_USERID": "your-userid",
"NOC_PASSWORD": "your-password"
}
}
}
}
```
**Devin Desktop** shares Windsurf's `mcp_config.json` — no separate setup needed if already configured above.
## Building from source
If you'd rather build locally instead of installing from NuGet:
```bash
git clone https://github.com/nice-one-code/NOC.McpServer.git
cd NOC.McpServer
dotnet build
```
Then point any client above at the compiled DLL instead of `noc-mcp`, e.g. for Claude Desktop:
```json
{
"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"
}
}
}
}
```
Use forward slashes in the path even on Windows. The same substitution (`dotnet` + DLL path in place of `noc-mcp`) applies to any client config in this README.
## Testing locally with the MCP Inspector
```bash
npx @modelcontextprotocol/inspector dotnet bin/Debug/net9.0/NOC.McpServer.dll
```
This opens a browser UI where you can invoke `json_to_c_sharp` manually and inspect the raw request/response. Set your credentials under the Inspector's Environment Variables panel before connecting.
## Project structure