jOOQ文档查询服务

一个基于Spring Boot的MCP服务器,为AI模型提供jOOQ文档查询功能,包括SQL示例、代码生成指南和数据库支持信息。

  • by martinellich
  • HTML
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 martinellich/jooq-mcp

使用说明

jOOQ MCP 服务器

一个模型上下文协议(MCP)服务器,为AI模型提供访问jOOQ文档的功能。这个Spring Boot应用程序利用Spring AI将jOOQ文档作为MCP工具暴露出来,使AI系统能够查询和检索有关jOOQ功能、SQL示例和最佳实践的信息。

特点/特性

MCP服务器提供以下工具:

  • 搜索文档在jOOQ文档中搜索特定主题
  • 获取SQL示例获取针对特定操作的SQL查询构建示例
  • 获取代码生成指南检索 jOOQ 代码生成文档
  • 获取数据库支持获取特定于数据库的支持信息
  • 获取QueryDSL引用获取特定语句类型的查询DSL参考
  • 获取高级功能访问高级 jOOQ 功能的文档

入门指南

先决条件

  • Java 21 或更高版本
  • Maven 3.6及以上版本

运行应用程序

  1. 克隆仓库:

    git clone <repository-url>
    cd jooq-mcp
    
  2. 构建项目:

    ./mvnw clean install
    
  3. 运行应用程序:

    ./mvnw spring-boot:run
    

MCP服务器将启动并可供MCP客户端连接。

Docker 部署

  1. 构建JAR文件:

    ./mvnw clean package
    
  2. 构建Docker镜像:

    docker build -t jooq-mcp .
    
  3. 运行Docker容器:

    docker run -p 8080:8080 jooq-mcp
    

Fly.io 部署

此应用程序已配置为在 Fly.io 上部署:

  1. 安装Fly CLI并进行身份验证:

    brew install flyctl  # or your preferred installation method
    fly auth login
    
  2. 部署应用程序:

    ./mvnw clean package
    fly deploy
    

该应用程序包含健康检查功能,用于 /actuator/health 并且配置了自动扩展功能。

与MCP客户端一起使用

这台服务器可以与任何兼容MCP的人工智能客户端一起使用。服务器提供了工具,使人工智能模型能够:

  • 按关键字搜索 jOOQ 文档
  • 检索特定的SQL示例和代码片段
  • 访问数据库特定的配置信息
  • 获取代码生成设置的指导
  • 查找有关高级 jOOQ 功能的信息

配置

该应用程序可以通过以下方式配置: application.properties:

# MCP Server Configuration
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

# Cache Configuration
spring.cache.type=caffeine
spring.cache.caffeine.spec=maximumSize=100,expireAfterWrite=1h

# jOOQ Documentation Crawler Configuration
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

# Server Configuration - SSE Buffer Settings
server.tomcat.max-http-response-header-size=64KB
server.tomcat.max-swallow-size=10MB

示例用法

当连接到MCP客户端时,您可以提出诸如以下问题:

  • “如何在 jOOQ 中创建 SELECT 语句?”
  • “给我举一些jOOQ INSERT操作的例子”
  • “jOOQ支持哪些数据库?”
  • “我如何配置 jOOQ 代码生成?”
  • “我如何在jOOQ中使用事务?”

服务器将获取相关文档,并提供包含代码示例的详细答案。

建筑学

该应用程序包括:

  • Jooq文档服务主要服务类,包含带有@Tool注解的方法以实现MCP集成
  • 本地Jooq文档服务提供本地文档索引和基于TF-IDF评分的全文搜索功能
  • 倒排索引实现了带有相关性评分的高级全文搜索功能
  • Jooq文档爬虫爬取并获取jOOQ文档以进行本地存储
  • Jooq文档获取器负责解析和提取文档内容
  • **McpConfiguration 翻译为中文是“MCP配置”**MCP工具注册的Spring配置
  • 缓存基于缓存的咖啡因技术以提升性能

主要特点

  • 本地文档存储文档本地存储在 src/main/resources/docs/ 以便更快访问
  • 全文搜索使用TF-IDF评分进行高级搜索,以提高相关性
  • 高效的索引内存中的倒排索引,用于快速文档检索
  • 代码示例提取代码示例的自动提取与分类

测试

运行测试套件:

./mvnw test

发展

该应用程序使用:

  • Spring Boot 3.5.4
  • 支持MCP服务器的Spring AI 1.0.0
  • 用于HTML解析的JSoup
  • 用于缓存的咖啡因(或:缓存加速的咖啡因,但此表达不常见,通常“caffeine”在此语境下可能指一种缓存系统或工具名,若直接翻译可能产生歧义,具体需根据上下文确定)

要添加新工具,请创建带有注解的方法 @Tool 在……中 JooqDocumentationService 班级。