模型上下文协议(MCP)是一种开放标准,旨在促进大型语言模型(LLM)工具的集成,它在Java生态系统中正日益普及,Quarkus、Spring AI等框架纷纷采纳。现在,开发人员可以借助JBang等工具,更轻松地运行MCP服务器。
模型上下文协议的兴起
2024年底,Anthropic推出了模型上下文协议(MCP),这是一种开放标准,旨在让应用程序能够向大型语言模型(LLM)提供上下文信息。这一举措标志着LLM应用开发进入了一个新的阶段,开发者不再需要依赖封闭的API,而是可以通过标准化的方式与各种LLM进行交互。OpenAI和Google等公司已经宣布支持该协议,这无疑为MCP的普及奠定了坚实的基础。最近,GitHub也宣布为VS Code用户提供MCP服务器支持,进一步提升了开发者在集成LLM时的便利性。
MCP为开发人员提供了一种独特的能力,即以工具的形式公开功能,这些工具可以与大型语言模型(LLM)集成。这种能力极大地扩展了LLM的应用场景,开发者可以将各种自定义的功能模块封装成MCP服务器,然后通过标准化的接口与LLM进行交互。例如,一个开发者可以创建一个MCP服务器,用于提供特定领域的知识库查询功能,然后将该服务器集成到LLM驱动的聊天机器人中,从而提高聊天机器人在该领域内的专业性。
MCP服务器可以通过标准输入和服务器发送事件(SSE)进行通信。这种通信方式具有简单、高效的特点,能够满足LLM应用对实时性和稳定性的要求。标准输入用于向MCP服务器发送请求,而SSE则用于从MCP服务器接收响应。这种基于事件的通信方式也使得MCP服务器能够异步地处理请求,从而提高系统的并发能力。
MCP的出现,使得LLM的应用开发变得更加模块化、灵活和可扩展。开发者可以专注于构建自己的特定功能模块,而无需关心底层LLM的复杂性。同时,MCP也促进了LLM生态系统的发展,越来越多的工具和服务将会以MCP服务器的形式出现,从而丰富LLM的应用场景。
MCP Java项目与JBang的集成
MCP Java项目拥有一个JBang目录,用于管理MCP服务器。JBang是一个强大的Java脚本工具,它允许开发者以脚本的方式运行Java代码,而无需编写传统的Java项目结构。通过JBang,开发者可以快速地创建、测试和部署MCP服务器,从而大大提高了开发效率。
JBang还与UV和NPM建立了绑定,这在Java领域并不常见。UV是一个高性能的Python包管理器,而NPM则是Node.js的包管理器。JBang与UV和NPM的绑定,使得开发者可以在Java项目中方便地使用Python和Node.js的库和工具。这种跨语言的集成,为开发者提供了更多的选择和灵活性。
然而,对于开发人员来说,在项目中混合使用多种语言是有意义的。在现代软件开发中,跨语言的集成已经成为一种趋势。不同的语言和技术具有不同的优势,将它们结合起来可以更好地解决复杂的问题。例如,Java擅长于构建大型的企业级应用,而Python则擅长于数据分析和机器学习。通过将Java和Python结合起来,开发者可以构建更加强大的LLM应用。
JBang对UV和NPM的支持,使得开发者可以在Java项目中方便地使用Python和Node.js的库和工具,从而实现跨语言的集成。例如,开发者可以使用Python的机器学习库来训练LLM,然后将训练好的模型部署到Java项目中。
以下命令可以列出服务器: