Skip to content

Commit fec979f

Browse files
committed
fix: start
1 parent 561ad7e commit fec979f

File tree

6 files changed

+26
-18
lines changed

6 files changed

+26
-18
lines changed

mcp-server/src/main/java/ch/xxx/mcpserver/McpServerApplication.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
import org.springframework.boot.SpringApplication;
1818
import org.springframework.boot.autoconfigure.SpringBootApplication;
1919
import org.springframework.context.annotation.Bean;
20+
import org.springframework.web.client.RestClient;
2021

2122
import ch.xxx.mcpserver.config.FunctionConfig;
2223

2324
@SpringBootApplication
2425
public class McpServerApplication {
26+
2527
public static void main(String[] args) {
2628
SpringApplication.run(McpServerApplication.class, args);
2729
}
@@ -30,4 +32,9 @@ public static void main(String[] args) {
3032
public ToolCallbackProvider myTools(FunctionConfig functionConfig) {
3133
return MethodToolCallbackProvider.builder().toolObjects(functionConfig).build();
3234
}
35+
36+
@Bean
37+
public RestClient createRestClient() {
38+
return RestClient.builder().build();
39+
}
3340
}

mcp-server/src/main/java/ch/xxx/mcpserver/client/OpenLibraryRestClient.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,16 @@ public class OpenLibraryRestClient implements OpenLibraryClient {
3232
private static final Logger LOGGER = LoggerFactory.getLogger(OpenLibraryRestClient.class);
3333
private final String baseUrl = "https://openlibrary.org/search.json";
3434
private final RestClient restClient;
35+
3536
@Value("${openlibrary.result-size:5}")
3637
private int resultLimit;
37-
38+
3839
public OpenLibraryRestClient(RestClient restClient) {
3940
this.restClient = restClient;
4041
}
41-
42+
4243
@Override
43-
public Response apply(Request request) {
44+
public OpenLibraryClient.Response loadBooks(OpenLibraryClient.Request request) {
4445
var authorOpt = this.createParamOpt(request.author(), "author");
4546
var titleOpt = this.createParamOpt(request.title(), "title");
4647
var subjectOpt = this.createParamOpt(request.subject(), "subject");

mcp-server/src/main/java/ch/xxx/mcpserver/client/TmdbRestClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ public TmdbRestClient(RestClient restClient) {
3939
//@EventListener
4040
public void onApplicationEvent(ApplicationReadyEvent event) {
4141
var request = new Request("Alien");
42-
var response = this.apply(request);
42+
var response = this.loadMovies(request);
4343
LOG.info("TMDB Response: {}", toJson(response));
4444
}
4545

4646
@Override
47-
public Response apply(Request request) {
47+
public Response loadMovies(Request request) {
4848
var url = BASE_URL + "search/movie?query=" + request.query();
4949
var response = restClient.get()
5050
.uri(url)

mcp-server/src/main/java/ch/xxx/mcpserver/client/external/OpenLibraryClient.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
package ch.xxx.mcpserver.client.external;
1414

1515
import java.util.List;
16-
import java.util.function.Function;
1716

1817
import org.springframework.ai.tool.annotation.ToolParam;
1918

@@ -24,7 +23,9 @@
2423
import com.fasterxml.jackson.annotation.JsonProperty;
2524
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
2625

27-
public interface OpenLibraryClient extends Function<OpenLibraryClient.Request, OpenLibraryClient.Response> {
26+
public interface OpenLibraryClient {
27+
Response loadBooks(Request request);
28+
2829
@JsonIgnoreProperties(ignoreUnknown = true)
2930
record Book(@JsonProperty(value = "author_name", required = false) List<String> authorName,
3031
@JsonProperty(value = "language", required = false) List<String> languages,

mcp-server/src/main/java/ch/xxx/mcpserver/client/external/TmdbClient.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@
1313
package ch.xxx.mcpserver.client.external;
1414

1515
import java.util.Map;
16-
import java.util.function.Function;
1716

1817
import org.springframework.ai.tool.annotation.ToolParam;
1918

2019
/**
2120
*
2221
* @author sven
2322
*/
24-
public interface TmdbClient extends Function<TmdbClient.Request, TmdbClient.Response> {
23+
public interface TmdbClient {
2524
public static final Map<Integer, String> GENRE_MAP = Map.ofEntries(
2625
Map.entry(28, "Action"),
2726
Map.entry(12, "Adventure"),
@@ -44,6 +43,8 @@ public interface TmdbClient extends Function<TmdbClient.Request, TmdbClient.Resp
4443
Map.entry(37, "Western")
4544
);
4645

46+
Response loadMovies(Request request);
47+
4748
record Request(@ToolParam(description = "The movie title") String query) {
4849
}
4950

mcp-server/src/main/java/ch/xxx/mcpserver/config/FunctionConfig.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,34 @@
1515
*/
1616
package ch.xxx.mcpserver.config;
1717

18-
import java.util.function.Function;
19-
2018
import org.springframework.ai.tool.annotation.Tool;
2119
import org.springframework.context.annotation.Bean;
2220
import org.springframework.context.annotation.Configuration;
2321

24-
import ch.xxx.mcpserver.client.external.OpenLibraryClient;
22+
import ch.xxx.mcpserver.client.OpenLibraryRestClient;
2523
import ch.xxx.mcpserver.client.external.TmdbClient;
2624

2725
@Configuration
2826
public class FunctionConfig {
29-
private final OpenLibraryClient openLibraryClient;
27+
private final OpenLibraryRestClient openLibraryClient;
3028
private final TmdbClient tmdbClient;
3129
public static final String OPEN_LIBRARY_CLIENT = "openLibraryClient";
3230
public static final String THE_MOVIE_DATABASE_CLIENT = "theMovieDatabaseClient";
3331

34-
public FunctionConfig(OpenLibraryClient openLibraryClient, TmdbClient tmdbClient) {
32+
public FunctionConfig(OpenLibraryRestClient openLibraryClient, TmdbClient tmdbClient) {
3533
this.openLibraryClient = openLibraryClient;
3634
this.tmdbClient = tmdbClient;
3735
}
3836

3937
@Bean(OPEN_LIBRARY_CLIENT)
4038
@Tool(description = "Search for books by author, title or subject.")
41-
public Function<OpenLibraryClient.Request, OpenLibraryClient.Response> openLibraryClient() {
42-
return this.openLibraryClient::apply;
39+
public OpenLibraryRestClient.Response openLibraryClient(OpenLibraryRestClient.Request request) {
40+
return this.openLibraryClient.loadBooks(request);
4341
}
4442

4543
@Bean(THE_MOVIE_DATABASE_CLIENT)
4644
@Tool(description = "Search for movies by title.")
47-
public Function<TmdbClient.Request, TmdbClient.Response> theMovieDatabaseClient() {
48-
return this.tmdbClient::apply;
45+
public TmdbClient.Response theMovieDatabaseClient(TmdbClient.Request request) {
46+
return this.tmdbClient.loadMovies(request);
4947
}
5048
}

0 commit comments

Comments
 (0)