在之前的文章 《Java大模型MCP服务端开发-数据库查询与数据分析》中,我们介绍了如何使用 Java 构建一个用于数据库查询的 MCP 服务,并实现了以下三个核心工具:
- listTables:获取数据库中所有表的列表;
- getTableSchema:获取指定数据表的结构(列信息);
- executeMysqlQuery:执行给定的 SQL 查询语句,并返回结果或错误信息。
虽然上述工具实现了基本的数据库查询功能,但由于各工具之间存在一定的执行顺序依赖,导致在实际使用中灵活性和效率受限。而在 MCP 架构中,各工具本应具备良好的独立性和协同能力,因此这种设计在一定程度上限制了系统的潜力。
为了解决这一问题,我们进一步探索了使用 LangGraph4j 构建一个具备自主决策能力的数据库查询智能体(Agent)。随后,我们提出了一个新的问题:是否可以将基于 LangGraph4j 构建的智能体封装成 MCP 服务?
什么是将智能体封装为 MCP 服务?
所谓“将智能体封装为 MCP 服务”,是指将一个已经具备自主决策、任务规划、记忆管理、工具调用等功能的智能体系统,通过标准化接口包装为符合 MCP 协议的服务模块。这样,该智能体即可作为 MCP 网络中的一个独立节点,对外提供能力调用、资源访问、上下文交互等功能。