Token导航 LogoToken导航TokenDH.com
Quarkus MCP Server Example logo
AI代理未说明官方级别未说明来源级核验

Quarkus MCP Server Example

MCP Server

一个使用Quarkus构建的MCP服务器示例,通过REST API操作作为AI工具,使大型语言模型能够通过自然语言与应用程序数据交互。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
API集成JavaClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

anmiralles

提供方

anmiralles

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Quarkus MCP服务器示例

一个全面的例子,演示如何构建 模型上下文协议(MCP)服务器 使用 夸库斯 将REST API操作公开为AI工具。这使得像Claude这样的大型语言模型能够通过自然语言使用 Goose命令行界面.

🎯 此示例演示了什么

该项目展示了三种强大技术的集成:

  • 夸库斯:用于构建现代应用程序的超音速亚原子Java框架
  • MCP(模型上下文协议):将人工智能助手连接到数据源和工具的开放标准
  • Goose命令行界面:AI驱动的开发助手,可以与MCP服务器交互

📋 目录

🔗 什么是MCP?

模型上下文协议(MCP) 是一个开放标准,使人工智能助手能够安全地连接到各种数据源和工具并与之交互。MCP提供了一种通用协议,用于:

  • 工具发现:AI助手可以发现可用的工具
  • 工具执行:在外部系统上安全执行操作
  • 数据访问:从各种来源检索和操作数据
  • 标准化:一种实现方式适用于任何兼容MCP的AI助手

MCP优势

  • 互操作性:可与任何兼容MCP的AI助手配合使用
  • 安全:对外部资源的受控访问
  • 可扩展性:易于添加新工具和功能
  • 标准化:无需为每个AI助手定制集成

⚡ Quarkus是什么?

夸库斯 是一个专为现代应用程序开发而设计的Kubernetes原生Java框架:

  • 快速启动:亚秒级启动时间
  • 内存使用率低:针对容器化环境进行了优化
  • 开发者喜悦:实时重新加载、统一配置和出色的工具
  • 云原生:为Kubernetes、无服务器和微服务构建
  • 基于标准:使用熟悉的Java标准(JAX-RS、CDI、JPA)

MCP的Quarkus

Quarkus是MCP服务器的理想选择,因为:

  • 迅速发展:快速反馈循环,实时重新加载
  • 轻量级:工具服务器的资源使用率最低
  • 本地编译:使用GraalVM超快速启动
  • 丰富的生态系统:数据库、REST客户端等的广泛扩展。

🦆 鹅是什么?

是一个基于人工智能的开发助手CLI,通过以下方式帮助开发人员:

  • 自然语言接口:使用简单的英语与您的开发环境进行交互
  • MCP集成:连接到MCP服务器以访问外部工具和数据
  • 情境感知:了解你的项目结构和代码库
  • 工具执行:可以执行命令、修改文件和与API交互
  • 多模型支持:与各种法学硕士合作,包括Claude、GPT等。

带MCP的鹅

当与MCP服务器结合使用时,Goose可以:

  • 通过自然语言查询数据库
  • 无需手动curl命令即可与REST API交互
  • 通过组合多种工具执行复杂的操作
  • 根据您的应用程序数据提供智能见解

🏗️ 解决方案架构

┌─────────────────────────────────────────────────────────────────────────────┐
│                           MCP Integration Flow                               │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌─────────────┐    MCP Protocol     ┌─────────────────┐    REST API    ┌──────────────┐
    │             │   (JSON-RPC over    │                 │   (HTTP/JSON)  │              │
    │    Goose    │◄───────────────────►│   Quarkus MCP   │◄──────────────►│   Quarkus    │
    │     CLI     │     STDIO/SSE)      │     Server      │                │ Applications │
    │             │                     │                 │                │      MS      │
    └─────────────┘                     └─────────────────┘                └──────────────┘
           │                                      │                               │
           │                                      │                               │
    ┌──────▼──────┐                        ┌─────▼─────┐                 ┌───────▼───────┐
    │             │                        │           │                 │               │
    │   Claude    │                        │ MCP Tools │                 │  PostgreSQL   │
    │     LLM     │                        │           │                 │   Database    │
    │             │                        │ • list    │                 │               │
    └─────────────┘                        │ • get     │                 └───────────────┘
                                           │ • filter  │
                                           │ • add     │
                                           └───────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│                              Data Flow                                      │
└─────────────────────────────────────────────────────────────────────────────┘

1. User asks Goose: "Show me all applications from Spain"
                    ↓
2. Goose sends MCP request to discover available tools
                    ↓
