介绍模型上下文协议服务器项目
今天,我很高兴推出模型上下文协议(MCP)服务器项目。
模型上下文协议是最近一种以良好解耦的方式,使AI模型能够与您的应用程序和服务进行交互的方法。
据我所知,mcp-servers项目是第一个使用Java实现的一套MCP服务器,并且至少是Quarkus独有的。
旨在展示模型上下文协议的功能,并为您使用它(尤其是在Java中)提供灵感。
服务器
在撰写本文时,已实现三个服务器
- JDBC
-
让您的AI应用程序能够内省和交互任何JDBC兼容的数据库,无论是PostgreSQL、MySQL、MariaDB、SQLite、Oracle等。
- 文件系统
-
访问您计算机的文件系统,无论是您的主目录、代码目录、项目目录等。
- JavaFX
-
在JavaFX画布上绘图,让您的AI为您绘制一些艺术品!基于@konczdev的想法
每个服务器都使用Quarkus和Java实现,并且可以使用JBang轻松运行。用户无需安装Java、Quarkus或任何其他Java工具。
如何使用服务器
通用设置是安装JBang,最好使用包管理器,这样桌面应用程序更有可能在PATH中找到jbang
。
然后在您的MCP客户端中进行配置
jbang [server-name]@quarkiverse/quarkus-mcp-servers [arguments]
例如,要运行JDBC服务器连接到MariaDB数据库,您需要执行
jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:mariadb://:3306/test --user root --password mysecretpassword
或者使用可下载的Netflix电影SQLite数据库
jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:sqlite:%{https://github.com/lerocha/netflixdb/releases/download/v1.0.0/netflixdb.sqlite}
%{} 语法是JBang在命令行中从URL下载文件并将其用作本地文件的一项功能。 |
同样,有jbang jfx@quarkiverse/quarkus-mcp-servers
可以在JavaFX画布上绘图,以及jbang filesystem@quarkiverse/quarkus-mcp-servers [path]
用于访问文件系统。
已测试的MCP客户端
在开发过程中,我们使用以下客户端测试了这些服务器
还有更多MCP客户端,我们相信这些服务器也能与更多客户端配合使用。
Goose值得一提,因为它开源并且既有桌面应用程序(在MacOS上),也有CLI工具。它最近宣布了对模型上下文协议的全面支持。
在这里,我将Goose配置为使用Northwind示例数据库中的SQLLite数据库,该配置存储在~/.config/goose/config.yaml
中
extensions:
netflixdb:
args:
- jdbc@quarkiverse/quarkus-mcp-servers
- jdbc:sqlite:%{https://github.com/lerocha/netflixdb/releases/download/v1.0.0/netflixdb.sqlite}
cmd: jbang
enabled: true
envs: {}
name: netflixdb
type: stdio
注意:我们建议使用goose config
来生成/编辑配置文件。
通过上面的配置,Goose将能够使用JDBC服务器连接到SQLLite数据库。

Quarkus MCP服务器的独特功能
这一切都很棒,但为什么要在MCP服务器实现中使用Quarkus?
首先,Quarkus提供的编程模型非常强大,可以让你轻松地专注于应用程序的业务逻辑。有关如何实现服务器的详细信息,请参阅之前的博文,或者查看JDBC服务器的代码。注意它有多简洁!
其次,庞大的Java生态系统提供了JDBC驱动程序等功能,使我们能够创建一个与任何JDBC兼容数据库协同工作的单一服务器。我们使用jbang
动态下载正确的JDBC驱动程序,然后启动quarkus mcp服务器。类似地,对于jfx
,我们也获取正确的特定于OS的JavaFX依赖项。
第三,能够将服务器作为本地可执行文件运行。在MCP服务器项目中,filesystem
服务器已作为本地可执行文件发布,您可以下载它并获得更快的启动时间。
关于如何使用Quarkus开发模式与MCP服务器以及进行测试,还有许多有趣的事情即将到来——但这将在另一篇博文中介绍。
JBang是必需的还是不?
JBang通常不是运行MCP服务器所必需的,但它大大简化了操作,并使得任何人,特别是非Java开发人员,都能够使用这些服务器。
当然,您可以像运行普通Java应用程序一样运行一个简单的MCP服务器,但那样您需要安装正确版本的Java,下载服务器及其依赖项,然后像java -jar [path to server jar]
一样运行它。
对于MCP服务器项目,我们选择使用JBang,因为它超越了常规用法,并利用JBang动态获取驱动程序和特定于OS的依赖项。没有JBang,这将非常困难,甚至不可能使其易于使用。
天空才是极限!
模型上下文协议为使用您喜爱的编程语言和框架,通过您的应用程序数据构建智能应用程序开辟了令人兴奋的可能性。借助Quarkus MCP服务器,您拥有一个强大的基础,可以创建自己的Java服务器,将AI与您能想象到的任何数据源或系统连接起来。
无论您是想连接到您喜欢的数据库、与您公司的内部系统集成,还是构建全新的东西——天空确实是您的极限!使用Quarkus实现MCP服务器的简单性意味着您可以专注于创意方面,而不是繁琐的设置。
我们很想看到您的作品!请发表评论,或考虑通过Quarkiverse MCP服务器项目将您的MCP服务器贡献给社区。您的实现可以帮助他人解决类似问题,或激发他们创造更美好的事物。
那么,您还在等什么?获取代码,启动您的IDE,今天就开始构建您自己的MCP服务器吧。AI驱动的应用程序的未来就在这里,您可以成为塑造它的参与者!
玩得开心!
附注:下周四,2月6日,我们将举办一个MCP服务器洞察活动,届时我们将讨论Quarkus项目中的MCP服务器和客户端SDK,以及如何使用它来构建您自己的MCP服务器并扩展您融入AI的应用程序。