Skip to main content
Glama
Logic-ze

openEuler MCP Toolkit

by Logic-ze

openEuler MCP Toolkit

面向 openEuler/Linux 的只读系统观测与操作系统算法实验 MCP Server。它把内存、文件系统、进程与 CPU 信息封装为类型化工具,让支持 MCP 的大模型客户端能够调用可靠、可测试、结果规模受控的系统能力。

这个仓库是 MCP Server,不内置大模型。工具选择和自然语言解释由连接它的 MCP 客户端完成。

项目特点

  • 12 个正式工具,覆盖内存、文件系统、进程和 CPU 调度。

  • 实时系统观测与算法仿真采用独立模块和输出类型。

  • Pydantic 输入输出模型,由 MCP 自动生成并校验 Schema。

  • 文件工具受允许目录限制;不提供删除文件、结束进程等写操作。

  • 长时间采样支持取消和进度通知。

  • 纯算法测试、系统服务测试和真实 stdio MCP 协议测试。

  • 20 条自然语言评测任务,不绑定模型厂商或 API Key。

Related MCP server: MCP ProcFS Server

工具列表

模块

工具

类型

说明

内存

get_memory_info

实时观测

RAM、Swap 和 /proc/meminfo

内存

get_process_memory

实时观测

进程 RSS、VMS 和前 N 项内存映射

内存

sample_memory_trend

实时观测

有界时间窗口内的内存趋势

内存

simulate_page_replacement

算法仿真

FIFO、LRU、CLOCK、OPT

文件系统

get_filesystem_info

实时观测

分区、容量和 inode

文件系统

analyze_file_distribution

实时观测

受控目录内的文件分布

文件系统

monitor_file_metadata

实时观测

轮询文件大小和时间戳变化

文件系统

simulate_disk_allocation

算法仿真

连续、链式、索引分配

调度

get_process_tree

实时观测

有深度和节点上限的进程树

调度

monitor_context_switches

实时观测

系统或单进程上下文切换增量

调度

simulate_cpu_scheduling

算法仿真

FCFS、SJF、RR、Priority

调度

sample_cpu_time_ratios

实时观测

CPU 各状态时间占比

快速开始

需要 Python 3.11 或 3.12。推荐在 openEuler/Linux 上运行;macOS 可运行算法和多数 psutil 工具,但没有 /proc 数据。

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

启动 stdio Server:

openeuler-mcp

stdio 是协议通道,直接运行后没有交互式提示属于正常现象。可以运行协议示例:

python examples/smoke_client.py

使用 MCP Inspector:

mcp dev src/openeuler_mcp/server.py

通用客户端配置见 examples/mcp-config.json。请把命令改为虚拟环境中 openeuler-mcp 的绝对路径,并替换允许访问的目录。

文件访问安全

文件分析默认只能访问 Server 的启动目录。通过系统路径分隔符配置多个允许目录:

export OPENEULER_MCP_ALLOWED_ROOTS="/var/log:/home/user/safe-data"
  • 工具拒绝允许目录以外的路径。

  • 扫描时跳过符号链接。

  • 不要授权包含私钥、浏览器配置、Cookie 或其他敏感数据的目录。

  • MCP 客户端可能将工具结果发送给所配置的模型服务,请同时检查客户端的数据策略。

三条演示链路

1. 系统内存检查

查看当前内存和交换区使用情况,并说明数据来源。

客户端应调用 get_memory_info,然后区分 psutil 数据与 Linux /proc/meminfo 数据。

2. 进程内存分析

分析 PID 1234 的内存占用,只列出 RSS 最大的 10 项映射。

客户端应调用 get_process_memory(pid=1234, mapping_limit=10)。进程不存在或无权限时,调用应明确失败而不是返回伪造结果。

3. 调度算法对比

对任务 A(到达0、运行4) 和 B(到达0、运行2) 使用时间片1的 RR 调度,解释等待时间。

客户端应调用 simulate_cpu_scheduling。正确结果中 A、B 的累计等待时间都为 2。

更多示例见 docs/demo.md

测试

ruff check .
pytest --cov=openeuler_mcp --cov-report=term-missing

测试覆盖页面置换、RR 累计等待时间、磁盘分配回滚、路径边界、当前系统服务,以及 MCP Server 的 12 个工具注册、Schema 和结构化调用。

评测

evaluation/cases.jsonl 包含 20 条任务,其中两条用于验证模型不会选择不存在的危险写工具。把客户端调用轨迹整理为 result.example.jsonl 的格式后运行:

python evaluation/evaluate_results.py evaluation/result.example.jsonl

输出工具选择正确率、参数有效率、调用成功率和任务完成率;各项指标根据输入的客户端调用轨迹计算。

文档

已知限制

  • 仅提供本地 stdio transport,不包含远程 HTTP 和认证。

  • 文件变化通过元数据轮询观察,快速发生并恢复的变化可能被漏掉。

  • 进程和系统状态具有瞬时性,采集期间进程可能退出或权限可能变化。

  • 磁盘分配和 CPU/页面调度仅计算模拟结果,不会修改真实操作系统状态。

License

MIT

Available Tools

12 tools
analyze_file_distributionC

Summarize file counts, sizes, extensions, and largest paths in a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory inside allowed roots.
top_nNo
max_depthNo
max_filesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rootYes
max_depthYes
extensionsYes
largest_filesYes
scanned_filesYes
scan_truncatedYes
largest_directoriesYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It does not mention that the tool is read-only or its potential performance impact (e.g., scanning many files). The parameters max_depth and max_files imply safety limits, but the description does not explain these safeguards.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose. However, it could be more structured by mentioning parameter defaults or usage hints, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While an output schema exists (mitigating need to explain return values), the description fails to elaborate on what 'largest paths' means or how file sizes are summarized. Given the tool's four parameters and potential complexity, the description is too brief.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, and the tool description does not add any parameter details beyond the schema titles. Parameters like top_n and max_depth are not explained, and the description does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Summarize' and the resource 'file counts, sizes, extensions, and largest paths in a directory'. It distinguishes the tool from sibling tools which are all memory/process related, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or limitations. Sibling tools are dissimilar, so confusion is low, but explicit usage guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_filesystem_infoB

Read mounted filesystems, space usage, and inode counts when available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
partitionsYes
captured_atYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only mentions 'when available' for inode counts. It does not disclose potential behavior like permissions required, system impact, or edge cases. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, front-loaded with the action verb. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters and an output schema, the description is adequate but minimal. It does not elaborate on return values or typical use cases, which could be helpful given the sibling toolset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. The description adds no parameter information, but none is needed since schema is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads mounted filesystems and provides space usage and inode counts. The verb 'Read' and resource 'mounted filesystems' are specific, and the data types are listed. It distinguishes from sibling tools like get_memory_info but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as get_memory_info or monitor_file_metadata. The description lacks context for appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_memory_infoA

Read current system RAM, swap, and Linux /proc/meminfo values.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
swapYes
memoryYes
sourceYes
captured_atYes
proc_meminfoNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description correctly indicates a non-destructive read operation. It does not elaborate on permission needs or execution time, but the tool is simple enough that the description is sufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with no extraneous information. It is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, has an output schema, and is a simple read operation, the description is largely complete. However, it could briefly mention that it provides a system-wide snapshot to differentiate from process-specific alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description has no additional meaning to add beyond the input schema. Per the guidelines, parameter semantics score baselines at 4 for 0 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads current system RAM, swap, and /proc/meminfo values. It uses a specific verb ('Read') and resource, and distinguishes itself from siblings like get_process_memory (process-level) and sample_memory_trend (time series).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives. It implicitly suggests it is for a one-shot system-wide memory snapshot, but no explicit when-to-use or when-not-to-use information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_process_memoryA

Read RSS, VMS, and the largest memory mappings for one process.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYesOperating-system process ID
mapping_limitNoMaximum mappings returned, sorted by RSS

Output Schema

ParametersJSON Schema
NameRequiredDescription
pidYes
nameYes
sourceYes
mappingsYes
rss_bytesYes
vms_bytesYes
captured_atYes
total_mappingsYes
returned_mappingsYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description labels the tool as 'Read', indicating a non-destructive, read-only operation. However, with no annotations to provide safety guarantees, the description lacks further behavioral context (e.g., permissions required, impact on system, rate limits). It is adequate but not enriched beyond the basic read indication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the action ('Read') and immediately conveys the key resources. It contains no filler or redundant information, making it concise and effective for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, output schema present), the description covers the essential functionality. The presence of an output schema reduces the need to explain return values. However, it lacks contextual completeness regarding prerequisites (e.g., process existence, permissions) or strictness of inputs (e.g., pid validity), leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the existing parameter descriptions are clear. The description adds value by mentioning 'largest memory mappings' which hints at the mapping_limit parameter's purpose, but it does not significantly augment what the schema already provides (e.g., mapping_limit's description already states 'sorted by RSS'). Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the specific resources: 'RSS, VMS, and the largest memory mappings for one process.' This distinguishes it from siblings like 'get_memory_info' (likely broader) and 'sample_memory_trend' (temporal focus), providing a specific and actionable purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description implies it is for reading detailed memory of a single process, but it does not compare with alternatives such as 'get_memory_info' or 'sample_memory_trend', leaving the agent to infer usage context without clear boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_process_treeB

Read a bounded parent-child process tree from a selected root PID.

