
Mianshiya
STDIOAPI server for searching interview questions using MCP protocol
API server for searching interview questions using MCP protocol
面试鸭 的题目搜索API现已兼容MCP协议,是国内首家兼容MCP协议的面试刷题网站。关于MCP协议,详见MCP官方文档。
依赖MCP Java SDK
开发,任意支持MCP协议的智能体助手(如Claude
、Cursor
以及千帆AppBuilder
等)都可以快速接入。
以下会给更出详细的适配说明。
questionSearch
题目
[题目](链接)
使用面试鸭MCP Server主要通过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
通义千问的key可以直接去官网 去申请,模型我们用的是通义千问-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]")); }