yszl-mcp
Version:
Scenic Area Tourist Flow Query Server with official MCP SDK
201 lines (151 loc) • 3.21 kB
Markdown
一个符合 Model Context Protocol 规范的景区客流查询服务。
- 通过NPX快速安装运行
- 完全支持MCP标准的stdio通信协议
- 实现实时客流查询
- 实现实时累计客流统计
- 实现每日客流统计
- 实现游客来源省份分布
- 实现游客性别分布
- 实现游客年龄分布
- 通过环境变量轻松配置
在使用之前,请确保设置以下必要的环境变量:
```env
ACCOUNT=你的账号
APP_SECRET=你的密钥
PORT=3000
NODE_ENV=development
MCP_MODE=stdio
```
在Cursor配置中添加以下配置:
```json
{
"mcpServers": {
"touristflow": {
"command": "npx",
"args": [
"-y",
"yszl-mcp@latest"
],
"env": {
"ACCOUNT": "你的账号",
"APP_SECRET": "你的密钥",
"MCP_MODE": "stdio"
}
}
}
}
```
本服务实现了MCP的stdio通信协议,支持以下消息类型:
- `init`: 服务初始化时发送的消息,包含工具描述
- `ping`/`pong`: 心跳检测
- `tool_call`: 工具调用请求
- `tool_result`: 工具执行结果
输入消息示例:
```json
{"type": "ping"}
```
```json
{
"type": "tool_call",
"id": "123",
"name": "TouristFlow",
"args": {"scId": "景区ID"}
}
```
运行服务器前,请设置API凭证:
1. 创建`.env`文件,参考`.env.example`
2. 填写API凭证:
- `ACCOUNT`: 账户名或ID(必需)
- `APP_SECRET`: 用于生成签名的应用密钥(必需)
服务提供以下工具:
输入参数:
```json
{
"scId": "景区ID"
}
```
输入参数:
```json
{
"scId": "景区ID"
}
```
输入参数:
```json
{
"scId": "景区ID",
"day": "20221030"
}
```
输入参数:
```json
{
"scId": "景区ID",
"day": "20221030"
}
```
输入参数:
```json
{
"scId": "景区ID",
"day": "20221030"
}
```
输入参数:
```json
{
"scId": "景区ID",
"day": "20221030"
}
```
使用提供的测试脚本:
```bash
node test-tool.js
```
```bash
npm install yszl-mcp
```
```bash
ACCOUNT=your_account APP_SECRET=your_secret npx -y yszl-mcp
```
或者创建 .env 文件后运行:
```bash
npx -y yszl-mcp
```
```javascript
import { TouristFlowTool } from 'yszl-mcp';
const tool = new TouristFlowTool();
const result = await tool.execute({ scId: '景区ID' });
console.log(result);
```
- TouristFlow: 实时客流查询
- CumulativeTouristFlow: 累计客流查询
- DailyTouristFlow: 日客流查询
- ProvinceOrigin: 游客来源地分布
- GenderPortrait: 性别画像
- AgePortrait: 年龄画像
ISC