Skip to main content
Glama
GiftBanda

MCP Server

by GiftBanda
README.md
# MCP Server (TypeScript)

A simple Model Context Protocol (MCP) server built with TypeScript.

It currently exposes one MCP tool:
- `createUser`: Creates a new user and appends it to `src/data/users.json`.

## Features

- MCP server over stdio transport
- Input validation with Zod
- JSON-based data persistence for users

## Project Structure

```text
src/
  server.ts            # MCP server entrypoint and tool registration
  data/
    users.json         # Local user datastore
  types/
    user.types.ts      # User input type
```

## Prerequisites

- Node.js 18+
- npm

## Install

```bash
npm install
```

## Run (Development)

```bash
npm run server:dev
```

## Build

```bash
npm run server:build
```

Compiled output goes to `build/`.

## Build Watch Mode

```bash
npm run server:build:watch
```

## Inspect with MCP Inspector

Use the MCP Inspector to test tool calls interactively:

```bash
npm run server:inspect
```

Then call the `createUser` tool with this shape:

```json
{
  "name": "Jane Doe",
  "email": "jane.doe@example.com",
  "address": "123 Main St, Springfield, IL",
  "phone": "+1-555-555-5555"
}
```

Successful calls append a new user record to `src/data/users.json` and return the created ID.

## Available Scripts

- `server:dev` - Run server from TypeScript source with `tsx`
- `server:build` - Compile TypeScript to `build/`
- `server:build:watch` - Compile in watch mode
- `server:inspect` - Launch MCP Inspector against the server
- `client:dev` - Reserved script in `package.json` (no `src/client.ts` file currently in this workspace)

## Notes

- Data is persisted by writing directly to `src/data/users.json`.
- User IDs are assigned as `users.length + 1`.
- If you manually edit `users.json`, keep it valid JSON.