README.md•3.66 kB
# 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