模型上下文协议服务器

一个基于Spring Boot的HTTP MCP服务器,提供JSON-RPC接口、Jira工具集成、OAuth2安全认证及Atlassian令牌代理功能。

  • by isaacpeel
  • Java
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 isaacpeel/solesonic-mcp-server

使用说明

Solesonic MCP服务器

由Spring AI驱动的Spring Boot HTTP MCP(模型上下文协议)服务器。作为OAuth2资源服务器(JWT)进行安全保护,具有基于组和范围的授权、内置Jira工具和外部Atlassian令牌代理集成。

特性

  • HTTP MCP端点——基于HTTP的JSON-RPC POST /mcp
  • 内置Jira工具——创建、获取和删除问题;引导式敏捷董事会工作流程
  • 日期和时间工具——当前日期、时间和带可选时区的组合日期时间
  • 演示实用工具-- weather_lookup 举个简单的例子
  • OAuth2资源服务器(JWT)——JWT验证;向当局反映的团体索赔
  • MCP授权和动态客户端注册——请参阅 授权
  • 组和角色授权-- groups → GROUP_<name> roles → ROLE_<role>
  • Atlassian令牌代理——短期Atlassian访问令牌的客户端凭据集成
  • 生产SSL就绪——PKCS12密钥库通过 ssl 轮廓;TLS 1.2/1.3
  • 网络搜索工具——通过Tavily进行通用、高级和新闻搜索;内容提取
  • MCP提示——用于结构化工作流和代理指导的服务器公开提示
  • 启发式提示——结构化用户输入和问题细化的指导性工作流程

快速开始

先决条件

  • Java 25+
  • Maven 3.9+
  • Docker(可选,用于类似生产的运行)

1) 配置环境

注意:操作系统环境变量优先于 .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-issuer

# 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
JIRA_CLOUD_ID_PATH=/path/to/your/cloud-id

注意:操作系统环境变量优先于 .env.

2) 构建和运行(本地)

# Build
./mvnw clean verify

# Run (default profiles)
./mvnw spring-boot:run
  • 基本URL:https://localhost:9443(当 ssl 配置文件处于活动状态);否则http://localhost:9443
  • MCP端点:POST/MCP

提示:要在本地启用HTTPS,请使用配置文件运行 prod,ssl: ./mvnw spring boot:run-Dspring boot.run.profile=prod,ssl

JDK 25的JVM选项+

在JDK 25+上,Netty需要本机访问才能获得最佳性能。要抑制有关受限方法调用的警告,请添加以下JVM选项:

--enable-native-access=ALL-UNNAMED

Maven测试: 已在中配置 pom.xml 通过 maven-surefire-plugin.

IntelliJ理念: 添加到您的跑步配置中 VM options:

  • 运行>编辑配置>选择配置>修改选项>添加VM选项
  • 添加: --enable-native-access=ALL-UNNAMED

命令行(spring boot:run):

./mvnw spring-boot:run -Dspring-boot.run.jvmArguments="--enable-native-access=ALL-UNNAMED"

JAR执行:

java --enable-native-access=ALL-UNNAMED -jar target/solesonic-mcp-server-1.2.0.jar

3) 验证设置

发送MCP初始化请求(替换占位符):

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"}}
  }'

有关更丰富的客户体验,请参阅 客户 以MCP Inspector和Claude Desktop为例。

MCP服务器和令牌代理

  • 服务器通过MCP协议公开工具。使用JWT作用域和/或组权限授权工具调用。
  • Jira工具是一流的功能。他们依靠外部Atlassian令牌代理从安全存储的刷新令牌中铸造短期访问令牌。

请参阅:

文档


准备好使用MCP构建了吗?跳进 快速入门.