ParametersJSON Schema
NameRequiredDescriptionDefault
root_pidNo
max_depthNo
max_nodesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
treeYes
root_pidYes
max_depthYes
truncatedYes
captured_atYes
returned_nodesYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It notes 'Read' indicating read-only and 'bounded' suggesting limits, but does not disclose details like snapshot nature, potential recursion cost, or that parameters control bounds. The output schema helps but description remains thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise but under-specified. Every word is functional, yet critical parameter info is missing. Could be more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters and no annotations, the description should detail parameter behavior. It only identifies root PID, ignoring depth and node limits. Despite an output schema, the missing parameter context leaves the tool incomplete for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and description only mentions 'root PID' implicitly via 'selected root PID'. It fails to explain max_depth and max_nodes parameters, leaving their semantics entirely to the schema. The description adds negligible value beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it reads a bounded parent-child process tree from a selected root PID, using specific verb 'Read' and precise resource. No sibling tools overlap with process trees, so differentiation is inherent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this vs alternatives. However, sibling tools are unrelated (memory, file, CPU), so confusion is minimal. Implied usage for reading process hierarchies, but lacks when-not or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

monitor_context_switchesB

Sample system-wide or per-process context-switch deltas.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
duration_secondsNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pidNo
scopeYes
samplesYes
duration_secondsYes
interval_secondsYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description only mentions sampling deltas but does not disclose behavioral traits like permissions, limitations, or whether it's poll-based.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no fluff, front-loaded verb 'Sample', efficient for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks completeness given 3 parameters and no annotations. Does not explain return values or how to interpret deltas, despite having an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% yet the description adds meaning by linking 'pid' to per-process sampling and 'deltas' to output type. However, it does not explain other parameters or their interaction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool samples context-switch deltas, either system-wide or per-process, distinguishing it from siblings like memory or CPU tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The purpose is implied but lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

monitor_file_metadataB

Poll file size and timestamps; this is metadata polling, not access tracing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile inside allowed roots
duration_secondsNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
eventsYes
methodNo
duration_secondsYes
interval_secondsYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states 'metadata polling' without disclosing read-only nature, side effects, authorization needs, or rate limits. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. The first sentence identifies the action and target, the second clarifies what the tool does not do. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema existing, the description does not mention return values or behavior (e.g., polling starts immediately, returns array of snapshots). Lacks critical context for a polling tool with configurable parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only the path parameter has a schema description (33% coverage). The tool description adds context that duration_seconds and interval_seconds control polling timing, but does not explain each parameter in detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool polls file size and timestamps, and explicitly distinguishes it from access tracing, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_filesystem_info or analyze_file_distribution). The negative hint about access tracing is present but insufficient for making informed tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sample_cpu_time_ratiosB

Sample CPU time deltas and normalize them into per-state ratios.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_secondsNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
samplesYes
duration_secondsYes
interval_secondsYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It states a read-like operation (sampling) and normalization, but does not explain side effects, permissions, or what 'per-state ratios' means. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words. Efficient but could be slightly expanded without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists but description does not explain return format or state meaning. No context on how sampling works or relationship to sibling tools. Incomplete for a tool with parameters and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and description does not mention parameters 'duration_seconds' or 'interval_seconds'. No meaning added beyond schema defaults and ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs 'sample' and 'normalize' with clear resource 'CPU time deltas' and outcome 'per-state ratios'. It distinguishes from siblings like get_memory_info or simulate_cpu_scheduling by focusing on sampling and ratio normalization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like simulate_cpu_scheduling. The description implies it is for sampling CPU time ratios, but lacks context on conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sample_memory_trendC

Sample system memory usage and classify its short-term direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_secondsNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
trendYes
samplesYes
change_ratioYes
duration_secondsYes
interval_secondsYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention whether the tool has side effects, requires permissions, alters system state, or what 'classify' entails. The description is too vague to ensure safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded with the primary action. However, it could be slightly more structured by separating the sampling and classification aspects. Still, it is appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (not shown), the description does not provide enough context for an agent to understand what the tool returns. With two parameters and zero schema coverage, the description should elaborate on sampling behavior and output format. It is incomplete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning parameters are not documented in the schema. The description does not mention duration_seconds or interval_seconds, nor does it explain their purpose, defaults, or constraints. This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: sampling system memory usage and classifying its short-term direction. This is a specific verb+resource combination that distinguishes it from siblings like get_memory_info (which likely returns current snapshot) and sample_cpu_time_ratios (CPU-focused).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't explain when to use sampling over get_memory_info, or how the classification differs from other monitoring tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_cpu_schedulingC

Simulate CPU scheduling and report waiting, turnaround, and response metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobsYes
algorithmNoFCFS, SJF, RR, or PRIORITY; lower priority numbers run firstRR
time_sliceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobsYes
metricsYes
timelineYes
algorithmYes
time_sliceNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only states it simulates and reports metrics, but does not mention side effects, state changes, or that it is a pure simulation without persistent effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise but lacking detail. It is front-loaded with the primary action, but could include additional information in a second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description fails to explain input parameters (jobs array structure, algorithm options, time_slice). It is insufficient for an agent to use the tool correctly without inferring from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33% (only algorithm described). The description adds no explanation for parameters like jobs or time_slice, failing to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool simulates CPU scheduling and reports waiting, turnaround, and response metrics. It distinguishes from sibling tools like simulate_page_replacement by specifying the type of scheduling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., simulate_page_replacement). It lacks context about prerequisites or suitable scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_disk_allocationB

Simulate transactional contiguous, linked, or indexed block allocation.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenarioYes
strategyNocontiguous, linked, or indexedcontiguous
block_size_bytesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
strategyYes
allocationsYes
free_blocksYes
total_blocksYes
block_size_bytesYes
free_block_ratioYes
block_map_previewYes
largest_free_extent_blocksYes
external_fragmentation_ratioYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. 'Simulate' implies no real-world changes, but it does not explicitly state the simulation is non-destructive or read-only. Adequate but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence with no redundant words. However, it could be slightly more structured to improve readability without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the input schema (nested objects, multiple parameters) and the lack of annotations, the description is too minimal. It does not explain when to provide DiskScenario or the meaning of allocation strategies, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only strategy parameter has a description). The tool description adds no additional meaning beyond the schema, leaving parameters like total_blocks and block_size_bytes unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'simulate' and the resource 'disk block allocation' with three explicit strategies (contiguous, linked, indexed), distinguishing it from sibling tools like simulate_page_replacement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., simulate_page_replacement) or any exclusions. The description lacks context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_page_replacementC

Simulate FIFO, LRU, CLOCK, or optimal page replacement.

ParametersJSON Schema
NameRequiredDescriptionDefault
algorithmNoFIFO, LRU, CLOCK, or OPTLRU
frame_countNo
reference_stringYesPage reference sequence

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
stepsYes
faultsYes
hit_rateYes
algorithmYes
fault_rateYes
frame_countYes
reference_lengthYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present. The description does not disclose any behavioral traits such as side effects, output format, or performance implications. It merely repeats the algorithmic options.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, which is concise but lacks necessary details. It is front-loaded with the key action, but the brevity sacrifices completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of page replacement simulation, the description is too sparse. It does not hint at the output (e.g., page faults, hit ratio) or explain how parameters affect results. Even with an output schema present, the description should provide context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the parameter schema. The algorithm list is already in the schema; frame_count and reference_string are not elaborated. With 67% schema coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool simulates page replacement using FIFO, LRU, CLOCK, or optimal algorithms. It distinguishes from sibling tools like simulate_cpu_scheduling and simulate_disk_allocation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, or on selecting among the four algorithms. There is no mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.0
    • First observedanalyze_file_distribution
    • First observedget_filesystem_info
    • First observedget_memory_info
    • First observedget_process_memory
    • First observedget_process_tree
    • First observedmonitor_context_switches
    • First observedmonitor_file_metadata
    • First observedsample_cpu_time_ratios
    • First observedsample_memory_trend
    • First observedsimulate_cpu_scheduling
    • First observedsimulate_disk_allocation
    • First observedsimulate_page_replacement

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation4/5

Tools cover distinct areas like memory, filesystem, processes, and CPU scheduling, but some memory-related tools (get_memory_info, sample_memory_trend, get_process_memory) could be confused. Overall, each tool has a specific purpose with limited overlap.

Naming Consistency3/5

Names use mixed verb patterns (get_, monitor_, sample_, simulate_, analyze_) rather than a consistent verb_noun structure. While readable, the lack of pattern may cause hesitation in selecting the correct tool.

Tool Count5/5

With 12 tools, the count falls well within the ideal 3-15 range for a system toolkit. Each tool serves a clear function without unnecessary bloat or sparseness.

Completeness3/5

The toolkit covers memory, filesystem, process, and CPU scheduling domains, but lacks basic tools like listing all processes, CPU info, or network stats. Notable gaps exist for a comprehensive system toolkit.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A read-only MCP server for Linux and macOS system administration, diagnostics, and troubleshooting, supporting remote SSH execution and multi-host management.
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A powerful MCP server for reading and modifying Linux /proc filesystem values, providing system monitoring, process management, and sysctl operations via JSON-RPC and SSE.
    14
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A Linux system monitoring MCP server that provides real-time information on CPU, memory, disk, network, processes, Docker, security, and more via MCP tools.
    69
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A read-only system observability and OS algorithm lab MCP server for openEuler/Linux, encapsulating memory, filesystem, process, and CPU info into typed tools for reliable LLM client use.
    -