内容
# 消息管理服务器
IIIT 消息管理系统的MCP(模型上下文协议)服务器。这允许像Claude这样的AI助手通过自然语言与消息门户交互。
## 功能
- 🍽️ **查看菜单** - 获取任意日期的所有餐厅菜单
- 📝 **管理注册** - 注册、取消或恢复餐食注册
- 💰 **查看账单** - 查看您的月度餐厅账单及预测
- ⭐ **提交反馈** - 评价和评论餐食
- 🍕 **额外物品** - 查看和注册额外食品
- 📅 **月度计划** - 管理月度餐厅注册
- ⚙️ **偏好设置** - 控制通知和餐食设置
- 👤 **个人资料** - 查看您的用户信息
## 前置条件
- **Node.js 18+** (从[nodejs.org](https://nodejs.org/)下载)
- **Claude Desktop** (从[claude.ai/download](https://claude.ai/download)下载)
- **餐厅门户API密钥** (从[mess.iiit.ac.in](https://mess.iiit.ac.in)获取)
## 安装
### 1. 克隆和安装
```bash
git clone <您的仓库URL>
cd mess-mcp
npm install
```
### 2. 获取API密钥
1. 登录 https://mess.iiit.ac.in
2. 进入 **设置 → API密钥**
3. 点击 **创建新密钥**
4. 为其命名(例如,“MCP服务器”)并设置过期日期
5. **立即复制密钥** (它只显示一次!)
### 3. 配置环境
复制示例环境文件并添加您的API密钥:
```bash
cp .env.example .env
```
编辑 `.env` 并将 `your-api-key-here` 替换为您的实际API密钥:
```env
MESS_API_KEY=您的实际API密钥
MESS_API_URL=https://mess.iiit.ac.in/api
```
### 4. 构建项目
```bash
npm run build
```
### 5. 配置Claude Desktop
找到您的Claude Desktop配置文件:
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS/Linux**: `~/Library/Application Support/Claude/claude_desktop_config.json`
添加MCP服务器配置:
```json
{
"mcpServers": {
"mess": {
"command": "node",
"args": ["/绝对路径/to/mess-mcp/dist/index.js"],
"env": {
"MESS_API_KEY": "您的实际API密钥",
"MESS_API_URL": "https://mess.iiit.ac.in/api"
}
}
}
}
```
**重要**: 将 `/绝对路径/to/mess-mcp` 替换为您的项目实际路径。
**示例路径:**
- Windows: `"args": ["C:/Users/YourName/mess-mcp/dist/index.js"]`
- macOS/Linux: `"args": ["/home/yourname/mess-mcp/dist/index.js"]`
### 6. 重启Claude Desktop
完全关闭Claude Desktop(检查系统托盘/菜单栏)并重新打开。MCP服务器将自动加载。
## 使用
设置完成后,您可以在Claude Desktop中使用自然语言与餐厅系统交互:
### 示例对话
**查看今日菜单:**
> "今天午餐吃什么?"
> "显示Kadamba Veg今日菜单"
**注册餐食:**
> "明天在Yuktahar注册晚餐"
> "在Palash为星期五注册早餐"
**取消/管理注册:**
> "取消明天早餐注册"
> "显示本周注册"
**查看账单:**
> "这个月餐厅账单是多少?"
> "到目前为止我花了多少钱?"
**查看容量:**
> "今晚Kadamba有空位吗?"
> "显示明天午餐空位"
**提交反馈:**
> "今天午餐评价4星,备注'不错的食物'"
**管理偏好:**
> "关闭餐食提醒通知"
> "启用未注册餐食访问"
## 可用工具
MCP服务器暴露了30多种工具,分为以下几类:
### 🏢 餐厅信息
- 获取餐厅信息、菜单、价格、容量和时间
### 📝 注册
- 查看、创建、取消和管理餐食注册
### 💰 账单和反馈
- 查看账单、提交反馈、查看评价
### 🍕 额外食品
- 浏览和注册额外食品
### 📅 月度计划
- 管理月度餐厅订阅
### ⚙️ 配置
- 查看/更新偏好、检查窗口和限制
### 👤 用户资料
- 查看个人资料、重置二维码令牌
## 开发
### 项目结构
```bash
mess-mcp/
├── src/
│ ├── index.ts # MCP服务器主入口
│ ├── client.ts # Mess API的HTTP客户端
│ ├── types.ts # TypeScript类型定义
│ └── tools/
│ ├── auth.ts # 用户身份验证工具
│ ├── mess.ts # 餐厅信息工具
│ ├── registrations.ts # 注册管理
│ ├── billing.ts # 账单和反馈
│ ├── extras.ts # 额外食品
│ ├── monthly.ts # 月度注册
│ └── config.ts # 偏好和设置
├── dist/ # 编译后的JavaScript(生成)
├── package.json
├── tsconfig.json
├── .env # 您的配置(不在git中)
├── .env.example # .env模板
└── README.md
```
### 脚本
- `npm run build` - 将TypeScript编译为JavaScript
- `npm run dev` - 构建并在开发模式下运行
- `npm start` - 运行编译后的服务器
## 故障排除
### "命令未找到" 或 "node未找到"
- 确保已安装Node.js并在系统PATH中
- 尝试在Claude配置中使用`node.exe`的绝对路径
### "未经授权" 错误
- 验证`.env`和Claude配置中的API密钥是否正确
- 检查API密钥是否在餐厅门户中过期
### MCP服务器未加载
- 确保`claude_desktop_config.json`中的路径是绝对正确的
- 检查Claude Desktop日志中的错误
- 在配置更改后重启Claude Desktop
### 菜单未显示项目
- 菜单可能未更新当前周
- 尝试不同的日期或餐厅
## 安全
- **永远不要提交`.env`文件** - 它包含您的API密钥
- **永远不要分享您的API密钥** - 它提供对您帐户的完全访问权限
- `.gitignore`文件配置为排除敏感文件
- 在餐厅门户设置中定期轮换API密钥
## 贡献
欢迎贡献!请:
1. 分叉仓库
2. 创建功能分支
3. 进行更改
4. 提交拉取请求
## 许可证
MIT
## 致谢
为使用餐厅管理系统API的IIIT Hyderabad学生而建。
## 支持
如有问题或疑问:
- 在GitHub上打开问题
- 查看[MCP文档](https://modelcontextprotocol.io)
- 查看[餐厅门户API文档](https://mess.iiit.ac.in)