# simple_mcp_server **Repository Path**: yishuai778/simple_mcp_server ## Basic Information - **Project Name**: simple_mcp_server - **Description**: 一个简单的可以运行在ide的mcp-server - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-01 - **Last Updated**: 2025-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Spring MCP Server 基于 Spring Boot + Spring AI 的 Model Context Protocol (MCP) 服务端示例,整合本地 Ollama 模型并额外暴露 REST 接口方便联调与调试。 ### 功能概览 - **MCP 服务能力**:通过 WebFlux SSE 与 `/mcp/message` JSON-RPC 端点向 MCP 客户端暴露工具、资源、提示、补全能力。 - **内置工具**: - `ping`:简单健康检查,返回 `pong`。 - `llmGenerate`:调用本地 Ollama 模型生成文本内容。 - **REST 调试接口**:在 MCP Inspector 不便时,可直接通过 HTTP 访问工具。 ### 运行前置条件 - JDK 17+ - Maven 3.9+(仓库已提供 `./mvnw`) - 已安装并启动 Ollama,默认监听 `http://localhost:11434`,且已拉取 `llama3.2:3b`(或修改 `application.yml` 中的模型配置) ### 快速启动 ```bash # 1. 启动 Ollama(确保 11434 端口可访问) ollama serve # 2. 运行 Spring Boot 应用 ./mvnw spring-boot:run ``` 启动完成后服务监听在 `http://localhost:8080`。 ### 端口与 API - **端口**:仅开放 `8080` - **MCP 相关端点** - `GET /sse`:SSE 流式连接(deprecated 提示属于上下游信息,可忽略) - `POST /mcp/message`:JSON-RPC 消息入口 - **REST 调试端点(JSON)** - `GET /api/tools`:列出可用工具及描述 - `GET /api/tools/ping`:调用 `ping` 工具 - `POST /api/tools/llmGenerate`:调用 `llmGenerate` 工具 请求体示例:`{"instruction":"自我介绍","input":""}` ### 验证示例 ```bash # SSE 连接 curl -N 'http://localhost:8080/sse?sessionId=test' # 触发 ping 工具 curl -X POST 'http://localhost:8080/mcp/message?sessionId=test' \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":"ping-1","method":"tools/call","params":{"name":"ping","arguments":{}}}' # REST 调试 llmGenerate curl -X POST 'http://localhost:8080/api/tools/llmGenerate' \ -H 'Content-Type: application/json' \ -d '{"instruction":"自我介绍","input":""}' ``` ### 构建与打包 ```bash ./mvnw clean package -DskipTests ``` 成功后在 `target/` 目录下生成 `spring_mcp_server-0.0.1-SNAPSHOT.jar`,可通过 `java -jar` 直接运行: ```bash java -jar target/spring_mcp_server-0.0.1-SNAPSHOT.jar ``` ### 容器化(可选) 制作镜像时,可采用以下多阶段 Dockerfile: ```dockerfile FROM maven:3.9.9-eclipse-temurin-17 AS build WORKDIR /app COPY . . RUN mvn -B clean package -DskipTests FROM eclipse-temurin:17-jre-jammy WORKDIR /app COPY --from=build /app/target/spring_mcp_server-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","/app/app.jar"] ``` 容器运行时需保证能访问到 Ollama,例如: ```bash docker run -d --name spring-mcp \ -p 8080:8080 \ -e SPRING_AI_OLLAMA_BASE-URL=http://host.docker.internal:11434 \ spring-mcp-server ``` ### MCP 客户端联调 - 使用官方 CLI 客户端: ```bash npm install -g @modelcontextprotocol/cli mcp-client --server http://localhost:8080 --transport sse ``` - 或使用 MCP Inspector,配置: - Base URL:`http://localhost:8080` - SSE Endpoint:`/sse` - Message Endpoint:`/mcp/message`