imt-mcp-server
v1.0.1
Published
MCP Server for IMT user management with device control capabilities
Maintainers
Readme
IMT MCP Server
一个基于 Model Context Protocol (MCP) 的服务器,用于提供用户管理功能。
功能特性
- 🔐 自动认证管理 - 自动获取和管理认证token
- 👤 用户信息获取 - 提供获取用户详细信息的MCP工具
- 🛡️ 错误处理 - 完善的错误处理和重试机制
- 📝 TypeScript支持 - 完全使用TypeScript编写,提供类型安全
项目结构
imt_mcps/
├── src/
│ ├── auth/
│ │ └── token-manager.ts # Token管理和认证逻辑
│ ├── tools/
│ │ └── user-info.ts # 用户信息获取工具
│ └── index.ts # MCP服务器主文件
├── docs/
│ └── product.md # 产品需求文档
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
└── README.md # 项目说明快速开始
1. 安装依赖
npm install2. 开发模式运行
npm run dev3. 构建生产版本
npm run build
npm start支持的MCP工具
get_user_info
获取当前认证用户的详细信息。
参数: 无
返回: 结构化的用户信息,包含字段说明
数据结构: 返回的数据按功能分组,每个字段包含 value(实际值)和 description(字段说明)
数据分组:
responseInfo: API响应元信息basicInfo: 用户基本信息organizationInfo: 组织架构信息locationInfo: 地址信息timeInfo: 时间信息permissionInfo: 权限和角色信息menuPermissions: 菜单权限信息deviceInfo: 设备相关信息integrationInfo: 第三方集成信息summary: 数据摘要
示例:
{
"basicInfo": {
"username": {
"value": "河南古城丝路",
"description": "登录用户名"
},
"realName": {
"value": "刘士力",
"description": "用户真实姓名"
},
"email": {
"value": "[email protected]",
"description": "用户电子邮箱地址"
}
},
"summary": {
"totalRoles": {
"value": 1,
"description": "用户拥有的角色总数"
},
"accountAge": {
"value": 1919,
"description": "账户创建至今的天数"
}
}
}
## 技术实现
### 认证流程
1. **自动token获取**: 当需要认证时,系统会自动向认证API发送POST请求获取token
2. **全局token管理**: Token存储在全局变量中,供所有工具使用
3. **自动重试机制**: 当token过期时,系统会自动重新获取token并重试请求
### API端点
- **认证接口**: `POST http://vend.foreveriot.com/auth/login`
- **用户信息接口**: `GET http://vend.foreveriot.com/auth/user`
### 关键配置
```typescript
// 认证配置
const AUTH_CONFIG = {
url: 'http://vend.foreveriot.com/auth/login',
credentials: {
username: '河南古城丝路',
password: 'e6e061838856bf47e1de730719fb2609'
}
};开发指南
添加新的MCP工具
- 在
src/tools/目录下创建新的工具文件 - 实现工具逻辑,确保使用
getCurrentToken()获取认证信息 - 在
src/index.ts中注册新工具:- 在
ListToolsRequestSchema处理器中添加工具描述 - 在
CallToolRequestSchema处理器中添加工具执行逻辑
- 在
错误处理
项目包含完善的错误处理机制:
- 网络错误: 自动检测并报告网络连接问题
- 认证错误: 自动重新获取token并重试
- 参数错误: 验证输入参数并返回详细错误信息
依赖项
@modelcontextprotocol/sdk: MCP协议SDKaxios: HTTP客户端库typescript: TypeScript编译器ts-node: TypeScript直接执行工具
注意事项
- 确保网络能够访问
vend.foreveriot.com域名 - Token会在内存中缓存,服务重启后需要重新获取
- 所有API请求都有10秒超时限制
许可证
MIT License
