isaacpeel/solesonic-mcp-server
If you are the rightful owner of solesonic-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Solesonic MCP Server is a Spring Boot application that provides an HTTP Model Context Protocol (MCP) server using Spring AI, designed to facilitate secure and efficient communication between clients and the server.
Solesonic MCP Server
A Spring Boot HTTP MCP (Model Context Protocol) server powered by Spring AI. Secured as an OAuth2 Resource Server (JWT) with group- and scope-based authorization, built-in Jira tooling, and an external Atlassian Token Broker integration.
Temporary note: Dynamic Client Registration (DCR) implementation plan is tracked here: . This is a working document and may change or be relocated once finalized.
Features
- π HTTP MCP Endpoint β JSON-RPC over HTTP at
POST /mcp
- π§° Builtβin Jira tools β create issues, assign, and look up assignees; note: includes a simple example tool
weather_lookup
- π OAuth2 Resource Server (JWT) β JWT validation; group claims mapped to authorities
- π₯ Group & Scope AuthZ β
cognito:groups
βGROUP_<name>
authorities; scopes βSCOPE_<scope>
- β‘ Atlassian Token Broker β Client-credentials integration for short-lived Atlassian access tokens
- π‘οΈ Production SSL Ready β PKCS12 keystore via
ssl
profile; TLS 1.2/1.3
Quick Start
Prerequisites
- Java 24+
- Maven 3.9+
- Docker (optional, for production-like run)
1) Configure Environment
Note: OS environment variables take precedence over
.env
.
# JWT verification (use one of the following depending on your IdP)
JWK_SET_URI=https://your-issuer/.well-known/jwks.json
# or
ISSUER_URI=https://your-domain.auth.your-region.amazoncognito.com
# Jira tooling
JIRA_URL_TEMPLATE=https://your-domain.atlassian.net/browse/{key}
ATLASSIAN_TOKEN_BROKER_URL=https://your-token-broker.example.com/broker/atlassian/token
ATLASSIAN_TOKEN_BROKER_ISSUER_URI=https://your-authz-server/oauth2/token
ATLASSIAN_TOKEN_BROKER_CLIENT_ID=your-client-id
ATLASSIAN_TOKEN_BROKER_CLIENT_SECRET=your-client-secret
ATLASSIAN_TOKEN_BROKER_SCOPES=your.scope.here
JIRA_CLOUD_ID_PATH=/path/to/your/cloud-id
Note: OS environment variables take precedence over
.env
.
2) Build and Run (Local)
# Build
./mvnw clean verify
# Run (default profiles)
./mvnw spring-boot:run
- Base URL: https://localhost:9443 (when the
ssl
profile is active); otherwise http://localhost:9443 - MCP endpoint: POST /mcp
Tip: To enable HTTPS locally, run with profiles
prod,ssl
: ./mvnw spring-boot:run -Dspring-boot.run.profiles=prod,ssl
3) Verify Setup
Send an MCP initialize request (replace placeholders):
curl -k \
-H "Authorization: Bearer <YOUR_JWT_ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-X POST https://localhost:9443/mcp \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "initialize",
"params": {"protocolVersion": "2024-11-05", "client": {"name": "curl", "version": "1.0"}}
}'
For a richer client experience, see for MCP Inspector and Claude Desktop examples.
MCP Server & Token Broker
- The server exposes tools via the MCP protocol. Tool invocation is authorized using JWT scopes and/or group authorities.
- Jira tools are first-class features. They rely on an external Atlassian Token Broker to mint short-lived access tokens from securely stored refresh tokens.
See:
Documentation
- Start here:
- Deep dives: , , , , ,
Ready to build with MCP? Jump into the .