How chaozai0304/mcp-spring-ai-mcp-client works
This Spring Boot app exposes chat endpoints that ask an OpenAI chat model to answer prompts, optionally invoking MCP-provided GitHub tools and locally defined task tools; the response is returned to the caller. The README describes tool selection, MCP execution, and a final model summary. A separate utility demonstrates direct stdio MCP tool listing and calls. The graph includes these documented capabilities, but the MCP server configuration and runtime wiring are not shown in the excerpts, so those links are documented rather than inferred from configuration.
Main entry points: ChatController.java Chat endpoints · McpClientRun.java Standalone MCP client · ChatClientConfig.java Task tool provider · TaskMcpCallServerServices.java Name-to-age tool
Components 13
Chat workflow
- Chat endpoints
src/main/java/com/aitools/mcp/controller/ChatController.java - OpenAI model
- In-memory chat history
src/main/java/com/aitools/mcp/controller/ChatController.java - Request/response logging
src/main/java/com/aitools/mcp/controller/ChatController.java
Tool providers
- MCP tool callbacks
- GitHub MCP server
- Task tool provider
src/main/java/com/aitools/mcp/config/ChatClientConfig.java - Name-to-age tool
src/main/java/com/aitools/mcp/service/TaskMcpCallServerServices.java
Direct MCP client
- Standalone MCP client
src/main/java/com/aitools/mcp/util/McpClientRun.java - GitHub stdio server
- Tool listing
src/main/java/com/aitools/mcp/util/McpClientRun.java - Directory/file calls
src/main/java/com/aitools/mcp/util/McpClientRun.java
Other components
- Chat user
Connections 14
- Chat user → Chat endpoints: submits prompt
src/main/java/com/aitools/mcp/controller/ChatController.java - Chat endpoints → OpenAI model: prompts model
src/main/java/com/aitools/mcp/controller/ChatController.java - OpenAI model → Chat endpoints: returns answer
src/main/java/com/aitools/mcp/controller/ChatController.java - Chat endpoints → MCP tool callbacks: registers tools
src/main/java/com/aitools/mcp/controller/ChatController.java - Chat endpoints → Task tool provider: registers tools
src/main/java/com/aitools/mcp/controller/ChatController.java - Task tool provider → Name-to-age tool: wraps tool methods
src/main/java/com/aitools/mcp/config/ChatClientConfig.java - Chat endpoints → In-memory chat history: adds advisor
src/main/java/com/aitools/mcp/controller/ChatController.java - Chat endpoints → Request/response logging: adds advisor
src/main/java/com/aitools/mcp/controller/ChatController.java - OpenAI model → MCP tool callbacks: selects MCP call
README.md - MCP tool callbacks → GitHub MCP server: calls tools
README.md - OpenAI model → GitHub MCP server: summarizes results
README.md - Standalone MCP client → GitHub stdio server: opens stdio transport
src/main/java/com/aitools/mcp/util/McpClientRun.java - Standalone MCP client → Tool listing: lists tools
src/main/java/com/aitools/mcp/util/McpClientRun.java - Standalone MCP client → Directory/file calls: calls tools
src/main/java/com/aitools/mcp/util/McpClientRun.java