## Issue
Closes#5258
## Change
Adds typed MCP icon support for MCP list results:
- stores top-level `icons` from MCP tools in
`ToolSpecification.metadata()` under `McpToolMetadataKeys.ICONS` as
`List<McpIcon>`;
- adds `McpIcon` and `McpIconTheme` for the MCP icon schema;
- exposes `_meta` via `metadata()` and top-level `icons` via `icons()`
on `McpResource`, `McpResourceTemplate`, and `McpPrompt`;
- keeps existing public constructors for resource/prompt/template models
for source compatibility;
- removes the metadata helper;
- adds focused parsing tests for present and absent metadata/icons.
## General checklist
- [X] There are no breaking changes (API, behaviour)
- [X] I have added unit and/or integration tests for my change
- [X] The tests cover both positive and negative cases
- [ ] I have manually run all the unit and integration tests in the
module I have added/changed, and they are all green
- [ ] I have manually run all the unit and integration tests in the
[core](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-core)
and
[main](https://github.com/langchain4j/langchain4j/tree/main/langchain4j)
modules, and they are all green
- [ ] I have added/updated the
[documentation](https://github.com/langchain4j/langchain4j/tree/main/docs/docs)
- [ ] I have added an example in the [examples
repo](https://github.com/langchain4j/langchain4j-examples) (only for
"big" features)
- [ ] I have added/updated [Spring Boot
starter(s)](https://github.com/langchain4j/langchain4j-spring) (if
applicable)
## Checklist for adding new maven module
- [ ] I have added my new module in the root `pom.xml` and
`langchain4j-bom/pom.xml`
## Checklist for adding new embedding store integration
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreIT` that extends
from either `EmbeddingStoreIT` or `EmbeddingStoreWithFilteringIT`
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreRemovalIT` that
extends from `EmbeddingStoreWithRemovalIT`
## Checklist for changing existing embedding store integration
- [ ] I have manually verified that the
`{NameOfIntegration}EmbeddingStore` works correctly with the data
persisted using the latest released version of LangChain4j
## Verification
- `mvn -pl langchain4j-mcp test -Dmaven.javadoc.skip=true -DskipITs
-Ddokka.skip=true`
- `mvn -pl langchain4j-mcp
-Dtest=McpMetadataParsingTest,ToolSpecificationHelperTest test
-Dmaven.javadoc.skip=true -DskipITs -Ddokka.skip=true`
- `mvn -pl langchain4j-mcp spotless:check -Dmaven.javadoc.skip=true
-DskipTests -DskipITs -Ddokka.skip=true`
- `git diff --check`