[PATCH 00/23] rteval: Add MCP server for result analysis
John Kacur <[email protected]>
| Newsgroups | org.kernel.vger.linux-rt-users |
|---|---|
| Message-ID | <[email protected]> |
This patch series adds an MCP (Model Context Protocol) server for querying
and analyzing rteval test results. The server enables AI assistants and other
MCP clients to programmatically access rteval data for multi-run analysis,
regression detection, and performance trend analysis.
The MCP server provides tools to:
- List and parse rteval XML result files
- Compare multiple test runs side-by-side
- Filter results by kernel version, date range, and latency thresholds
- Extract histogram data and calculate latency percentiles
- Analyze per-CPU latency statistics to identify problematic cores
- Access log files with grep/head/tail filtering
- Compare results against baselines and detect regressions
Target users:
- System administrators running rteval for real-time kernel validation
- QE engineers performing performance regression testing
- CI/CD pipelines requiring automated rteval result analysis
- Developers analyzing system behavior under load
Key features:
- Standards-based MCP protocol implementation
- Comprehensive test suite with integration tests
- Support for both cyclictest and timerlat histogram formats
- Handles overflow buckets and varying histogram sizes
- GPL-2.0-or-later licensed
Dependencies:
- python3-mcp (Fedora package available)
- python3-lxml (standard XML parsing)
Testing:
All tests pass via 'make test' in rteval_mcp/ directory. The server has
been tested with Claude Code as an MCP client.
Installation:
The server can be run from git checkout (./rteval_mcp/rteval-mcp-server)
or installed system-wide. An example MCP configuration file is provided
in mcp.json.example for packagers.
John Kacur (23):
rteval: Add prototype MCP server for result analysis
rteval: Implement compare_results functionality in MCP server
rteval: Add log file access tools to MCP server
rteval: mcp-server: Add Claude Code plugin configuration
rteval: Add .mcp.json for project-level MCP server configuration
rteval: mcp-server: Add rtla command line parser
rteval: mcp-server: Add batch analysis tool
rteval: mcp-server: Add query and filter capabilities
rteval MCP: Add histogram extraction and percentile analysis
rteval MCP: Reorganize tests into tests/ subdirectory
rteval MCP: Fix test_new_tools.py to find rteval result files
rteval MCP: Fix glob patterns to find rteval result files
rteval MCP: Add integration tests and remove hardcoded examples
rteval MCP: Add per-CPU latency statistics breakdown
mcp-server: Add overflow bucket support and cyclictest compatibility
mcp-server: Make tests generic and add Makefile integration
mcp-server: Add load information extraction and filtering
mcp-server: Rename server from rteval to rteval-mcp
mcp-server: Add GPL-2.0-or-later license headers to all files
mcp-server: Add Makefile for running tests
mcp-server: Add demo guide with example queries
mcp-server: Restructure as Python package with dynamic paths
mcp-server: Use relative path in .mcp.json and add example for
installation
.mcp.json | 7 +
Makefile | 10 +-
mcp.json.example | 11 +
rteval_mcp/.claude-plugin/plugin.json | 18 +
rteval_mcp/DEMO.md | 462 +++++
rteval_mcp/DEPENDENCIES.md | 33 +
rteval_mcp/Makefile | 51 +
rteval_mcp/README.md | 490 ++++++
rteval_mcp/__init__.py | 13 +
rteval_mcp/__main__.py | 33 +
rteval_mcp/manifest.json | 18 +
rteval_mcp/rteval-mcp-server | 21 +
rteval_mcp/rteval_server.py | 2019 ++++++++++++++++++++++
rteval_mcp/tests/test_histogram.py | 82 +
rteval_mcp/tests/test_mcp_integration.py | 220 +++
rteval_mcp/tests/test_new_tools.py | 142 ++
rteval_mcp/tests/test_per_cpu_stats.py | 134 ++
17 files changed, 3763 insertions(+), 1 deletion(-)
create mode 100644 .mcp.json
create mode 100644 mcp.json.example
create mode 100644 rteval_mcp/.claude-plugin/plugin.json
create mode 100644 rteval_mcp/DEMO.md
create mode 100644 rteval_mcp/DEPENDENCIES.md
create mode 100644 rteval_mcp/Makefile
create mode 100644 rteval_mcp/README.md
create mode 100644 rteval_mcp/__init__.py
create mode 100644 rteval_mcp/__main__.py
create mode 100644 rteval_mcp/manifest.json
create mode 100755 rteval_mcp/rteval-mcp-server
create mode 100755 rteval_mcp/rteval_server.py
create mode 100644 rteval_mcp/tests/test_histogram.py
create mode 100644 rteval_mcp/tests/test_mcp_integration.py
create mode 100644 rteval_mcp/tests/test_new_tools.py
create mode 100644 rteval_mcp/tests/test_per_cpu_stats.py
--
2.55.0