Analyzes MicroShift test failures from Google Sheets to correlate them with specific MicroShift versions.
A Python-based MCP (Model Context Protocol) server that analyzes MicroShift test failures from Google Sheets, providing specialized tools for correlating test failures with MicroShift versions.
pip install -r requirements.txt
client_email
)Copy the example environment file:
cp env.example .env
Edit .env
and set your Google credentials using the values from your service account JSON file:
GOOGLE_CLIENT_EMAIL=your-service-account@your-project.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYour private key content\n-----END PRIVATE KEY-----\n"
Note: Copy the client_email
and private_key
values directly from your downloaded JSON file. Make sure to include the quotes around the private key and preserve the \n
characters.
The server is currently configured to read from the spreadsheet ID in the URL you provided. If you need to change this:
server.py
SPREADSHEET_ID
constant near the top of the fileYou may also need to adjust the sheet name and range in the get_sheets_data()
function (currently set to '2025_06!A:ZZ'
).
python server.py
The server will start and listen for MCP connections via stdio.
python server.py
The MCP server provides the following specialized tools for MicroShift test analysis:
get_failed_pipelines_by_version
Get failed testing pipelines grouped by MicroShift version.
Parameters:
version
(optional): Specific MicroShift version to filterlimit
(optional): Maximum number of results to return (default: 50)get_failure_summary
Get summary of test failures across all MicroShift versions.
Parameters:
group_by
(optional): Group failures by "version", "pipeline", or "reason" (default: "version")get_pipeline_failure_trends
Analyze failure trends for specific testing pipelines over time.
Parameters:
pipeline_name
(optional): Name of the testing pipeline to analyzedays
(optional): Number of days to look back (default: 30)search_failure_reasons
Search for specific failure reasons across all tests.
Parameters:
search_term
(required): Search term to find in failure reasonsversion
(optional): Filter by specific MicroShift versionget_version_comparison
Compare test results between different MicroShift versions.
Parameters:
version1
(required): First MicroShift version to compareversion2
(required): Second MicroShift version to compareThe server expects your Google Sheet to have the following column structure:
This server follows the official MCP Python SDK pattern using FastMCP
. It can be used with any MCP-compatible client like Claude for Desktop.
Add this to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json
on macOS):
{
"mcpServers": {
"microshift-test-analyzer": {
"command": "python",
"args": ["/absolute/path/to/mcp-test-scenarios-server/server.py"],
"cwd": "/absolute/path/to/mcp-test-scenarios-server"
}
}
}
Once connected to Claude for Desktop, you can ask questions like:
GOOGLE_CLIENT_EMAIL
and GOOGLE_PRIVATE_KEY
environment variables are set correctlyAnalyze large codebases and document collections using high-context models via OpenRouter, OpenAI, or Google AI -- very useful, e.g., with Claude Code
An MCP server for accessing YAPI interface details, configured via environment variables.
Perform accessibility audits on webpages using the axe-core engine to identify and help fix a11y issues.
Interact with the Hyperliquid decentralized exchange by integrating its SDK.
Interact with CodeRabbit AI reviews on GitHub pull requests.
A Cookiecutter template for creating MCP servers with Apple container support and configurable transport methods.
Fetch comprehensive information about CRAN packages, including READMEs, metadata, and search functionality.
A goal-agnostic parallel orchestration framework implementing Infinite Agentic Loop patterns as a Model Context Protocol (MCP) server.
Search and access Laravel documentation from version 6.x onwards, with automatic daily updates.
Access documentation from the Awesome-llms-txt repository directly in your conversations.