• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 21355567264
60%

Build:
DEFAULT BRANCH: main
Ran 26 Jan 2026 11:18AM UTC
Jobs 1
Files 471
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Jan 2026 11:10AM UTC coverage: 60.124% (+0.2%) from 59.949%
21355567264

push

github

web-flow
Preserve _meta fields in vMCP backend responses (#3354)

* Preserve _meta fields in vMCP backend responses

vMCP was discarding _meta fields from backend MCP server responses,
violating the MCP specification requirement to preserve protocol-level
metadata. This prevented clients from receiving progress tokens, trace
IDs, and custom backend metadata.

Fixes #2640

* fixes from review

* adds license headers

* fixes from review

* fix tests

Fix metadata preservation for IsError=true tool results

When a backend tool returns IsError=true, it's an MCP protocol-level
indication that the tool execution failed, not a transport/network error.
The previous implementation was converting IsError=true into a Go error
and discarding the result (including metadata), which violated the MCP
specification's requirement to preserve _meta fields.

Changes:
- client.go: Return full result (with metadata and IsError flag) instead
  of converting IsError=true to a Go error
- handler_factory.go: Remove ErrToolExecutionFailed handling since we
  no longer return that error for IsError=true results
- meta_integration_test.go: Update test to verify metadata is preserved
  even when IsError=true
- handler_factory_test.go: Update test to return IsError=true result
  instead of ErrToolExecutionFailed error

This allows clients to receive error results with metadata for distributed
tracing and debugging, as intended by the MCP specification.

Fix E2E test: use correct parameter name for yardstick echo tool

The yardstick echo tool expects 'input' parameter, not 'message'.
This was causing the tool to return IsError=true with no metadata,
making the test fail.

Fix E2E test: use only alphanumeric characters for yardstick input

Yardstick echo tool validates input against regex ^[a-zA-Z0-9]+$,
which doesn't allow hyphens. Changed test input from
'test-metadata-preservation' to 'testmetadatapreservation'.

---------

Co-authored-by: taskbot <taskbot@users.noreply.github.com>

208 of 242 new or added lines in 7 files covered. (85.95%)

1 existing line in 1 file now uncovered.

38071 of 63321 relevant lines covered (60.12%)

78.15 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
97.28
-0.66% pkg/vmcp/server/adapter/handler_factory.go
2
74.84
0.0% pkg/vmcp/server/telemetry.go
14
74.17
14.67% pkg/vmcp/client/client.go
16
83.09
-1.14% pkg/vmcp/composer/workflow_engine.go

Uncovered Existing Lines

Lines Coverage ∆ File
1
74.17
14.67% pkg/vmcp/client/client.go
Jobs
ID Job ID Ran Files Coverage
1 21355567264.1 26 Jan 2026 11:18AM UTC 471
60.12
GitHub Action Run
Source Files on build 21355567264
  • Tree
  • List 471
  • Changed 8
  • Source Changed 6
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21355567264
  • 53d60238 on github
  • Prev Build on main (#21347414893)
  • Next Build on main (#21357905014)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc