article
README
🚀 jOOQ MCP 服务器
jOOQ MCP 服务器是一个基于模型上下文协议(MCP)的服务器,它为 AI 模型提供了访问 jOOQ 文档的途径。这个 Spring Boot 应用程序借助 Spring AI 将 jOOQ 文档作为 MCP 工具公开,使 AI 系统能够查询和获取有关 jOOQ 特性、SQL 示例和最佳实践的信息。
🚀 快速开始
前提条件
- Java 21 或更高版本
- Maven 3.6 或更高版本
运行应用程序
- 克隆仓库:
git clone <repository-url>
cd jooq-mcp
- 构建项目:
./mvnw clean install
- 运行应用程序:
./mvnw spring-boot:run
MCP 服务器将启动并可供 MCP 客户端连接。
Docker 部署
- 构建 JAR 文件:
./mvnw clean package
- 构建 Docker 镜像:
docker build -t jooq-mcp .
- 运行 Docker 容器:
docker run -p 8080:8080 jooq-mcp
Fly.io 部署
此应用程序已配置为可在 Fly.io 上部署:
- 安装 Fly CLI 并进行身份验证:
brew install flyctl # 或使用你偏好的安装方法
fly auth login
- 部署应用程序:
./mvnw clean package
fly deploy
该应用程序在 /actuator/health 处包含健康检查,并配置了自动扩展功能。
与 MCP 客户端配合使用
此服务器可与任何兼容 MCP 的 AI 客户端配合使用。服务器公开的工具允许 AI 模型:
- 通过关键字搜索 jOOQ 文档
- 获取特定的 SQL 示例和代码片段
- 访问特定数据库的配置信息
- 获取代码生成设置的指导
- 查找有关 jOOQ 高级特性的信息
配置
可通过 application.properties 对应用程序进行配置:
# MCP 服务器配置
spring.ai.mcp.server.name=jooq-documentation-mcp
spring.ai.mcp.server.version=1.0.0
spring.ai.mcp.server.type=SYNC
spring.ai.mcp.server.capabilities.tool=true
# 缓存配置
spring.cache.type=caffeine
spring.cache.caffeine.spec=maximumSize=100,expireAfterWrite=1h
# jOOQ 文档爬虫配置
jooq.documentation.crawler.max-depth=4
jooq.documentation.crawler.max-urls-per-section=100
jooq.documentation.crawler.timeout-ms=10000
jooq.documentation.crawler.cache-duration-hours=24
# 服务器配置 - SSE 缓冲区设置
server.tomcat.max-http-response-header-size=64KB
server.tomcat.max-swallow-size=10MB
使用示例
连接到 MCP 客户端后,你可以提出以下问题:
- “如何在 jOOQ 中创建 SELECT 语句?”
- “展示 jOOQ INSERT 操作的示例”
- “jOOQ 支持哪些数据库?”
- “如何配置 jOOQ 代码生成?”
- “如何在 jOOQ 中使用事务?” 服务器将获取相关文档并提供带有代码示例的详细答案。
✨ 主要特性
MCP 服务器提供以下工具:
- searchDocumentation:搜索 jOOQ 文档中的特定主题
- getSqlExamples:获取特定操作的 SQL 查询构建示例
- getCodeGenerationGuide:检索 jOOQ 代码生成文档
- getDatabaseSupport:获取特定数据库的支持信息
- getQueryDslReference:获取特定语句类型的 Query DSL 参考
- getAdvancedFeatures:访问 jOOQ 高级特性的文档
🔧 技术细节
架构
该应用程序由以下部分组成:
- JooqDocumentationService:主服务类,带有用于 MCP 集成的
@Tool注解方法 - LocalJooqDocumentationService:提供本地文档索引和基于 TF-IDF 评分的全文搜索
- InvertedIndex:实现具有相关性评分的高级全文搜索功能
- JooqDocumentationCrawler:爬取并获取 jOOQ 文档以进行本地存储
- JooqDocumentationFetcher:处理文档内容的解析和提取
- McpConfiguration:用于 MCP 工具注册的 Spring 配置
- 缓存:基于 Caffeine 的缓存以提高性能
关键特性
- 本地文档存储:文档本地存储在
src/main/resources/docs/中,以便更快地访问 - 全文搜索:使用 TF-IDF 评分进行高级搜索,以提高相关性
- 高效索引:内存中的倒排索引,用于快速文档检索
- 代码示例提取:自动提取和分类代码示例
🧪 测试
运行测试套件:
./mvnw test
💻 开发
该应用程序使用以下技术:
- Spring Boot 3.5.4
- 支持 MCP 服务器的 Spring AI 1.0.0
- 用于 HTML 解析的 JSoup
- 用于缓存的 Caffeine
若要添加新工具,请在
JooqDocumentationService类中创建带有@Tool注解的方法。
微信扫一扫