Skip to content

feat: evalhub CLI server & mcp Lifecycle managements with sdk>=0.4.3#91

Merged
gnaulak-redhat merged 5 commits into
eval-hub:mainfrom
gnaulak-redhat:chore-evalhub-cli
Jul 14, 2026
Merged

feat: evalhub CLI server & mcp Lifecycle managements with sdk>=0.4.3#91
gnaulak-redhat merged 5 commits into
eval-hub:mainfrom
gnaulak-redhat:chore-evalhub-cli

Conversation

@gnaulak-redhat

@gnaulak-redhat gnaulak-redhat commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

What and why

Changes: evalhub CLI updates

  • evalhub server to manage local evalhub server
  • evalhub mcp to replace the python based with Go based
  • Local mode now only rely on eval-hub-sdk directly . It will hide eval-hub-server from end user now. And simplified the onboarding of config and provider.

Closes # #81 #84

Type

  • feat
  • fix
  • docs
  • refactor / chore
  • test / ci

Testing

  • Tests added or updated
  • Tested manually
Screenshot 2026-07-09 at 3 18 39 PM

Breaking changes

No

Summary by CodeRabbit

  • Documentation
    • Updated CLI and local-mode guides with new server and MCP management commands, config file workflows, and troubleshooting details.
    • Added instructions for inspecting, removing, and masking config values, plus clearer guidance for local server status, logs, and TLS setup.
    • Revised installation and tutorial steps to match the newer CLI/SDK flow, including updated setup, startup, and environment variable examples.

gnaulak-redhat and others added 4 commits July 8, 2026 13:39
…ub#81, eval-hub#84)

Add documentation for the new `evalhub server run|start|stop|status`
commands, `server_config_file` config key, `--unfold` flag on
`config get`, and `config unset`. Convert CLI guide from .md to .mdx
for Since component support. Update MCP installation docs with
CLI-managed `mcp_config_file` configuration flow, `evalhub mcp`
subcommands, and breaking change notice for the old `evalhub mcp`
stdio command removed in 0.4.3.

Co-Authored-By: Claude <noreply@anthropic.com>
Replace eval-hub-server --local --configdir with evalhub server
start/stop workflow. Add inline server config YAML, BYOF provider
template with MLFLOW_TRACKING_URI, sample job.yaml, and OCI credentials
guidance. Remove deprecated --local flag references, job.json schema,
and environment variables section.

Co-Authored-By: Claude <noreply@anthropic.com>
Bump Since tags to 0.4.3 eval-hub-sdk, reorder tutorial steps to
download adapter before installing dependencies, pin SDK to >=0.4.3,
add MLFLOW_TRACKING_URI to tutorial provider YAML, update cluster mode
multi-tenancy description, and clean up next steps.

Co-Authored-By: Claude <noreply@anthropic.com>
…output

Replace cat heredoc with file-creation instruction for consistency,
add PROVIDER_ID/BENCHMARK_ID/JOB_ID shell variables from CLI output
to use in subsequent commands, and update example results with actual
evalhub output. Pin minimum SDK version in local-mode guide.

Co-Authored-By: Claude <noreply@anthropic.com>
@gnaulak-redhat gnaulak-redhat changed the title feat: evalhub CLI updates available from sdk>=0.4.3 feat: evalhub CLI server & mcp Lifecycle managements with sdk>=0.4.3 Jul 9, 2026
@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@gnaulak-redhat, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 45 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4afb46a0-97f3-4b0e-8fd5-1fe51c2e745d

📥 Commits

Reviewing files that changed from the base of the PR and between 396eea7 and 62fecf5.

📒 Files selected for processing (3)
  • src/content/docs/guides/cli.mdx
  • src/content/docs/guides/local-mode-tutorial.mdx
  • src/content/docs/guides/local-mode.mdx
📝 Walkthrough

Walkthrough

Documentation across the CLI guide, local-mode guides, and MCP installation guide is updated to describe new CLI-managed evalhub server and evalhub mcp daemon commands, config file-based server/MCP configuration, config unset/inspection behavior, and revised setup, provider, and troubleshooting instructions.

Changes

CLI-managed server/MCP documentation update

Layer / File(s) Summary
CLI guide: config unset/inspect and command reference
src/content/docs/guides/cli.mdx
Adds Since import, documents evalhub config unset and file-based config inspection (--unfold, --unmask), and expands the command reference table.
CLI guide: server and mcp management sections
src/content/docs/guides/cli.mdx
Adds new sections on managing the local evalhub server and evalhub mcp daemons (run/start/stop/status, PID/log locations, TLS example).
Local-mode tutorial: setup and server startup flow
src/content/docs/guides/local-mode-tutorial.mdx
Bumps version marker, adds venv activation tip and adapter install steps, replaces server startup with config file + evalhub config set/evalhub server start, updates provider env vars, table label, and next-steps bullets.
Local Mode guide: server startup, provider config, troubleshooting
src/content/docs/guides/local-mode.mdx
Rewrites server startup instructions, mermaid diagram label, provider configuration for runtime.local, server logs troubleshooting, and MLflow config guidance.
MCP installation: CLI-managed lifecycle and config
src/content/docs/mcp/installation.mdx
Replaces stdio-based guidance with CLI-managed evalhub mcp run/start/status/stop lifecycle and adds a new mcp_config_file configuration section.

Estimated code review effort: 2 (Simple) | ~12 minutes

Possibly related issues

Possibly related PRs

Suggested reviewers: ppadashe-psp

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main change: new evalhub CLI server and MCP lifecycle management for sdk 0.4.3+.
Description check ✅ Passed The description includes the required What and why, Type, Testing, and Breaking changes sections, with issue links and a clear summary.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
src/content/docs/guides/local-mode-tutorial.mdx (2)

34-52: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Version pin inconsistency between tutorial and local-mode guide.

The tutorial pins eval-hub-sdk[server,cli]>=0.4.3 (line 52) while the Local Mode guide at line 25 installs eval-hub-sdk[server,cli] without a version constraint. Since the Since marker in both files declares 0.4.3, consider aligning the install commands so users following either guide get a compatible version.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/content/docs/guides/local-mode-tutorial.mdx` around lines 34 - 52, The
install commands for eval-hub-sdk are inconsistent across the local-mode
tutorial and the Local Mode guide, which can lead to users installing different
versions. Update the install step in the tutorial section that uses uv pip
install so it matches the version constraint used elsewhere, aligning with the
Since 0.4.3 marker. Keep the wording and command structure consistent around the
install instructions in the local-mode guide content.

121-152: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

In-memory SQLite URL may need clarification for persistence.

The database URL file::eval_hub:?mode=memory&cache=shared uses an in-memory SQLite database. While this is fine for a tutorial, users following along may lose all evaluation data when the server stops. Consider adding a brief note that this is ephemeral and that a file-based URL should be used for persistent storage, or that the tutorial intentionally uses in-memory for simplicity.

This is consistent with the same URL in local-mode.mdx line 36, so both guides share the same behavior.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/content/docs/guides/local-mode-tutorial.mdx` around lines 121 - 152,
Clarify that the `database.url` value using
`file::eval_hub:?mode=memory&cache=shared` in the EvalHub server setup is
ephemeral and will not persist data after shutdown. Update the
`local-mode-tutorial.mdx` step around the `my-config.yaml` example to briefly
note that this in-memory SQLite configuration is intentional for the tutorial,
and point readers to using a file-based SQLite URL if they want persistent
storage. Keep the note close to the `service`, `database`, and `mlflow` config
example so it is easy to find and consistent with the same URL used in
`local-mode.mdx`.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/content/docs/guides/cli.mdx`:
- Around line 73-79: Clarify the CLI docs text around the `--unfold` and
`--unmask` flags so their interaction is unambiguous: the current wording
contradicts the example by calling them mutually exclusive while showing them
used together. Rewrite the description in the `config get` section to explicitly
state when each flag is allowed alone and what happens when they are combined,
using the same flag names and the `server_config_file` example to make the
behavior clear.

---

Nitpick comments:
In `@src/content/docs/guides/local-mode-tutorial.mdx`:
- Around line 34-52: The install commands for eval-hub-sdk are inconsistent
across the local-mode tutorial and the Local Mode guide, which can lead to users
installing different versions. Update the install step in the tutorial section
that uses uv pip install so it matches the version constraint used elsewhere,
aligning with the Since 0.4.3 marker. Keep the wording and command structure
consistent around the install instructions in the local-mode guide content.
- Around line 121-152: Clarify that the `database.url` value using
`file::eval_hub:?mode=memory&cache=shared` in the EvalHub server setup is
ephemeral and will not persist data after shutdown. Update the
`local-mode-tutorial.mdx` step around the `my-config.yaml` example to briefly
note that this in-memory SQLite configuration is intentional for the tutorial,
and point readers to using a file-based SQLite URL if they want persistent
storage. Keep the note close to the `service`, `database`, and `mlflow` config
example so it is easy to find and consistent with the same URL used in
`local-mode.mdx`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cfa36100-c0c0-4244-abd6-aa5c487efe9b

📥 Commits

Reviewing files that changed from the base of the PR and between d7f0726 and 396eea7.

📒 Files selected for processing (4)
  • src/content/docs/guides/cli.mdx
  • src/content/docs/guides/local-mode-tutorial.mdx
  • src/content/docs/guides/local-mode.mdx
  • src/content/docs/mcp/installation.mdx

Comment thread src/content/docs/guides/cli.mdx Outdated
Remove contradictory "mutually exclusive" language — the flags
can be used independently or combined.

Co-Authored-By: Claude <noreply@anthropic.com>
@ruivieira ruivieira self-assigned this Jul 14, 2026
@gnaulak-redhat gnaulak-redhat merged commit 703659d into eval-hub:main Jul 14, 2026
2 of 3 checks passed
@gnaulak-redhat gnaulak-redhat deleted the chore-evalhub-cli branch July 14, 2026 10:19
@github-project-automation github-project-automation Bot moved this from Todo to Done in EvalHub Planning Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants