Token导航 LogoToken导航

MCP Server · 数据服务

Timeseries One Class SVM MCP

基于One-Class SVM的时间序列异常检测工具,支持CSV和TXT格式数据文件,通过SSE协议提供流式异常检测结果。

stdio官方级别未说明来源级核验工具 0
机器学习Python数据分析

快速开始

作者 / 组织
Plc912
提供方
Plc912
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Timeseries One Class SVM MCP 属于数据服务类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

数据服务

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

python --version

客户端配置示例

{
  "mcpServers": {
    "timeseries-one-class-svm-mcp": {
      "command": "python",
      "args": [
        "--version"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

TimeSeries One-Class SVM MCP

作者:庞力铖

邮箱:3522236586@qq.com

GitHub:https://github.com/Plc912/TimeSeries-One-Class-SVM-MCP.git

基于 One-Class SVM 的时间序列异常检测工具,使用 fastMCP 框架封装为标准 MCP 工具,通过 SSE(Server-Sent Events)协议提供流式异常检测结果。

功能特性

  • ✅ 基于 One-Class SVM 的时间序列异常检测
  • ✅ 支持 CSV 和 TXT 格式数据文件
  • ✅ SSE 流式返回检测结果
  • ✅ 支持自然语言 prompt 指定检测参数
  • ✅ 滑动窗口特征工程
  • ✅ 模型保存与加载
  • ✅ 大数据集流式处理优化

安装依赖

1. 确保 Python 版本 >= 3.11

python --version

2. 安装项目依赖

pip install -r requirements.txt

启动服务

直接运行主程序

python main.py

服务启动后,你将看到:

启动 TimeSeries One-Class SVM MCP 服务
使用 fastMCP 框架
服务地址: http://127.0.0.1:3005
传输协议: SSE (Server-Sent Events)

fastMCP 服务器将在 http://127.0.0.1:3005 启动,使用 SSE 传输协议。

数据格式要求

数据文件需要满足以下格式:

  • 第一列:时间戳(可解析为 datetime 格式)
  • 第二列:数值(float 类型)

CSV 格式示例

timestamp,value
2024-01-01 00:00:00,100.5
2024-01-01 01:00:00,102.3
2024-01-01 02:00:00,98.7
...

TXT 格式示例(制表符分隔)

timestamp	value
2024-01-01 00:00:00	100.5
2024-01-01 01:00:00	102.3
2024-01-01 02:00:00	98.7
...

数据集anomalies_c41b7217-1e8b-42f1-8097-7290f0e2ad77.csv是检测出的异常数据,由于token限制只能导出为csv格式的数据集;

客户端调用示例

Python 客户端示例

1. 发送检测请求
import requests
import json
import sseclient

# 1. 发送检测请求
detect_url = "http://127.0.0.1:3005/mcp/detect"

# 方式一:使用 JSON 格式参数
request_data = {
    "command": "detect",
    "file_path": "data.csv",  # 数据文件路径(相对于服务运行目录或绝对路径)
    "nu": 0.05,
    "window_size": 48,
    "threshold_quantile": 0.01,
    "kernel": "rbf",
    "gamma": "scale"
}

response = requests.post(detect_url, json=request_data)
result = response.json()
task_id = result["task_id"]
print(f"任务 ID: {task_id}")

# 方式二:使用自然语言 prompt
request_data = {
    "prompt": "检测 data.csv 文件中的异常,nu=0.05,窗口大小=48,阈值分位数=0.01"
}

response = requests.post(detect_url, json=request_data)
result = response.json()
task_id = result["task_id"]
2. 接收 SSE 流式结果
# 2. 接收 SSE 流式结果
# fastMCP 使用 SSE 协议流式返回结果
sse_url = f"http://127.0.0.1:3005/sse/{task_id}"

# 使用 sseclient 库接收 SSE 流
messages = sseclient.SSEClient(sse_url)

for msg in messages:
    if msg.event == "start":
        print("开始检测...")
    elif msg.event == "anomaly_result":
        data = json.loads(msg.data)
        print(f"时间戳: {data['timestamp']}, "
              f"值: {data['value']}, "
              f"异常分数: {data['score']:.4f}, "
              f"标签: {'异常' if data['label'] == 1 else '正常'}")
    elif msg.event == "complete":
        print("检测完成!")
        break
    elif msg.event == "error":
        error_data = json.loads(msg.data)
        print(f"错误: {error_data['error']}")
        break

使用 curl 测试

1. 发送检测请求
curl -X POST http://127.0.0.1:3005/mcp/detect \
  -H "Content-Type: application/json" \
  -d '{
    "file_path": "data.csv",
    "nu": 0.05,
    "window_size": 48,
    "threshold_quantile": 0.01
  }'
2. 接收 SSE 流(使用任务 ID)
curl -N http://127.0.0.1:3005/sse/{task_id}

MCP 配置与自然语言 Prompt

MCP 工具配置

MCP 工具配置信息存储在 mcp_config.json 中,包含:

  • 工具名称和版本
  • 服务端口和协议
  • API 端点信息
  • 参数说明

标准 JSON 格式

也可以直接使用 JSON 格式指定所有参数:

{
  "command": "detect",
  "file_path": "data.csv",
  "nu": 0.05,
  "window_size": 48,
  "threshold_quantile": 0.01,
  "kernel": "rbf",
  "gamma": "scale"
}

参数说明

1. nu 参数(异常值比例上界)

范围
  • 有效范围: 0 = 2
  • 推荐范围: 10 - 200
  • 默认值: 48
  • 类型: int
说明
  • window_size 用于构建时间序列特征,表示滑动窗口包含的数据点数量
  • 窗口大小影响特征提取的粒度和模型对时间模式的捕获能力
  • 窗口太小:可能无法捕获长期趋势和周期性模式
  • 窗口太大:可能过度平滑,丢失短期异常信号
推荐值(根据数据频率)
  • 小时级数据(每小时一个点):

- 短期模式: 12 - 24(半天到一天) - 中期模式: 48 - 168(2天到一周) - 长期模式: 168 - 720(一周到一个月)

  • 分钟级数据(每分钟一个点):

- 短期模式: 30 - 60(半小时到一小时) - 中期模式: 60 - 1440(1小时到一天) - 长期模式: 1440 - 10080(一天到一周)

  • 日级数据(每天一个点):

- 短期模式: 7 - 14(一周到两周) - 中期模式: 30 - 90(一个月到三个月) - 长期模式: 90 - 365(三个月到一年)

注意事项
  • 窗口大小不能超过数据点总数
  • 建议窗口大小不超过数据点总数的 1/10
  • 对于小数据集(= 2 | 48 | 10 - 200` |

| threshold_quantile | float | 0 <= threshold_quantile <= 1 | 0.01 | 0.001 - 0.2 |

检测结果格式

每条检测结果包含以下字段:

{
  "timestamp": "2024-01-01T00:00:00",
  "value": 100.5,
  "score": -0.0234,
  "label": 0
}
  • timestamp: 时间戳(ISO 格式)
  • value: 原始数值
  • score: 异常分数(decision_function),分数越小越可能是异常
  • label: 异常标签(0=正常,1=异常)

模型保存与加载

模型会自动保存到 models/ 目录,文件名格式为:

model_nu{nu}_kernel{kernel}.pkl

可以通过 AnomalyDetector 类的 save_model() 和 load_model() 方法进行模型的保存和加载。

性能优化

  • 滑动窗口特征生成使用生成器,减少内存占用
  • SSE 流式返回,客户端可以实时接收结果

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

时间序列Python本地部署异常检测机器学习流式处理数据分析

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Timeseries One Class SVM MCP

MCP World · 本页

0stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Timeseries One Class SVM MCP 怎么安装?

公开资料给出的安装命令是 python --version,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Timeseries One Class SVM MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Timeseries One Class SVM MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Timeseries One Class SVM MCP 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Timeseries One Class SVM MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP