Interview Duck 问题搜索 API 现在支持 MCP 协议,使其成为中国首个兼容 MCP 协议的面试练习网站。关于 MCP 协议的详情,请参阅 MCP 官方文档文档---。
依赖MCP Java SDK进行开发,任何支持 MCP 协议的代理助手(如Claude---Cursor以及千帆AppBuilder等)都可以快速集成。
以下提供详细的适配指南。
questionSearch题目 进行翻译。[题目](链接)Interview Duck MCP 服务器主要通过Java SDK的形式使用
需要 Java 17 运行环境
git clone https://github.com/yuyuanweb/mcp-mianshiya-server
cd mcp-mianshiya-server
mvn clean package
打开Cherry Studio中的设置,点击MCP 服务器---。

点击编辑 JSON,在配置文件中添加以下配置。
{
"mcpServers": {
"mianshiyaServer": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-Dspring.main.web-application-type=none",
"-Dlogging.pattern.console=",
"-jar",
"/yourPath/mcp-server-0.0.1-SNAPSHOT.jar"
],
"env": {}
}
}
}




<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter</artifactId>
<version>1.0.0-M6.1</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
spring:
ai:
mcp:
client:
stdio:
# 指定 MCP 服务器配置文件
servers-configuration: classpath:/mcp-servers-config.json
mandatory-file-encoding: UTF-8
mcp-servers-config.json 的配置如下:
{
"mcpServers": {
"mianshiyaServer": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-Dspring.main.web-application-type=none",
"-Dlogging.pattern.console=",
"-jar",
"/Users/gulihua/Documents/mcp-server/target/mcp-server-0.0.1-SNAPSHOT.jar"
],
"env": {}
}
}
}
对于客户端,我们使用阿里巴巴的通义千问模型,因此引入了 spring-ai-alibaba-starter 依赖。如果您使用其他模型,也可以使用相应的依赖,例如 OpenAI 的spring-ai-openai-spring-boot-starter这个依赖就足够了。
配置大模型的密钥和其他信息:
spring:
ai:
dashscope:
api-key: ${通义千问的key}
chat:
options:
model: qwen-max
Qwen 的密钥可以直接从官方网站申请,我们使用的模型是 Qwen-Max。 3) 初始化聊天客户端
@Bean
public ChatClient initChatClient(ChatClient.Builder chatClientBuilder,
ToolCallbackProvider mcpTools) {
return chatClientBuilder
.defaultTools(mcpTools)
.build();
}
@PostMapping(value = "/ai/answer/sse", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> generateStreamAsString(@RequestBody AskRequest request) {
Flux<String> content = chatClient.prompt()
.user(request.getContent())
.stream()
.content();
return content
.concatWith(Flux.just("[complete]"));
}