openEuler MCP Toolkit
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@openEuler MCP Toolkitcheck the current memory and swap usage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
工具列表
模块 | 工具 | 类型 | 说明 |
内存 |
| 实时观测 | RAM、Swap 和 |
内存 |
| 实时观测 | 进程 RSS、VMS 和前 N 项内存映射 |
内存 |
| 实时观测 | 有界时间窗口内的内存趋势 |
内存 |
| 算法仿真 | FIFO、LRU、CLOCK、OPT |
文件系统 |
| 实时观测 | 分区、容量和 inode |
文件系统 |
| 实时观测 | 受控目录内的文件分布 |
文件系统 |
| 实时观测 | 轮询文件大小和时间戳变化 |
文件系统 |
| 算法仿真 | 连续、链式、索引分配 |
调度 |
| 实时观测 | 有深度和节点上限的进程树 |
调度 |
| 实时观测 | 系统或单进程上下文切换增量 |
调度 |
| 算法仿真 | FCFS、SJF、RR、Priority |
调度 |
| 实时观测 | 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-mcpstdio 是协议通道,直接运行后没有交互式提示属于正常现象。可以运行协议示例:
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
Available Tools
12 toolsanalyze_file_distributionC
Summarize file counts, sizes, extensions, and largest paths in a directory.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory inside allowed roots | . |
| top_n | No | ||
| max_depth | No | ||
| max_files | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| root | Yes | |
| max_depth | Yes | |
| extensions | Yes | |
| largest_files | Yes | |
| scanned_files | Yes | |
| scan_truncated | Yes | |
| largest_directories | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| partitions | Yes | |
| captured_at | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| swap | Yes | |
| memory | Yes | |
| source | Yes | |
| captured_at | Yes | |
| proc_meminfo | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pid | Yes | Operating-system process ID | |
| mapping_limit | No | Maximum mappings returned, sorted by RSS |
Output Schema
| Name | Required | Description |
|---|---|---|
| pid | Yes | |
| name | Yes | |
| source | Yes | |
| mappings | Yes | |
| rss_bytes | Yes | |
| vms_bytes | Yes | |
| captured_at | Yes | |
| total_mappings | Yes | |
| returned_mappings | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| root_pid | No | ||
| max_depth | No | ||
| max_nodes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tree | Yes | |
| root_pid | Yes | |
| max_depth | Yes | |
| truncated | Yes | |
| captured_at | Yes | |
| returned_nodes | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pid | No | ||
| duration_seconds | No | ||
| interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| pid | No | |
| scope | Yes | |
| samples | Yes | |
| duration_seconds | Yes | |
| interval_seconds | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File inside allowed roots | |
| duration_seconds | No | ||
| interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | Yes | |
| events | Yes | |
| method | No | |
| duration_seconds | Yes | |
| interval_seconds | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| duration_seconds | No | ||
| interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| samples | Yes | |
| duration_seconds | Yes | |
| interval_seconds | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| duration_seconds | No | ||
| interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| trend | Yes | |
| samples | Yes | |
| change_ratio | Yes | |
| duration_seconds | Yes | |
| interval_seconds | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | ||
| algorithm | No | FCFS, SJF, RR, or PRIORITY; lower priority numbers run first | RR |
| time_slice | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | |
| metrics | Yes | |
| timeline | Yes | |
| algorithm | Yes | |
| time_slice | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | Yes | ||
| strategy | No | contiguous, linked, or indexed | contiguous |
| block_size_bytes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| strategy | Yes | |
| allocations | Yes | |
| free_blocks | Yes | |
| total_blocks | Yes | |
| block_size_bytes | Yes | |
| free_block_ratio | Yes | |
| block_map_preview | Yes | |
| largest_free_extent_blocks | Yes | |
| external_fragmentation_ratio | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| algorithm | No | FIFO, LRU, CLOCK, or OPT | LRU |
| frame_count | No | ||
| reference_string | Yes | Page reference sequence |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | Yes | |
| steps | Yes | |
| faults | Yes | |
| hit_rate | Yes | |
| algorithm | Yes | |
| fault_rate | Yes | |
| frame_count | Yes | |
| reference_length | Yes |
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
v0.1.0- First observed
analyze_file_distribution - First observed
get_filesystem_info - First observed
get_memory_info - First observed
get_process_memory - First observed
get_process_tree - First observed
monitor_context_switches - First observed
monitor_file_metadata - First observed
sample_cpu_time_ratios - First observed
sample_memory_trend - First observed
simulate_cpu_scheduling - First observed
simulate_disk_allocation - First observed
simulate_page_replacement
TDQS
Scored across 12 tools
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.
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.
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.
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
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only MCP server for the OPERANT AI operating-agent calibration benchmark.
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server for Linux and macOS system administration, diagnostics, and troubleshooting, supporting remote SSH execution and multi-host management.Apache 2.0
- AlicenseBqualityDmaintenanceA powerful MCP server for reading and modifying Linux /proc filesystem values, providing system monitoring, process management, and sysctl operations via JSON-RPC and SSE.14MIT
- AlicenseAqualityAmaintenanceA Linux system monitoring MCP server that provides real-time information on CPU, memory, disk, network, processes, Docker, security, and more via MCP tools.69MIT
- -licenseNot gradedqualityNot gradedmaintenanceA 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.-