# NousResearch/hermes-agent · Unexpected 'tools' field in MCP sampling capabilities

## Open now

- 1 issue, 2 PRs open on GitHub.
- #47963: Zoho Calendar MCP Connection Fails with "Unrecognized field 'tools'" During Initialization
- PR #18209: fix(mcp): make sampling tools capability opt-in
- PR #106942: fix(mcp): make sampling.tools capability opt-in via expose_client_tools

Multiple reports and fixes relate to an unexpected 'tools' field being serialized into the MCP client handshake's sampling capabilities, causing strict servers to reject the connection. Proposed fixes involve making the field opt-in or removing it from the default serialization.

## TL;DR

- 7 member(s): 1 open issue(s), 2 closed issue(s), 2 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #131891. Verify it addresses your case.
- **Recommended:** read PR #131891 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-131891`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.24`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #47963: Zoho Calendar MCP Connection Fails with "Unrecognized field 'tools'" During Initialization

## Closed / duplicate issues

- #5468: mcp_tool: SamplingCapability(tools=...) sub-capability rejected by strict MCP servers (Jackson FAIL_ON_UNKNOWN_PROPERTIES)
- #55469: Bug: HTTP Streamable MCP connection fails because ClientCapabilities.Sampling serialized with unexpected "tools" field

## Prior & competing PRs

- **#131891: fix(mcp): make sampling.tools capability opt-in via expose_client_tools \[risk 0.30\]**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `cli-config.yaml.example`, `skills/autonomous-ai-agents/hermes-agent/references/native-mcp.md`, `tests/tools/test_mcp_tool.py`, `tools/mcp_tool_sampling.py`
- **#18209: fix(mcp): make sampling tools capability opt-in**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#47963`, `#55469`
  - files: `cli-config.yaml.example`, `nix/nixosModules.nix`, `skills/autonomous-ai-agents/hermes-agent/references/native-mcp.md`, `tests/tools/test_mcp_tool.py`, `tools/mcp_tool.py`, `website/docs/user-guide/features/mcp.md`
- **#55522: fix(mcp): remove empty SamplingToolsCapability from client handshake**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#18209`, `#5468`
- **#106942: fix(mcp): make sampling.tools capability opt-in via expose_client_tools**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#5468`
  - files: `cli-config.yaml.example`, `skills/autonomous-ai-agents/hermes-agent/references/native-mcp.md`, `tests/tools/test_mcp_tool.py`, `tools/mcp_tool_sampling.py`

## Fix status

- Merged to main in PR #131891 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-10-05`.
- Subsystem: `mcp`
