Class InMemorySyncToolRepository

java.lang.Object
org.springframework.ai.mcp.modern.InMemorySyncToolRepository
All Implemented Interfaces:
io.modelcontextprotocol.modern.server.feature.McpSyncToolRepository

public final class InMemorySyncToolRepository extends Object implements io.modelcontextprotocol.modern.server.feature.McpSyncToolRepository
A McpSyncToolRepository that keeps McpSyncTools in a sorted, concurrent map. Tools can be added and removed at runtime; each change is broadcast as notifications/tools/list_changed when a change broadcaster is configured. Listings are paged by name with an opaque key cursor when a page size is set.
Since:
2.1.0
Author:
Christian Tzolov
  • Method Details

    • builder

      public static InMemorySyncToolRepository.Builder builder()
    • add

      public void add(io.modelcontextprotocol.modern.server.feature.McpSyncTool tool)
      Adds a tool and notifies listening clients.
      Throws:
      IllegalArgumentException - if a tool with the same name exists
    • remove

      public boolean remove(String name)
      Removes a tool by name and notifies listening clients.
      Returns:
      whether a tool was removed
    • list

      public io.modelcontextprotocol.modern.server.feature.ToolsPage list(io.modelcontextprotocol.modern.server.McpRequestContext ctx, @Nullable String cursor)
      Specified by:
      list in interface io.modelcontextprotocol.modern.server.feature.McpSyncToolRepository
    • find

      public @Nullable io.modelcontextprotocol.modern.server.feature.McpSyncTool find(io.modelcontextprotocol.modern.server.McpRequestContext ctx, String name)
      Specified by:
      find in interface io.modelcontextprotocol.modern.server.feature.McpSyncToolRepository