Skip to main content
Glama
BACH-AI-Tools

MCP Calculator Server

README.md
# MCP 计算器服务器

一个基于 **SSE (Server-Sent Events)** 的 Model Context Protocol 计算器服务器,运行在 8000 端口。

## 功能特性

✨ 支持的计算操作:
- ➕ **加法** (add): 计算两个数的和
- ➖ **减法** (subtract): 计算两个数的差  
- ✖️ **乘法** (multiply): 计算两个数的积
- ➗ **除法** (divide): 计算两个数的商
- 🔢 **幂运算** (power): 计算 a 的 b 次方
- √ **平方根** (sqrt): 计算一个数的平方根
- 🎯 **阶乘** (factorial): 计算非负整数的阶乘
- 👤 **启动者信息** (get_operator_info): 查看服务器启动者和配置信息

🔒 **安全特性**:
- 必须设置启动者姓名才能启动服务器
- 环境变量验证,确保配置正确

## 技术栈

- 🚀 **Node.js** + **TypeScript**
- 📡 **SSE (Server-Sent Events)** 传输协议
- 🌐 **Express** 作为 HTTP 服务器
- 🔧 **MCP SDK** (@modelcontextprotocol/sdk)

## 安装

```bash
# 安装依赖
npm install

# 构建项目
npm run build
```

## 配置

**⚠️ 必须设置环境变量才能启动服务器!**

创建 `.env` 文件:

```bash
cp .env.example .env
```

编辑 `.env` 文件,设置启动者姓名:

```env
# 启动者姓名(必需)
OPERATOR_NAME=张三

# 服务器端口
PORT=8000

# Node 环境
NODE_ENV=development
```

## 运行

```bash
# 启动服务器
npm start

# 或者直接在命令行设置环境变量
OPERATOR_NAME=张三 npm start

# 开发模式(自动重新构建)
npm run dev
```

服务器将运行在 `http://localhost:8000`

## API 端点

### 健康检查
```bash
GET http://localhost:8000/health
```

返回服务器状态信息。

### SSE 连接
```bash
GET http://localhost:8000/sse
```

建立 SSE 连接,用于 MCP 通信。

## 使用示例

### 连接到服务器

```javascript
// 客户端连接示例
const eventSource = new EventSource('http://localhost:8000/sse');

eventSource.onmessage = (event) => {
  console.log('收到消息:', event.data);
};
```

### 可用工具

1. **加法运算**
   ```json
   {
     "name": "add",
     "arguments": {
       "a": 10,
       "b": 5
     }
   }
   ```
   返回: `10 + 5 = 15`

2. **减法运算**
   ```json
   {
     "name": "subtract",
     "arguments": {
       "a": 10,
       "b": 5
     }
   }
   ```
   返回: `10 - 5 = 5`

3. **乘法运算**
   ```json
   {
     "name": "multiply",
     "arguments": {
       "a": 10,
       "b": 5
     }
   }
   ```
   返回: `10 × 5 = 50`

4. **除法运算**
   ```json
   {
     "name": "divide",
     "arguments": {
       "a": 10,
       "b": 5
     }
   }
   ```
   返回: `10 ÷ 5 = 2`

5. **幂运算**
   ```json
   {
     "name": "power",
     "arguments": {
       "a": 2,
       "b": 3
     }
   }
   ```
   返回: `2^3 = 8`

6. **平方根**
   ```json
   {
     "name": "sqrt",
     "arguments": {
       "a": 16
     }
   }
   ```
   返回: `√16 = 4`

7. **阶乘**
   ```json
   {
     "name": "factorial",
     "arguments": {
       "n": 5
     }
   }
   ```
   返回: `5! = 120`

8. **获取启动者信息**
   ```json
   {
     "name": "get_operator_info",
     "arguments": {}
   }
   ```
   返回服务器信息,包括启动者姓名、版本、端口等

## 项目结构

```
mcp-calculator/
├── src/
│   └── index.ts          # 主服务器文件
├── dist/                  # 编译输出目录
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
└── README.md
```

## 开发

```bash
# 监听文件变化,自动重新编译
npm run watch

# 在另一个终端运行
npm start
```

## 许可证

MIT

Maintenance

ActivityInactive
ResponsivenessNo issues