Token导航 LogoToken导航TokenDH.com
MCP ipc analyzer logo
运维云端stdio官方级别未说明来源级核验

MCP ipc analyzer

MCP Server

RHEL Advanced IPC Analyzer 是一个独立的eBPF代理和MCP服务器,用于实时深度分析RHEL 8系统上的进程间通信(IPC),支持直接监控和AI驱动的分析。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
实时监控PythonAI分析

安装说明

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

作者 / 组织

psuriset

提供方

psuriset

最后核验

2026/5/17 20:22

运行时

Python

快速接入

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

命令预览

python3 -m venv venv

详细介绍

RHEL Advanced IPC Analyzer

1. Overview

This project provides a powerful standalone eBPF agent and a Model-Context-Protocol (MCP) server to perform deep, real-time analysis of Inter-Process Communication (IPC) on a RHEL 8 system.

It is designed for two primary use cases:

  1. Direct, Real-Time Monitoring: Run the standalone eBPF agent to get a raw, detailed stream of various IPC events as they happen.
  2. AI-Powered Analysis: Use the MCP server to provide tools for a Large Language Model (LLM) to analyze system behavior in a structured way.

2. The Advanced eBPF Agent

The core of this project is a sophisticated eBPF agent that traces a wide variety of IPC mechanisms at the kernel level with minimal overhead.

Key Features:

  • Comprehensive IPC Tracing: Captures much more than just network traffic.

- Network Sockets: TCP and UDP connections (IPv4/IPv6). - Unix Domain Sockets: Local communication between processes. - System V Shared Memory: Traces processes attaching to shared memory segments. - System V Message Queues: Traces processes sending messages to message queues.

  • Rich Data Enrichment: Each event is enriched with process details, including PID, command, and Parent Process ID (PPID).
  • Kernel Compatibility: Dynamically resolves syscall names to ensure compatibility across different kernel versions.
  • Structured JSON Output: Streams events as single-line JSON objects, perfect for parsing with tools like jq.

How to Run the Agent Standalone

This is the recommended method for raw data collection and direct analysis.

Command:

# Run from the root of the mcp_ipc_analyzer directory
sudo python3 -u ebpf_agent/agent.py

Example Output Stream: You will see a real-time stream of JSON objects.

*Network Event Example:*

{"timestamp": "2023-10-27T15:30:01.123456", "process": {"pid": 12345, "ppid": 1234, "command": "curl"}, "ipc_mechanism": "outbound_network_socket", "details": {"transport_protocol": "TCP", "local_address": "192.168.1.10", "local_port": 54321, "remote_address": "142.250.191.196", "remote_port": 443, "application_protocol": "HTTPS/TLS"}}

*Unix Socket Example:*

{"timestamp": "2023-10-27T15:31:05.654321", "process": {"pid": 54321, "ppid": 1, "command": "systemd"}, "ipc_mechanism": "unix_domain_socket", "details": {"path": "/run/systemd/journal/stdout"}}

*Shared Memory Example:*

{"timestamp": "2023-10-27T15:32:10.987654", "process": {"pid": 11223, "ppid": 11220, "command": "python3"}, "ipc_mechanism": "systemv_shared_memory", "details": {"action": "attach", "shmid": 123456, "shmaddr": "0x7f1234567890"}}

3. The MCP Server

The MCP server provides a higher-level, model-agnostic interface for an AI to interact with the system's state.

Server Tools

1. get_process_connection_snapshot

  • Functionality: Provides a one-time snapshot of all running processes and their *currently active* network connections.
  • Use Case: Best for a comprehensive, static overview of the system's network state.

2. get_live_ipc_events

  • Functionality: Runs the advanced eBPF agent for a specified duration and streams all captured IPC events.
  • Note: This tool captures all IPC events from the enhanced agent, including network, Unix sockets, shared memory, and message queues.
  • Use Case: Best for observing the complete picture of system behavior and all types of IPC as it happens.

3. generate_ipc_analysis_prompt

  • Functionality: Automates analysis by running the snapshot tool and formatting the output into a detailed prompt ready to be sent to an LLM.
  • Use Case: The quickest way to go from raw data to expert-level analysis.

Example Generated Prompt:

The analysis_prompt field in the tool's output will contain a prompt similar to the following:

As an expert Linux Systems Analyst, your task is to analyze a snapshot of processes and their network connections from a RHEL 8 system to identify Inter-Process Communication (IPC) patterns.

Here is the snapshot of processes with active or listening network connections:
--- PROCESS CONNECTION SNAPSHOT ---
{
  "process_connections": [
    {
      "pid": 1234,
      "name": "sshd",
      "user": "root",
      "command": "/usr/sbin/sshd -D",
      "connections": [
        {
          "transport_protocol": "TCP",
          "identified_application_protocol": "SSH",
          "local_address": "0.0.0.0:22",
          "remote_address": "N/A",
          "status": "LISTEN"
        }
      ]
    },
    {
      "pid": 5678,
      "name": "curl",
      "user": "user1",
      "command": "curl https://www.google.com",
      "connections": [
        {
          "transport_protocol": "TCP",
          "identified_application_protocol": "HTTPS/TLS",
          "local_address": "192.168.1.10:54321",
          "remote_address": "142.250.191.196:443",
          "status": "ESTABLISHED"
        }
      ]
    }
  ]
}
--- END PROCESS CONNECTION SNAPSHOT ---

Based on the data provided, perform the following analysis:
1.  **Identify Key Services:** List the processes that are acting as servers (i.e., in a 'LISTEN' state). What services are they providing based on their port and process name?
2.  **Identify Key Clients:** List the processes that have established outbound connections. What external services are they communicating with?
3.  **Provide a High-Level Summary:** Write a brief summary of the system's role based on this snapshot. Is it primarily a web server, a database server, a client machine, or a mix of roles?

Present your analysis in a clear, structured format.

How to Use the MCP Server

Once the server is running, you can interact with it by calling its tools from another terminal using a command like curl. The server listens on port 8000.

1. List Available Tools: You can see a list of all available tools and their descriptions by calling the /openapi.json endpoint or by visiting the interactive documentation at http://127.0.0.1:8000/docs.

2. Call a Specific Tool: To call a tool, you send a POST request to its endpoint. For tools that take parameters (like get_live_ipc_events), you provide them in a JSON body.

Example: Calling get_live_ipc_events This command will run the eBPF agent for 10 seconds and stream all the IPC events it captures directly to your terminal.

curl -X POST http://127.0.0.1:8000/get_live_ipc_events \
-H "Content-Type: application/json" \
-d '{
  "duration_seconds": 10
}'

4. Prerequisites & Installation

  • Python 3.7+
  • BCC and Kernel Headers: The eBPF agent requires these to be installed.
  # For RHEL/Fedora based systems
  sudo dnf install -y bcc bcc-tools kernel-devel-$(uname -r) python3

Setup and Running

  1. Create and activate a Python virtual environment: This isolates the project's dependencies.
    python3 -m venv venv
    source venv/bin/activate

*(Note: On Windows, the activation command is venv\Scripts\activate)*

  1. Install Python libraries:
    pip3 install -r requirements.txt
  1. Run the desired component:

- To run the standalone eBPF agent:

      sudo python3 -u ebpf_agent/agent.py

- To run the MCP Server:

      sudo python3 main.py

目录标签

目录标签

实时监控PythonAI分析进程间通信本地部署eBPFRHEL

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP