Skip to main content
Glama
pein892

Sensors MCP Server

by pein892
README.md
# Sensors MCP Server

基于 [MCP(Model Context Protocol)](https://modelcontextprotocol.io/) 的神策分析数据服务,让 AI 助手通过自然语言直接查询和分析神策平台中的用户行为数据。

## 功能概览

| 工具 | 说明 |
|---|---|
| `get_sensors_config` | 获取当前神策配置信息(调试用) |
| `verify_sensors_config` | 验证 API 连通性和认证有效性 |
| `list_events_all` | 获取项目中的全部事件列表 |
| `list_event_tags` | 获取事件标签分类信息 |
| `get_event_properties` | 获取指定事件的属性定义 |
| `list_event_properties_all` | 获取所有事件的属性列表 |
| `query_segmentation_report` | 事件分析查询(次数、人数、维度拆分、筛选过滤) |

## 快速开始

### 1. 安装依赖

```bash
npm install
```

### 2. 配置环境变量

复制 `.env.example` 为 `.env`,填写你的神策分析配置:

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

```env
SA_URL=https://your-sensors-analytics-url
SA_PROJECT=your_project_name
SA_API_KEY=your_api_key
SA_API_SECRET=your_api_secret  # 可选
```

API Key 在神策后台「项目管理 → 数据接口」中获取。

### 3. 编译与启动

```bash
# 编译
npm run build

# 生产模式
npm start

# 开发模式(直接运行 TypeScript,改完代码重启即可)
npm run dev
```

## 接入 MCP 客户端

### QoderWork / Claude Desktop

在 MCP 设置中添加 Server,配置启动命令:

```json
{
  "mcpServers": {
    "sensors": {
      "command": "node",
      "args": ["/path/to/SensorsMCPServer/dist/index.js"],
      "env": {
        "SA_URL": "https://your-sensors-analytics-url",
        "SA_PROJECT": "your_project_name",
        "SA_API_KEY": "your_api_key"
      }
    }
  }
}
```

> MCP Server 使用 stdio 协议通信,由客户端启动和管理进程,无需手动运行。

## 调试

推荐使用 [MCP Inspector](https://github.com/modelcontextprotocol/inspector) 进行调试:

```bash
npx @modelcontextprotocol/inspector node dist/index.js
```

启动后访问 `http://localhost:6274`,可以手动调用工具、查看请求和响应。

## 使用示例

接入 MCP 客户端后,直接用自然语言提问即可:

```
查询上月左侧菜单点击事件的次数和人数
```

```
web_workgroup_nav_menu_cli 事件有哪些属性?
```

```
查询上月左侧菜单点击情况,按用户和菜单名拆分
```

AI 会自动探索事件元数据、构建查询参数、调用 API 并解读结果。

## 项目结构

```
src/
├── index.ts                 # MCP Server 入口,工具注册与请求路由
├── config.ts                # 环境变量配置管理
└── tools/
    ├── event-meta.ts        # 事件列表与标签查询
    ├── property-meta.ts     # 事件属性查询
    └── segmentation.ts      # 事件分析报告查询
```

## 技术栈

- **运行环境**:Node.js(ES2022+)
- **开发语言**:TypeScript 5.x
- **MCP SDK**:@modelcontextprotocol/sdk ^0.6.0
- **通信协议**:stdio
- **API 规范**:神策分析 OpenAPI v3
- **认证方式**:Header 认证(api-key + sensorsdata-project)

## License

ISC

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct aspect: specific event properties vs all properties, events vs tags, config retrieval vs verification, and a single query report. No overlapping purposes.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in English using snake_case: get_, list_, query_, verify_. The verbs appropriately reflect the action.

Tool Count5/5

7 tools is well-scoped for a Sensors analytics server, covering configuration, metadata listing, and a core reporting function without excess or deficiency.

Completeness4/5

Covers essential operations: config management, event/property/tag listing, and a segmentation report query. Minor gap in other report types, but core workflows are complete.

Maintenance

ActivityInactive
ResponsivenessNo issues