Skip to main content
Glama
Ghanishtha12

Simple MCP POC

by Ghanishtha12
README.md
# Simple MCP POC

A simple **Model Context Protocol (MCP)** server that exposes tools for:
- Reading local files
- Performing basic arithmetic operations

This project is intended as a **proof of concept (POC)** to understand how MCP servers work and how tools are exposed to clients.

---

## Prerequisites

- **Node.js** v18 or higher  
- **npm** (comes with Node.js)

node -v
npm -v
```

---

## Installation

1. Clone or copy this repository
2. Open a terminal in the project directory
3. Install dependencies:

```bash
npm install
```

---

## Running the Server

Start the MCP server using standard I/O (stdio):

```bash
node server.js
```

The server will start and wait for JSON-RPC messages on stdin/stdout.

---

## Testing with MCP Inspector

The easiest way to test the server is using the **MCP Inspector** tool.

### Windows (PowerShell)

```powershell
$env:DANGEROUSLY_OMIT_AUTH="true"
npx mcp-inspector node server.js
```

### macOS / Linux

```bash
DANGEROUSLY_OMIT_AUTH=true npx mcp-inspector node server.js
```

After running, open your browser to `http://localhost:6274` to interact with the tools.

---

## Available Tools

The server exposes two tools:

### 1. `read_file`
Reads the content of a local text file.

**Arguments:**
- `path` (string): The relative or absolute path to the file.

**Example usage:**
```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "read_file",
    "arguments": {
      "path": "notes.txt"
    }
  }
}
```

### 2. `calculator`
Performs basic arithmetic operations.

**Arguments:**
- `a` (number): First operand
- `b` (number): Second operand
- `operation` (string): One of `add`, `subtract`, `multiply`, `divide`

**Example usage:**
```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "calculator",
    "arguments": {
      "a": 10,
      "b": 5,
      "operation": "add"
    }
  }
}
```

---

## Manual Testing (JSON-RPC)

You can also test the server by sending raw JSON-RPC messages to the running server process.

**Example: Read `notes.txt`**

```bash
# Start server
node server.js

# In another terminal, send JSON-RPC request
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"read_file","arguments":{"path":"notes.txt"}}}' | node server.js
```

---

## Project Structure

```
mcp-poc/
├── server.js          # Main MCP server entry point
├── package.json       # Project dependencies
└── README.md          # This file

Maintenance

ActivityInactive
ResponsivenessNo issues