3. MCP Server exposes tools: list_applications, get_applications_by_country, etc.
                    ↓
4. Goose calls get_applications_by_country("Spain") tool
                    ↓
5. MCP Server makes REST call to Applications MS
                    ↓
6. Applications MS queries PostgreSQL database
                    ↓
7. Results flow back through the chain to Goose
                    ↓
8. Goose presents results to user in natural language

组件责任

组件用途技术
Goose命令行界面AI助手界面、自然语言处理Go、LLM集成
Quarkus MCP服务器协议桥、工具定义Quarkus、MCP协议
Quarkus应用程序MS业务逻辑、数据操作Quarkus、JAX-RS、Hibernate
PostgreSQL数据持久性关系数据库

先决条件

在运行此示例之前,请确保已安装以下内容:

  • Java 21:Quarkus应用程序需要
  • 梅文:Java项目的构建工具
  • 波德曼/Docker:PostgreSQL数据库的容器运行时
  • Goose命令行界面:AI辅助工具(安装指南)

安装Goose

# Using Go (requires Go 1.21+)
go install github.com/square/goose@latest

# Or download binary from releases
# https://github.com/square/goose/releases

🚀 运行示例

第一步:构建项目

mvn clean package

步骤2:启动PostgreSQL数据库

podman run -d --name db-server \
  -e POSTGRES_USER=test \
  -e POSTGRES_PASSWORD=test \
  -e POSTGRES_DB=applications \
  -p 5432:5432 \
  postgres:16

步骤3:启动应用程序微服务

cd quarkus-applications-ms && mvn quarkus:dev

应用程序服务将于启动 http://localhost:8080

步骤4:(可选)添加示例数据

curl -i -X POST \
  -F "name=Angel" \
  -F "surname=Miralles" \
  -F "personalId=12345R" \
  -F "country=Spain" \
  http://localhost:8080/application.html

curl -i -X POST \
  -F "name=Juan" \
  -F "surname=Garcia" \
  -F "personalId=31234R" \
  -F "country=Spain" \
  http://localhost:8080/application.html
  
curl -i -X POST \
  -F "name=Pedro" \
  -F "surname=Rodriguez" \
  -F "personalId=54321R" \
  -F "country=Germany" \
  http://localhost:8080/application.html

步骤5:使用MCP服务器启动Goose

goose session --with-extension="java -jar quarkus-mcp-server/target/quarkus-mcp-server-1.0.0-SNAPSHOT.jar"

💡 使用示例

一旦Goose与MCP服务器一起运行,您就可以使用自然语言与应用程序数据进行交互:

基本查询

> Show me all applications in the system
> List applications from Spain
> Get application with ID 1

过滤查询

> Show me all applications from France with COMPLETED status
> List all STARTED applications
> Find applications from Germany

数据管理

> Add a new application for John Doe from USA with ID 67890
> Create an application for Maria Garcia from Mexico

可用的MCP工具

MCP服务器向Goose公开这些工具:

工具名称描述参数
list_applications列出所有应用程序
get_application_by_id获取特定应用id: Long
get_applications_by_country按国家筛选countryName: String
get_applications_by_country_and_status按国家和状态筛选countryName: String, status: ApplicationStatus
add_application创建新应用程序application: Application

应用程序状态值

  • STARTED
  • PREPROCESSED
  • PROCESSED
  • COMPLETED
  • CANCELED
  • ERROR

🔧 发展

开发模式

# Start applications service in dev mode (hot reload)
cd quarkus-applications-ms && mvn quarkus:dev

# Package MCP server for testing
cd quarkus-mcp-server && mvn package

项目结构

quarkus-mcp-server-example/
├── quarkus-applications-ms/           # REST API microservice
│   ├── src/main/java/me/amiralles/applications/
│   │   ├── boundary/ApplicationsResource.java    # REST endpoints
│   │   ├── entity/Application.java               # JPA entity
│   │   └── control/ApplicationExceptionMapper.java
│   └── src/main/resources/application.properties
├── quarkus-mcp-server/                # MCP server
│   ├── src/main/java/me/amiralles/mcp/
│   │   ├── McpApplicationsServer.java            # MCP tools definition
│   │   ├── client/ApplicationsClient.java        # REST client
│   │   └── model/Application.java                # Data models
│   └── src/test/java/
└── deployment/docker-compose/         # Monitoring stack

🔗 参考文献

📄 许可证

本项目作为教育目的的示例提供。

目录标签

目录标签

API集成JavaClaudeQuarkus本地部署MCP协议GooseCLIAI工具RESTAPI

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP