Skip to main content
Glama
tqmvt
by tqmvt
README.md
# Test MCP Server

A Model Context Protocol (MCP) server for managing user data with support for resources, tools, and prompts.

## Features

### Resources

The server provides two resource endpoints for accessing user data:

- **All Users** (`users://all`) - Retrieves all users from the database
- **User Profile** (`users://{userId}/profile`) - Retrieves a specific user's profile by ID

### Tools

Three tools are available for user management:

1. **create-user** - Create a new user with specified details
   - Parameters: name, email, address, phone
2. **create-random-user** - Automatically generate and create a user with fake data
   - Uses AI sampling to generate realistic user information
3. **generate-fake-user** (Prompt) - Generate fake user data based on a given name
   - Parameter: name

## Installation

```bash
npm install
```

## Requirements

- Node.js (with ES modules support)
- Dependencies:
  - `@modelcontextprotocol/sdk`
  - `zod`

## Usage

### Starting the Server

```bash
npm start
```

The server uses stdio transport for communication.

### Resource Access

**Get all users:**

```
users://all
```

**Get specific user profile:**

```
users://123/profile
```

### Tool Usage

**Create a user:**

```json
{
  "name": "John Doe",
  "email": "john@example.com",
  "address": "123 Main St",
  "phone": "555-0123"
}
```

**Create a random user:**
No parameters required - automatically generates fake user data using AI sampling.

## Data Storage

User data is stored in `./src/data/users.json` as a JSON array. Each user object contains:

- `id` (number) - Auto-incremented user ID
- `name` (string) - User's full name
- `email` (string) - Email address
- `address` (string) - Physical address
- `phone` (string) - Phone number

## Server Capabilities

- **Resources**: Query user data via URI schemes
- **Tools**: Perform user management operations
- **Prompts**: Generate templated prompts for user creation

## Development

The server is built using the Model Context Protocol SDK and implements:

- Resource templates with dynamic URI parameters
- Tool definitions with Zod schema validation
- AI sampling for generating fake data
- File-based persistence

## License

MIT

## Notes

- User IDs are auto-incremented starting from the current user count + 1
- All operations return JSON responses
- Error handling is implemented for user not found scenarios
- The server uses the sampling API to generate realistic fake user data

TDQS

B3.3/5.0

Scored across 2 tools

Disambiguation4/5

The two tools are clearly described: one creates a specified user, the other generates a random one. While both involve creation, the random qualifier distinguishes them, so an agent should not easily confuse them.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (create-user, create-random-user), with the second incorporating a modifier while maintaining the same structure. The naming is uniform and predictable.

Tool Count3/5

With only 2 tools, this is a very thin set, but it could be appropriate for a narrowly scoped server focused solely on user creation. It falls into the borderline range (1-2 tools), neither too many nor too few for the apparent purpose.

Completeness2/5

The server only offers creation capabilities, lacking essential operations like retrieving, updating, or deleting users. This leaves obvious gaps in the user lifecycle, which would cause agent failures if the server is intended for full user management.

Maintenance

ActivityInactive
ResponsivenessNo issues