Skip to content

Conversation

@alexxa
Copy link
Owner

@alexxa alexxa commented Dec 18, 2025

  • 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.

@alexxa alexxa force-pushed the qa_container branch 7 times, most recently from 3f45729 to 0251bcf Compare December 18, 2025 14:31
--no-pager is not a valid parameter for lsblk, which causes an error
when executing for remote and local devices
subpop and others added 5 commits December 18, 2025 11:27
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>
@alexxa alexxa force-pushed the qa_container branch 2 times, most recently from 0cb94a5 to 5dbc341 Compare January 5, 2026 19:27
subpop and others added 14 commits January 5, 2026 15:08
…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>
@alexxa alexxa force-pushed the qa_container branch 2 times, most recently from bce5b46 to 79987b5 Compare January 6, 2026 19:02
Based on some testing, @mairin found out that we were missing a key `args` in our config for pip/uv
samdoran and others added 11 commits January 6, 2026 15:06
* 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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants