Token导航 LogoToken导航TokenDH.com
Procmon MCP logo
搜索检索stdio官方级别未说明来源级核验

Procmon MCP

MCP Server

An MCP server for procmon files

工具数

16

提示词数

0

GitHub Stars

12

资源数

0
日志分析PythonClaude系统监控Claude DesktopClaudeCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JameZUK

提供方

JameZUK

最后核验

2026/5/18 04:04

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

ProcmonMCP

ProcmonMCP是一种 模型上下文协议(MCP) 允许LLM自主分析的服务器 进程监视器(Procmon)XML日志文件。它向任何兼容MCP的客户端提供了一套全面的分析工具,包括Claude Code、Claude Desktop、Cline等。

概述

Process Monitor捕获详细的系统活动——文件访问、注册表操作、网络连接、进程创建等。ProcmonMCP将这些XML日志解析为优化的内存表示,并将其作为MCP工具公开,使LLM能够调查系统行为,而无需手动处理数据。

关键能力:

  • 在运行时加载文件 --无需重新启动服务器来分析不同的捕获
  • 字符串实习 减少大型日志上的内存占用
  • 索引查找 按进程名、操作、PID和文件路径进行快速筛选
  • 多种传输协议 --stdio(推荐)、流式HTTP和SSE(不推荐)
  • 进度反馈 在通过MCP通知加载文件期间

该项目的灵感来自 GhidraMCP.

安全警告 Process Monitor日志可能包含极其敏感的系统信息(击键、命令行中的密码、文件内容、网络流量详细信息等)。 - 此工具加载 任何文件路径 运行脚本的用户具有读取权限。有 目录沙盒。 - 仅在受信任的环境中运行此服务器。 - 除非您完全理解并接受风险,否则切勿在运行此服务器时使用从包含敏感生产或个人数据的系统中捕获的Procmon日志。 - 在使用此工具之前,请查看您打算加载的日志中的敏感信息。

安装

先决条件

  • Python 3.7或更高版本(使用3.10+开发和测试)
  • pip (Python包安装程序)

从源代码安装

git clone https://github.com/JameZUK/ProcmonMCP
cd ProcmonMCP
pip install -r requirements.txt

依赖项

包装必需用途
mcp[cli]>=1.8.0带CLI工具和Streamable HTTP支持的MCP SDK
lxml>=4.9.0推荐更快的XML解析(回退到stdlib ElementTree 如果缺席)
psutil>=5.9.0可选文件加载后的内存使用情况报告

一次性安装:

pip install "mcp[cli]>=1.8.0" lxml psutil

Claude Code快速入门

推荐使用ProcmonMCP的方法是通过 标准 克劳德代码运输。服务器启动时没有加载任何文件——然后您(或LLM)可以使用 load_file 打开Procmon捕获的工具。

选项1:通过Claude Code CLI添加

# Add ProcmonMCP as a stdio server (user-wide)
claude mcp add procmon --scope user -- python -m procmon_mcp

# Or with a file pre-loaded at startup
claude mcp add procmon --scope user -- python -m procmon_mcp --input-file /path/to/capture.xml.gz

# Or scoped to the current project only
claude mcp add procmon --scope project -- python -m procmon_mcp

选项2:通过JSON添加

claude mcp add-json procmon '{
  "type": "stdio",
  "command": "python",
  "args": ["-m", "procmon_mcp"]
}'

选项3:直接编辑配置文件

Claude Code从以下位置读取MCP服务器配置:

范围文件描述
项目(共享,版本控制).mcp.json 在项目根目录中与团队共享
项目(个人).claude/settings.local.json您的本地覆盖
用户(全局)~/.claude.json适用于所有项目

示例 .mcp.json 对于共享项目:

{
  "mcpServers": {
    "procmon": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "procmon_mcp"]
    }
  }
}

带有预加载文件和选项的示例:

{
  "mcpServers": {
    "procmon": {
      "type": "stdio",
      "command": "python",
      "args": [
        "-m", "procmon_mcp",
        "--input-file", "/path/to/capture.xml.gz",
        "--no-stack-traces"
      ]
    }
  }
}

选项4:流式HTTP传输

对于网络访问或多客户端场景,请使用Streamable HTTP:

# Add as an HTTP server (start the server separately first)
claude mcp add --transport http procmon http://127.0.0.1:8081/mcp

然后启动服务器:

python -m procmon_mcp --transport streamable-http --mcp-port 8081

验证连接

配置后,验证Claude Code是否可以看到ProcmonMCP:

claude mcp list

在Claude Code会话中,您还可以键入 /mcp 检查已连接服务器的状态。

用法

典型工作流程

  1. 启动服务器 (Claude Code会自动为stdio服务器执行此操作)
  2. 检查状态:LLM电话 get_status 查看文件是否已加载
  3. 加载文件:LLM电话 load_file 带有Procmon XML捕获的路径
  4. 分析:LLM使用分析工具调查日志数据

命令行参数

参数默认值描述
`--input-file
`*(无)*启动时预加载Procmon XML文件。如果省略,请使用 load_file 来自MCP客户端。
--transport stdio传输协议: stdio, streamable-http,或 sse (已弃用)。
--mcp-host 127.0.0.1主机地址(仅限HTTP传输)。
`--mcp-port
`8081端口号(仅限HTTP传输)。
--no-stack-tracesoff跳过加载堆栈跟踪以节省内存。
--no-extra-dataoff跳过加载未知/额外事件字段以节省内存。
--debugoff启用详细调试日志记录。
`--log-file
`*(控制台)*将日志写入文件而不是控制台。
--profileoff启用cProfile分析(用于开发)。

例子

从stdio开始(没有预加载文件——使用 load_file 来自客户):

python -m procmon_mcp

预加载压缩的XML文件:

python -m procmon_mcp --input-file /path/to/capture.xml.gz

从自定义端口上的Streamable HTTP开始:

python -m procmon_mcp --transport streamable-http --mcp-port 9000

跳过非常大的文件的堆栈跟踪:

python -m procmon_mcp --input-file /path/to/huge_capture.xml --no-stack-traces --no-extra-data

传输协议

运输用例状态
标准本地使用Claude Code、Claude Desktop等。推荐
可流式传输http网络访问、多客户端、远程部署支持
SSE尚未支持流式HTTP的传统MCP客户端已弃用 (MCP规范2025-03-26)

stdio(推荐)

最简单、最可靠的运输方式。Claude Code将服务器作为子进程生成,并通过stdin/stdout进行通信。无需网络配置。

流式HTTP

使用单个HTTP端点(/mcp)为了所有的沟通。支持会话管理,为长时间运行的操作提供可选的SSE流,并专为可扩展性而设计。

python -m procmon_mcp --transport streamable-http --mcp-host 0.0.0.0 --mcp-port 8081

服务器将在以下时间可用 http://: /mcp.

SSE(已弃用)

自MCP规范2025-03-26以来已弃用。 SSE保留了向后兼容性,但将在未来的版本中删除。请迁移到 streamable-httpstdio.
python -m procmon_mcp --transport sse --mcp-port 8081

用户配置

ProcmonMCP将用户首选项存储在 ~/.procmonmcp/config.json。此文件是自动创建的,并会记住:

  • 最后加载的文件路径(在中显示为提示 get_status 当没有加载文件时)
  • 加载首选项(no_stack_traces, no_extra_data)

不需要API密钥或身份验证令牌-ProcmonMCP是一个纯粹的本地分析工具。

可用的MCP工具

生命周期工具

工具说明
get_status()返回当前服务器状态——文件是否已加载、加载进度、内存使用情况和可用操作。 先叫这个。
load_file(file_path, no_stack_traces?, no_extra_data?)加载Procmon XML文件(.XML、.gz、.bz2、.xz)进行分析。提供进度反馈。替换之前加载的所有数据。

数据检索工具

工具说明
get_loaded_file_summary()返回加载文件的详细摘要——文件名、计数、压缩、索引统计、互联网统计和选择性加载标志。
get_metadata()返回基本元数据(文件名、类型、事件/进程计数)。
list_processes()从进程列表部分列出唯一的进程(PID、名称、映像路径、父PID)。
get_process_details(pid)按PID返回特定进程的详细属性。
query_events(...)使用灵活的过滤器查询事件——按进程、操作、结果、路径(包含/regex)、细节(正则表达式)、时间戳范围和堆栈模块路径。返回带索引的事件摘要。
get_event_details(event_index)按索引返回特定事件的所有属性。
get_event_stack_trace(event_index)返回特定事件(模块路径、位置、地址)的调用堆栈。

分析工具

