forked from rhel-lightspeed/linux-mcp-server
-
Notifications
You must be signed in to change notification settings - Fork 0
add container lifecycle verification gate to build pipeline #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
alexxa
wants to merge
34
commits into
main
Choose a base branch
from
qa_container
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3f45729 to
0251bcf
Compare
--no-pager is not a valid parameter for lsblk, which causes an error when executing for remote and local devices
Add a method on CommandSpec (run) that performs the execute_command and fallback handling. Update the tools to call the CommandSpec.run method instead of execute_command directly.
…irectories sorted by size (rhel-lightspeed#131) * Reorganize tests Break test in separte modules for easier navigation. Combine tests using paramtrize. * Exclude the parent directory from output when listing directories sorted by size * Add tests cases Update original test case data since it did not match actual output from du. * Simpler approach that omits the last line
- Add docs dependency group with mkdocs, mkdocs-material, mkdocstrings - Create mkdocs.yml with Material theme and navigation structure - Add docs and docs-serve Makefile targets - Create docs/index.md home page - Rename docs files to lowercase for consistency - Fix internal links to use lowercase filenames - Add site/ to .gitignore (build output) Signed-off-by: Major Hayden <major@redhat.com>
…peed#135) Add workflow to automatically build and deploy documentation to GitHub Pages when changes are pushed to main branch. Triggers on changes to: - docs/** - src/** - mkdocs.yml - pyproject.toml Also supports manual workflow_dispatch for on-demand builds. Signed-off-by: Major Hayden <major@redhat.com>
0cb94a5 to
5dbc341
Compare
…eed#136) - Add API Reference nav section to mkdocs.yml - Create docs/api/ with stub files for all modules - Configure mkdocstrings with google docstring style - Remove --strict from docs build (griffe warnings on **kwargs) API documentation is auto-generated from source code docstrings for: - Core: server, config, commands, audit - Tools: system_info, services, processes, logs, network, storage - Utilities: connection, formatters, parsers Signed-off-by: Major Hayden <major@redhat.com>
…peed#138) Add type annotations to fix griffe warnings that prevented --strict mode in mkdocs build: - audit.py: Add types to AuditContext(**extra_fields) and return type - commands.py: Add types to run(**kwargs) and substitute_command_args(**kwargs) Signed-off-by: Major Hayden <major@redhat.com>
…ed#140) docs: reorganize installation guide with improved clarity Reorganize documentation into focused pages: - Split installation guide into focused, single-purpose pages - Add quick start to docs homepage for immediate onboarding - Prefer pip installation (marked as recommended) over containers Improve SSH and container documentation clarity: - Add layered SSH documentation (quick setup + expandable prerequisites) - Document remote host parameter formats (alias, user@host, hostname) - Explain container UID 1001 permissions with expandable details - Add Docker vs Podman differences callout - Add verification steps after pip/uv install with PATH troubleshooting - Add SSH Connection Issues troubleshooting section - Fix broken internal documentation links Add MCP client configurations: - Claude Code, Codex, Cursor, Gemini CLI, Goose, opencode, VS Code/Copilot, Windsurf - Restructure environment variables into logical categories - Add tip callout linking to environment variables reference Signed-off-by: Major Hayden <major@redhat.com>
…-lightspeed#141) Expand the Features section in the main documentation to better communicate the value of linux-mcp-server to both casual Linux users (Fedora, home labs) and enterprise users (RHEL, production). Changes: - Add emoji icons to each feature for visual clarity - Expand descriptions to explain real-world benefits - Highlight safety for production systems - Mention home labs, cloud VMs, and data centers - Contrast natural language queries vs memorizing command flags - Explicitly name Fedora and CentOS Stream alongside RHEL - Add installation verification step Signed-off-by: Major Hayden <major@redhat.com>
…htspeed#142) Add step-by-step instructions for configuring the linux-mcp-server extension via the Goose desktop app's GUI wizard, alongside the existing YAML configuration examples. Signed-off-by: Major Hayden <major@redhat.com>
Signed-off-by: Major Hayden <major@redhat.com>
…ng (rhel-lightspeed#144) * docs: improve contributing guide and AGENTS.md for developer onboarding contributing.md: - Add quick start TL;DR for experienced developers - Add project structure overview - Update tool example to match actual codebase patterns - Add linting/type checking section (ruff, pyright) - Fix step numbering bug in setup instructions - Add cross-references to related documentation - Reorganize with visual section dividers AGENTS.md: - Expand from minimal guidelines to comprehensive reference - Add project layout, commands, and workflow - Include conventional commits format requirement - Add security rules and testing requirements - Specify small, focused PRs requirement Signed-off-by: Major Hayden <major@redhat.com> * fixup! docs: improve contributing guide and AGENTS.md for developer onboarding Add language specifiers to fenced code blocks, fix nested list indentation - Add 'text' language specifier to project structure tree - Add 'text' language specifier to commit message format blocks - Fix nested list indentation to 2 spaces for MD007 compliance Signed-off-by: Major Hayden <major@redhat.com> --------- Signed-off-by: Major Hayden <major@redhat.com>
…l-lightspeed#145) The ~/.local/bin/linux-mcp-server --help command doesn't exist after pip install --user. Remove this misleading verification step from both index.md and install.md. Signed-off-by: Major Hayden <major@redhat.com>
…#146) Add a "How It Works" section with a mermaid flowchart showing: - MCP clients (Claude Code, Goose, etc.) at the top - Linux MCP Server in the middle - Target systems (local and remote hosts) at the bottom This provides a quick visual overview of the server's role in connecting MCP clients to Linux systems. Signed-off-by: Major Hayden <major@redhat.com>
…peed#147) Add comprehensive platform-specific guidance for macOS and Windows users: macOS: - Multiple Python installation methods (Homebrew, official installer, pyenv) - linux-mcp-server installation via pip and uv - PATH troubleshooting for zsh (default since Catalina) - SSH setup with macOS Keychain integration tip - Tool compatibility table showing local vs remote functionality Windows: - Multiple Python installation methods (Microsoft Store, winget, official installer, scoop) - linux-mcp-server installation via pip and uv - PATH configuration via PowerShell - OpenSSH client setup and ssh-agent configuration - Clear guidance on remote-only usage limitations - WSL tip for users wanting full local functionality Signed-off-by: Major Hayden <major@redhat.com>
* docs: add getting started guide and cheatsheet Add a new Getting Started guide for beginners and a Cheatsheet for quick reference. Update the main index to link to these new resources. Signed-off-by: Major Hayden <major@redhat.com> * docs: use list_files for recent changes example Update cheatsheet to use list_files instead of list_directories for checking recent changes, as this is a more common use case. Signed-off-by: Major Hayden <major@redhat.com> --------- Signed-off-by: Major Hayden <major@redhat.com>
…eed#158) Add reusable utility function to check if command output is empty or whitespace-only. This replaces the duplicated pattern 'not stdout or stdout.strip() == ""' found across tool files. - Add is_empty_output() to utils/validation.py - Add 13 parameterized test cases for edge cases - Update logs.py (3 instances) and services.py (1 instance) Signed-off-by: Major Hayden <major@redhat.com>
Add more detailed doc strings for each tool. Signed-off-by: Major Hayden <major@redhat.com>
bce5b46 to
79987b5
Compare
Based on some testing, @mairin found out that we were missing a key `args` in our config for pip/uv
* Change type aliases to make them optional Moving the optional value into the type hint allows the MCP schema to be generated correctly from the type hint. Without this change, the description is not properly added to the MCP schema. * Update type hints
Some parameters still use the Field object since they can use parameters to perform validation.
This makes Coderabbit reviews completely optional.
* Use field validation instead of custom functions Rather than reinventing existing functionality, use Field parameters to validate input values for intger ranges. * Increase test coverage
- Create .tekton/task-verify-container.yaml to smoke test the image. - Update pipeline-build-multiarch.yaml to include verify-container task. - Set verification as a dependency for security scans and tagging. The new task ensures the container starts correctly, runs as UID 1001, and responds to MCP JSON-RPC requests before proceeding with scans.
It can be used for easy integration with AI agents. It is also useful for local execution or testing purposes.
- Create .tekton/task-mcp-protocol-audit.yaml for deep protocol testing. - Update pipeline-build-multiarch.yaml to gate scans/tags behind protocol audit. - Ensure only valid JSON-RPC 2.0 servers are promoted to release.
…n testing - decoupled QA environment with Containerfile.qa - sidecar-based probing - network-aware verification
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The new task ensures the container starts correctly, runs as UID 1001, and responds to MCP JSON-RPC requests before proceeding with scans.