Skip to main content
Glama
xARSENICx

Simple MCP Server Tutorial

by xARSENICx
README.md
# Simple MCP Server Tutorial

A beginner-friendly Model Context Protocol (MCP) server that demonstrates core MCP concepts with practical tools.

## What This Server Does

This MCP server provides two main functionalities:
- **Calculator**: Basic arithmetic operations (add, subtract, multiply, divide)
- **Note Management**: Create, read, list, and delete notes

## Setup Instructions

### 1. Install Dependencies
```bash
npm install
```

### 2. Test the Server
```bash
npm start
```

### 3. Connect to Claude Desktop

Add this configuration to your Claude Desktop config file:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "simple-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/server.js"]
    }
  }
}
```

Replace `/path/to/your/server.js` with the actual path to your server.js file.

### 4. Restart Claude Desktop

After saving the config, restart Claude Desktop to load your MCP server.

## Available Tools

### Calculator
- `calculator`: Perform arithmetic operations
  - Parameters: `operation` (add/subtract/multiply/divide), `a` (number), `b` (number)

### Note Management
- `add_note`: Create a new note with title and content
- `get_note`: Retrieve a note by title
- `list_notes`: Show all note titles
- `delete_note`: Remove a note by title

## Example Usage

Once connected to Claude, you can ask:
- "Calculate 15 + 27"
- "Add a note titled 'Meeting' with content 'Team standup at 2pm'"
- "Show me my note called 'Meeting'"
- "List all my notes"

## Understanding MCP

This server demonstrates key MCP concepts:
1. **Tools**: Functions that LLMs can call to perform actions
2. **Schema**: JSON schema definitions for tool parameters
3. **Transport**: Communication layer (stdio in this case)
4. **Error Handling**: Proper error responses for invalid inputs

## File Structure

```
├── package.json        # Dependencies and scripts
├── server.js          # Main MCP server implementation
└── README.md          # This file
```