README.md•7.09 kB
# Agent Sense(智能感知)- MCP Server
为 AI Agent 提供感知能力的 Model Context Protocol (MCP) 服务器。
## 💡 为什么需要 Agent Sense?
AI Agent 在处理问题时,往往缺乏对外部环境的感知能力。Agent Sense 让 AI 可以:
- **时效性研究** - 获取准确的当前时间,处理时间敏感的任务和分析
- **位置信息研究** - 基于 IP 地址获取地理位置,提供本地化的建议和服务
- **硬件环境分析** - 诊断系统性能问题,分析内存、磁盘、CPU 使用情况
- **环境报错分析** - 了解操作系统版本、架构等信息,提供针对性的解决方案
通过提供充足的环境上下文,Agent Sense 让 AI 的回复更加准确、更具针对性。
## 🎯 核心价值
### 提供充足的环境上下文
当 AI Agent 了解用户的环境信息时,可以:
✅ **更准确的时间判断** - "现在是几点?" "今天星期几?" "距离某个时间还有多久?"
✅ **本地化建议** - 根据用户所在地区提供相关的服务、资源和建议
✅ **精准的故障诊断** - "为什么我的电脑这么慢?" → 检查内存使用率 99%
✅ **针对性的解决方案** - 根据操作系统版本和架构提供正确的安装命令
## 功能特性
Agent Sense 提供以下感知工具:
### 1. 获取时间 (`get_time`)
获取当前时间信息,支持多种格式:
- ISO 8601 格式
- 本地化格式
- Unix 时间戳
- 时区信息
- 详细的年月日时分秒
### 2. 位置定位 (`get_location`)
基于 IP 地址获取地理位置信息:
- 国家、地区、城市
- 经纬度坐标
- 时区
- ISP 信息
### 3. 系统信息 (`get_system_info`)
获取操作系统详细信息:
- 操作系统类型、版本、架构
- 主机名、内核版本
- 系统制造商和型号
- 系统运行时间
### 4. 硬件信息 (`get_hardware_info`)
获取硬件配置信息:
- CPU 型号、核心数、频率
- 内存总量、使用情况
- 硬盘容量、使用情况
- 网络接口和 IP 地址
- (详细模式)CPU 温度、电池状态、显卡信息
### 5. 天气信息 (`get_weather`)
获取实时天气和天气预报:
- 当前温度、体感温度
- 湿度、风速、风向
- 天气描述和图标
- 未来 7 天天气预报(可选)
- 支持指定城市或自动获取当前位置
## 安装
```bash
npm install
npm run build
```
## 使用方法
### 开发模式
```bash
npm run dev
```
### 使用 MCP Inspector 测试
MCP Inspector 是一个交互式的调试工具,可以在浏览器中测试你的 MCP server:
```bash
npm run inspector
```
这会启动一个本地服务器,通常在 `http://localhost:5173`,你可以在浏览器中:
- 查看所有可用的工具
- 测试每个工具的调用
- 查看请求和响应
- 实时调试
### 生产模式
```bash
npm start
```
### 配置到 CherryStudio/Claude Desktop
在 MCP 配置文件中添加:
```json
{
"mcpServers": {
"agent-sense": {
"command": "node",
"args": ["/path/to/agent-sense/dist/index.js"]
}
}
}
```
或者使用 npx(发布到 npm 后):
```json
{
"mcpServers": {
"agent-sense": {
"command": "npx",
"args": ["-y", "agent-sense"]
}
}
}
```
## 📝 实际应用场景
### 场景 1:性能诊断
**用户**: "我的电脑运行很慢,怎么回事?"
**AI**: 调用 `get_hardware_info()` → 发现内存使用率 99.72%
**AI 回复**: "你的内存使用率已达 99.72%(23.93GB/24GB),建议关闭一些应用程序释放内存。”

### 场景 2:时间敏感任务
**用户**: "帮我分析一下这个日志文件的错误"
**AI**: 调用 `get_time()` → 获取当前时间和时区
**AI 回复**: "根据日志时间戳(UTC)和你的本地时区(Asia/Shanghai),这个错误发生在 2 小时前...”

### 场景 3:本地化建议
**用户**: "推荐一些学习资源"
**AI**: 调用 `get_location()` → 发现用户在中国
**AI 回复**: "根据你的位置,推荐以下中文学习资源和国内可访问的平台...”

### 场景 4:环境特定解决方案
**用户**: "如何安装 Docker?"
**AI**: 调用 `get_system_info()` → macOS M3 芯片
**AI 回复**: "你使用的是 Apple Silicon (M3),请使用以下命令安装 Docker Desktop for Mac (Apple Silicon)...”

### 场景 5:天气相关建议
**用户**: "今天适合出去跑步吗?"
**AI**: 调用 `get_weather()` → 当前温度 15°C,小雨
**AI 回复**: "现在北京温度 15°C,正在下小雨,湿度 85%,不太适合户外跑步。建议选择室内运动或等雨停后再出门。"
## 工具使用示例
### 获取时间
```json
{
"name": "get_time",
"arguments": {
"format": "iso"
}
}
```
### 获取位置
```json
{
"name": "get_location",
"arguments": {
"ip": "8.8.8.8"
}
}
```
### 获取系统信息
```json
{
"name": "get_system_info",
"arguments": {}
}
```
### 获取硬件信息
```json
{
"name": "get_hardware_info",
"arguments": {
"detailed": true
}
}
```
### 获取天气信息
```json
{
"name": "get_weather",
"arguments": {
"city": "北京",
"includeForecast": true
}
}
```
或不传参数使用当前位置:
```json
{
"name": "get_weather",
"arguments": {}
}
```
## 跨平台支持
✅ **完全支持以下平台**:
- **Windows** (Windows 10/11)
- **macOS** (10.15+)
- **Linux** (Ubuntu, Debian, CentOS, Fedora 等主流发行版)
所有功能在三大平台上均可正常工作,包括:
- ✅ 时间获取 - 使用 Node.js 内置 API
- ✅ 位置定位 - 基于公网 IP 的地理定位
- ✅ 系统信息 - 跨平台系统信息获取
- ✅ 硬件信息 - 智能过滤各平台的虚拟接口和系统分区
## 技术栈
- **Node.js + TypeScript**: 核心运行环境
- **@modelcontextprotocol/sdk**: MCP 协议实现
- **systeminformation**: 跨平台系统和硬件信息获取
- **public-ip**: 公网 IP 获取
- **zod**: 参数验证
## 开发
```bash
# 安装依赖
npm install
# 开发模式(热重载)
npm run dev
# 构建
npm run build
# 运行
npm start
```
## 提示词
本项目使用kiro + claude 4.5 + vibe coding开发
提示词如下
```
我想做一个 为 agent 提供 感知能力的 mcp server,名为“智能感知(agent-sense)”,它需要提供以下工具,1. 获取时间;2. 位置定位;3. 系统信息(操作系统版本,架构);4. 硬件信息(CPU 型号,内存大小、硬盘大小、IP地址),请你帮我设计一个可行的方案,必要查询文档或者信息时,可使用对应的mcp server。技术栈方面,我希望使用 nodejs + typescript
```