# NOC.McpServer

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/nice-one-code/NOC.McpServer  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/noc-mcpserver

## Description
MCP server exposing NiceOneCode's JSON-to-C# converter as an AI-callable tool.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "noc-mcpserver": {
    "command": "npx",
    "args": ["-y","noc-mcpserver"]
  }
}
```

## Documentation & 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
