README.md•3.11 kB
<p align="center">
  <a href="./assets/randomUserLogoRemake.svg">
    <img src="./assets/randomUserLogoRemake.svg" align="c" height="100" />
  </a>
</p>
# RandomUser MCP Server
An MCP server that provides enhanced access to the randomuser.me API with additional features like custom formatting, password generation, and weighted nationality distribution.
## Installation
Clone the repository:
```bash
git clone https://github.com/rycid/randomuserMCP.git
cd randomuserMCP
# Install dependencies
npm install
# Build the project
npm run build
```
## Usage
Add to your MCP settings file (`claude_desktop_config.json` or `cline_mcp_settings.json`):
```json
{
  "mcpServers": {
    "randomuser": {
      "command": "node",
      "args": ["path/to/randomuserMCP/build/index.js"]
    }
  }
}
```
### Available Tools
#### get_random_user
Get a single random user with customizable options.
```json
{
  "gender": "female",
  "nationality": "US",
  "fields": {
    "mode": "include",
    "values": ["name", "email", "phone"]
  },
  "format": {
    "type": "json",
    "structure": {
      "flattenObjects": true,
      "nameFormat": "full"
    }
  },
  "password": {
    "charsets": ["special", "upper", "lower", "number"],
    "minLength": 8,
    "maxLength": 12
  }
}
```
#### get_multiple_users
Get multiple random users with weighted nationality distribution.
```json
{
  "count": 10,
  "nationality": ["US", "GB", "FR"],
  "nationalityWeights": {
    "US": 0.5,
    "GB": 0.3,
    "FR": 0.2
  },
  "fields": {
    "mode": "include",
    "values": ["name", "email", "nat"]
  },
  "format": {
    "type": "csv",
    "csv": {
      "delimiter": ",",
      "includeHeader": true
    }
  }
}
```
### Output Formats
The server supports multiple output formats:
#### JSON (default)
- Nested or flattened objects
- Customizable name formats (full, first_last, separate)
- Date formatting options (iso, unix, formatted)
#### CSV
- Customizable delimiter
- Optional headers
- Automatically flattened data structure
#### SQL
- Multiple dialect support (MySQL, PostgreSQL, SQLite)
- Optional CREATE TABLE statements
- Proper escaping and type handling
#### XML
- Standard XML format
- Nested data structure
- Proper escaping of special characters
### Field Selection
Include or exclude specific fields:
```json
{
  "fields": {
    "mode": "include",  // or "exclude"
    "values": [
      "name",
      "phone",
      "email",
      "location",
      "picture",
      "dob",
      "login",
      "registered",
      "id",
      "cell",
      "nat"
    ]
  }
}
```
### Supported Nationalities
- AU: Australia
- BR: Brazil
- CA: Canada
- CH: Switzerland
- DE: Germany
- DK: Denmark
- ES: Spain
- FI: Finland
- FR: France
- GB: United Kingdom
- IE: Ireland
- IN: India
- IR: Iran
- MX: Mexico
- NL: Netherlands
- NO: Norway
- NZ: New Zealand
- RS: Serbia
- TR: Turkey
- UA: Ukraine
- US: United States
## Development
```bash
# Install dependencies
npm install
# Build the project
npm run build
# Start in development mode (with watch mode)
npm run dev
# Start the server
npm start
```
## License
MIT