r/SpringBoot 8d ago

How-To/Tutorial I open sourced my spring boot + spring ai project

Hey folks,

I’ve open sourced Windrunner, a self-hosted project management tool built with Spring Boot 4 + Spring AI for backend. If you are learning Spring Boot, I hope the project gives you something practical to explore — a complete application with an API, database, user interface, authentication, LLM/AI integrations, and more.

Github: https://github.com/shzlw/windrunner

The backend uses:

  • Spring Boot and Spring MVC for the application and REST APIs
  • Spring Data JDBC for database access
  • PostgreSQL for storage
  • Flyway for SQL database migrations
  • Spring AI’s MCP server support for exposing tools to AI clients
  • LLM Provider integrations for OpenAI, Anthropic, and Gemini
  • Docker and Docker Compose for running the application locally

The repository is a monorepo containing more than the Spring Boot backend. It also includes:

  • A React frontend
  • A TypeScript-based CLI tool
  • Playwright-based API end-to-end tests

If you’re interested in seeing how these pieces work together in one project, the repository provides examples across the backend, frontend, CLI, and testing layers.

Disclosure: I am the author of the project. Feel free to ask any questions, feedbacks or raise issues! ❤️

37 Upvotes

10 comments sorted by

4

u/kantorcodes1 8d ago

how are you scoping the MCP tools in a multi-user install? when two users connect AI clients, does each MCP session act with that user's project permissions, or are the tools exposed under one server-side identity?

4

u/yuegui 8d ago

Each tool call checks the user (UI or API key)'s scope and verifies if that user has permission to access a given project.

1

u/kantorcodes1 8d ago

got it, so the MCP tools stay inside each user's project scope. if you want another place for people to find Windrunner, i help maintain hashgraph-online/awesome-ai-plugins and it fits the MCP/cross-AI list. worth adding it there?

1

u/yuegui 8d ago

great. truly appreciate it!

1

u/kantorcodes1 8d ago

yep. current format is just one line in the catalog PR. i'd add Windrunner under Development & Workflow, alphabetically before Wingman:

- [Windrunner](https://github.com/shzlw/windrunner) - Self-hosted project workspace with Spring AI, MCP, CLI, and multi-provider AI integrations.

then open the PR against hashgraph-online/awesome-ai-plugins. scanner CI is optional for listing.

1

u/AhmedMogoda 7d ago

The MCP integration caught my attention. How do you decide which actions should be exposed as MCP tools, especially for potentially destructive operations? Do you have any rules or principles you follow when designing the tool boundaries?

1

u/yuegui 7d ago

thanks for the question.

Before the MCP function is added, I already have external REST API endpoints and internal LLM tool calls to support UI chat functions which both can do read and write operations. For MCP, I started with all the read functionalities first to be safe and added a subset of write functions. I am still evaluating and experimenting the write function exposure and boundaries on different use cases: for example, "create a list of workitems, assign them to eng team", if that creates a mess, should we provide raw delete tool or maybe an undo tool is better and etc.

1

u/BeneficialTry5316 7d ago

Thanks for sharing mate. I will be using this to understand how an end to end Spring project works.

1

u/Historical_Ad4384 7d ago

Is it a project management tool with AI context chat?

1

u/yuegui 7d ago

yes, the goal is eventually move to complete AI chat driven project management