工具说明
count_events_by_process()统计每个进程名称的事件数。
summarize_operations_by_process(process_name_filter)统计特定流程的操作。
get_timing_statistics(group_by)计算按流程或操作分组的持续时间统计信息。
get_process_lifetime(pid)查找给定PID的进程创建和进程退出时间戳。
find_file_access(path_contains, limit?)查找与路径子字符串匹配的文件系统事件(不区分大小写)。
find_network_connections(process_name)查找进程访问的唯一远程网络终结点。

导出工具

工具说明
export_query_results(...)将筛选后的事件导出到CSV或JSON文件。使用与相同的过滤器 query_events.

MCP客户端

ProcmonMCP可与任何兼容MCP的客户端配合使用。以下是常见客户端的设置说明。

克劳德代码(推荐)

Claude Code快速入门 上面的部分。

克劳德桌面版

将以下内容添加到您的Claude Desktop配置文件中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "procmon": {
      "command": "python",
      "args": ["-m", "procmon_mcp"]
    }
  }
}

克莱恩

对于具有流式HTTP传输的Cline,首先启动服务器:

python -m procmon_mcp --transport streamable-http --mcp-port 8081

然后在Cline中,选择MCP服务器并添加:

  • 服务器名称: ProcmonMCP
  • 服务器URL: http://127.0.0.1:8081/mcp

LLM提示恶意软件分析示例

*(假设加载了Procmon XML文件)*

初步分类

  • “获取加载文件的摘要。”
  • “列出日志中发现的唯一进程。”
  • “统计每个进程的事件。” *(识别高活动过程)*
  • “计算按进程分组的计时统计信息。” *(识别长期事件)*

调查可疑流程

  • “获取进程PID 4568的详细信息。” *(检查命令行、父PID、图像路径)*
  • “总结流程操作 suspicious.exe."
  • “查询filter_process所在的事件 suspicious.exe 过滤器操作为 RegSetValue,限制10。”
  • “查找进程的网络连接 suspicious.exe."
  • “查找包含以下内容的文件访问权限 temp\\suspicious_data,限50。”

寻找毅力

  • “查询filter_operation所在的事件 RegSetValue filter_path_contains为 CurrentVersion\\Run限制20。”
  • “查询filter_operation所在的事件 CreateFile filter_path_contains为 StartUp,限制10。”

故障排除错误

  • “查询filter_result所在的事件 ACCESS DENIED,限制10。”
  • “查询filter_result所在的事件 NAME NOT FOUND,限制10。”
  • “获取事件987的详细信息。”
  • “获取事件987的堆栈跟踪。”

导出数据

  • “将查询结果导出到 suspicious_reg_writes.csv 其中filter_process是 suspicious.exe filter_operation包含 RegSet."
  • “将查询结果导出到 network_activity.json json格式。"

性能和索引

ProcmonMCP在文件加载过程中构建四个索引,用于快速过滤查找:

索引使用者复杂性
进程名称(互联网ID)query_events, count_events_by_processO(1)查找
操作(互联网ID)query_events, summarize_operations_by_processO(1)查找
PIDget_process_lifetimeO(1)集合交集查找
文件路径(互联网ID)find_file_accessO(unique_paths)子字符串扫描

对于没有索引支持的过滤器(例如正则表达式、路径包含、堆栈模块路径),ProcmonMCP会回退到对所有事件的线性扫描。首先使用索引过滤器来缩小结果范围,然后应用更昂贵的过滤器。

局限性

  • 内存使用:虽然通过字符串内部优化,但加载超大的XML文件(数百万个带有堆栈跟踪的事件)可能会消耗大量RAM。使用 --no-stack-traces--no-extra-data 对于非常大的文件。
  • 加载时间解析和优化大型XML文件需要时间,尤其是压缩文件。加载过程中会报告进度。
  • XML结构:依赖于标准的Procmon XML导出结构。格式错误或非标准的XML可能会导致解析错误。
  • 堆栈复写:堆栈跟踪质量取决于Procmon解析并包含在XML导出中的内容。需要使用正确配置的符号运行Procmon。
  • 一次一个文件:在任何给定时间只能加载一个文件。加载新文件会替换以前的数据。

贡献

欢迎投稿!请随时提交pull请求或未决问题 .

目录标签

目录标签

日志分析PythonClaude系统监控research-and-data本地部署XML处理MCP协议进程跟踪

支持客户端

Claude DesktopClaudeCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP